Autor Zpráva
divady
Profil
dobrý den, přesouval jsem aplikaci na jiný hosting, ale nefunguje mi tam po vykonáni PhP skriptu přesměrování, stránku mám dynamicky skládanou, když vyzkouším samotnej skript (bez hlavičky a paty stránky) tak mi funguje, ale když ho spustím na stránce tak mi nefunguje a objeví se pouze hlavička a stránka se nepřesměruje. vyhodíto chybovou hlásku

Notice: Undefined variable: stranka in /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/login.php on line 19 Warning: Cannot modify header information - headers already sent by (output started at /home/ftponly/usr/gabczaka/web/test/inc/header.php:78) in /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/login.php on line 19 Warning: Cannot modify header information - headers already sent by (output started at /home/ftponly/usr/gabczaka/web/test/inc/header.php:78) in /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/login.php on line 20 Warning: Cannot modify header information - headers already sent by (output started at /home/ftponly/usr/gabczaka/web/test/inc/header.php:78) in /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/login.php on line 21 Warning: Cannot modify header information - headers already sent by (output started at /home/ftponly/usr/gabczaka/web/test/inc/header.php:78) in /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/login.php on line 22


na starém hostingu to fungovalo, ale tady ne.
k přesměrování jsem používal
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.registrace-domeny.cz"); 
header("Connection: close"); 
juriad
Profil
Na 19. řádku se odkazuješ na neexistující proměnnou, což způsobí výpis té Notice. Vypsání té Notice zpusobí, že header nebude fungovat. Oprav tedy 19. řádek.
divady
Profil
juriad:
tu proměnnou už jsem opravil, ale problem se nevyřešil, ted to píše toto
Warning: Cannot modify header information - headers already sent by (output started at /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/prihlaseni.php:79) in /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/login.php on line 20 Warning: Cannot modify header information - headers already sent by (output started at /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/prihlaseni.php:79) in /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/login.php on line 21 Warning: Cannot modify header information - headers already sent by (output started at /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/prihlaseni.php:79) in /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/login.php on line 22
Juraj Hajdúch
Profil
Skontrolujte si, či ste pred volaním funkcie header() niečo neodoslali klientovi (echo, print a pod.).
divady
Profil
Juraj Hajdúch:
nene, neodesílal, na starém hostingu to fungovalo bezproblému, ale po přesunu na nový hosting to už nefunguje a se skriptem se nic nedělalo tady je ten skript
$login = mysql_real_escape_string($_POST["email"]);/* nick zadaný ve formuláři pro přihlašování */

$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané ve formuláři pro přihlašování */
$md5heslo = md5($heslo);/* Pomocí funkce md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRO OVĚŘENÍ PŘIHLAŠOVACÍCH DAT — */
$dotaz = mysql_query("select * from Dodavatele where email = '$login' and heslo_crypt = '$md5heslo' and hlavni = '1'");
$overeni = mysql_num_rows($dotaz);
$row = mysql_fetch_array($dotaz);
if($overeni > 0) {
  

header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.registrace-domeny.cz"); 
header("Connection: close");
    die();}
Juraj Hajdúch
Profil
A súbor, v ktorom je vyššie uvedený skript je includovaný do iného súboru alebo sa volá priamo?
Keeehi
Profil
Juraj Hajdúch:
Řekl bych, že tam include bude.

divady:
Ta chybová hláška ti přímo říká, kde máš ten text, který způsobuje problém. "output started at /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/prihlaseni.php:79"
divady
Profil
[b]Juraj Hajdúchskript volá index.php který z toho udělá stránku. prípojí k tomu hlavičku a patu stránky
příklad souboru index.php
<?
include dirname(__FILE__).'/inc/header.php';

switch($_GET['page']) { 
    case false : 
        include "./inc/uvod.php"; 
    break; 
    case 'zkouska' : 
        include "./zkouska.php"; 
    break;
 include dirname(__FILE__).'/inc/footer.php'; ?>



Keeehi:
ten skript právě output started at /home/ftponly/usr/gabczaka/web/test/src/prihlaseni/prihlaseni.php:79" je v pořádku, chyba v něm není. pro jistotu jsem ho vymazal a stále to nepomohlo, objeví se stále jen hlavička a stránka se nepřesměruje. vůbec nevím čím by to mohlo být. se skripty jsem nic nedělal jen sem to přesunul na nový hosting a od té doby to nefunguje
juriad
Profil
divady:
Hlavičku nesmíš vypisovat před header. Když zamýšlíš přesměrovávat nesmíš před funkcí header vypsat ani jeden znak.
Juraj Hajdúch
Profil
Teraz si riadne skontrolujte súbor /inc/header.php, či neobsahuje výstupy ako písal juriad.

BTW: Na niektorých naplatených hostingoch poskytovateľ vkladá ešte pred odoslaním stránky klientovi do kódu reklamu, ale to nebude váš prípad.
divady
Profil
juriad:
děkuji za radu a pomoc. už jsem to zprovoznil, bylo to tou hlavičkou
Juraj Hajdúch
Profil
Rado sa stalo, na to si treba dávať pozor, najlepšie je asi používať nejaký buffer, funkcie ob_*.
divady
Profil
Juraj Hajdúch:
děkuji, dám si pozor
Keeehi
Profil
Juraj Hajdúch:
Ne, nejlepší je to dělat tak, aby nebyl žádný buffer nikdy potřeba.
Juraj Hajdúch
Profil
Keeehi
Iste, dá sa aj tak. Je mnoho spôsobov ako dôjsť do cieľa. Pre neskúseného ale môže byť buffer dobrý pomocník.
Dan Charousek
Profil
Juraj Hajdúch:
To je silné tvrzení. Je daleko lepší učit se psát kód tak, aby problém nevznikl než jak ho obejít. Je to skoro stejné, jako bys tvrdil, že pro nezkušeného může být @ skvělý pomocník.
Juraj Hajdúch
Profil
Dan Charousek:
Uff, tak @ pokladám za jedno z nešťastí PHP. Podľa mňa by sa malo v budúcnosti zrušiť.

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: