Autor | Zpráva | ||
---|---|---|---|
FilZCech Profil |
#1 · Zasláno: 14. 1. 2010, 15:46:16 · Upravil/a: FilZCech
Zdravim,
mám trochu ošemetný problém. Pokusím se to vysvětlit, jak nejlépe dovedu. Vytvořil jsem si aplikaci u sebe na localhostu, pracuju s apachem a php5. Vše je funkční a naprosto bez problému. Nyní bych to celé potřeboval dát live, na serveru běží php4. Je velice pravděpodobné, že to s verzí php nemá nic společného, bohužel nejsem sto najít toho zakopanýho čokla. Takže k problému, ... jak jen laicky můžu říct. Např. script kontroluje zadané proměnné z formuláře, pokud jsou vyplněny správně, údaje zapíše do souboru a přesměruje uživatele zpět na formulář, pro případný nový záznam. Na localhost v pohodě, na serveru mi sice správně zapíše všechny údaje do souboru, ale prohlížeč skončí na scriptu, který tyto informace pouze zpracovává a dal neodkáže nikam. Navíc tam nesmyslně zůstane viset s jedním vypsaným echem, právě z toho zpracovávajího scriptu. Další problém jsou naprosto nefunkční cookies, potřebuji jich tam hodně, ale nezapisují se a samozřejmě nejdou poté ani žádné číst. Nejsem profesionál a kdybych čet stejný dotaz od někoho jiného, nepochopil bych nic. Další info tedy samozřejmě doplnim. Díky za reakce. edit// To, že tam zůstane viset se zbytečným echem zapoměňte, moje demence, zbytek platí. Výpis z Fiddleru, jestli to k nečemu bude, jde přímo o ten zpracovávající script: Localhost: přesměruje na changelog.php HTTP/1.1 302 Found Date: Thu, 14 Jan 2010 14:50:56 GMT Server: Apache/2.0.63 (Win32) mod_jk/1.2.20 PHP/5.2.10 X-Powered-By: PHP/5.2.10 location: changelog.php Content-Length: 196 Keep-Alive: timeout=15, max=98 Connection: Keep-Alive Content-Type: text/html Server: zůstane viset HTTP/1.1 200 OK Date: Thu, 14 Jan 2010 14:50:43 GMT Server: Apache Accept-Ranges: bytes X-Powered-By: PHP/4.3.0 Transfer-Encoding: chunked Content-Type: text/html; charset=windows-1250 |
||
AM_ Profil |
#2 · Zasláno: 14. 1. 2010, 15:57:16 · Upravil/a: AM_
Dotaz je opravdu moc strohý, nedá se k tomu říct nic jiného, než že jak přesměrování, tak cookies fungují i na PHP4. Zřejmě si tu aplikaci sám budeš muset debugovat a zjistit, proč se to zastavuje. Pokud sem dáš nějakou rozumnou podmnožinu PHP kódu, která nebude moc dlouhá a kde je nejspíš problém, s popisem, která část selhává, možná někdo poradí.
//přesměrování může souviset se zmíněným echem - header("location...") musíš zavolat dřív, než cokoliv echuješ na výstup - pokud máš na localhostu zaplé nějaké bufferování, možná to funguje proto. |
||
FilZCech Profil |
#3 · Zasláno: 14. 1. 2010, 16:12:33
Nejftipnější je, že ani neni pořádně co ukázat.
update_form.php - obsahuje html formulář, údaje se posílají POST do save_update.php ten kontroluje, pokud vše sedí zapíše se nový záznam ($update) do souboru (což i na serveru funguje) ... $file = fopen("changelog.txt", "a"); fwrite($file, $update); fclose($file); a následuje pouze header("location:changelog.php"); kde je jen výpis již zadaných záznamů a odkaz na přidání nového, tedy na update_form.php, jednoduše tedy z nějakého důvodu nejede header('location:'); |
||
AM_ Profil |
#4 · Zasláno: 14. 1. 2010, 16:28:05
AM:
„header("location...") musíš zavolat dřív, než cokoliv echuješ na výstup“ trvám na tom. někde tam máš mezeru navíc před <?, nějaké echo nebo něco. Je na tom serveru zaplé vypisování chyb? mělo by to házet warning. Pokud ne, za ten header(...) si hoď třeba echo "a"; abys věděl, že sem kód skutečně dojde. To je nejjednodušší způsob ladění v PHP. |
||
FilZCech Profil |
#5 · Zasláno: 14. 1. 2010, 16:33:44
Jojo php se je sranda, diky moc AM, měl jsem tam mezeru.
Tak ještě mrknu na ty cookies, ale tam bude beztak nějaká podobná ptákovina. |
||
Časová prodleva: 14 let
|
0