Autor Zpráva
FilZCech
Profil
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
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
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: