Autor | Zpráva | ||
---|---|---|---|
TomasSSS Profil * |
#1 · Zasláno: 3. 10. 2012, 23:22:42
Zdravim,
mam problem, ktery melo spoustu uzivatelu a je zde o nem spousta temat, presto mi ani jedno nepomohlo. Jedna se problem s presmerovanim pres header(). Mam kod na prihlasovani uzivatelu, session je uplne nahore, pak je html formular pro prihlaseni: <form function="functions/login.php"> ... <form> a v souboru login.php je samotna funkce pro prihlaseni, tzn. kontrola zadanych dat a nasledne ulozeni do session asi takto: if ($verify == 1) { ... zde je ulozeni do session ... header("Location: ../index.php"); } else ... Na localhostu vse probehlo v poradku, prihlaseni uspesne. Po presunuti na hosting nastal problem s headerem "Cannot modify header information - headers already sent". Chybu chapu, nechapu, jak ji vyresit 1. Jak prepsat kod tak, aby bylo presmerovani pomoci header na zacatku? Aktualne je na konci souboru functions/login.php a sam formular je uprostred stranky. 2. Nebo mam vyuzit jine presmerovani (existuje jine?) 3. Funkce ob_start() z nejakeho duvodu nefungovala a opravdu jsem se snazil, aby tomu tak bylo (mozna je to nastavenim hostingu - testoval jsem to na wedos.cz) Prosim o co nejjednodussi reseni a pripadne odkazy na zdroje k nastudovani.. Diky moc a preji hezky vecer vsem |
||
Someone Profil |
#2 · Zasláno: 3. 10. 2012, 23:28:13
<?php if (isset($_POST['prihlasit'])) { // ověření uživatele Header("Location: index.php"); } ?> <html> <body> <form method="POST"> <!-- Input pro vyplnění --> </form> </body> </html> PHP script musí být jednoduše před jakýmkoliv výstupem. Já to většioun dělám tak, že si před začátek dokumentu ještě před <!DOCTYPE html> includnu php soubor ve kterém mám všechny ty PHP scripty. něco jako: <?php include("engine.php"); ?> <!DOCTYPE html> .... v souboru engine.php může být např. to tvoje přihlašování. |
||
TomasSSS Profil * |
#3 · Zasláno: 4. 10. 2012, 01:06:22
To chapu, ovsem kdyz kod s loginem pridam na zacatek pomoci include, tak se provede ihned = odesle se s prazdnymi polozkami. Puvodne jsem to mel tak, ze byl vlozen jako <form action="login.php">, takze se odeslal az po kliknuti na submit..
Jak vyresit tento problem, ktery vznikne az resenim problemu minuleho? Diky |
||
Tori Profil |
TomasSSS:
„kdyz kod s loginem pridam na zacatek pomoci include, tak se provede ihned = odesle se s prazdnymi polozkami“ Zpracování dat z formuláře (+přesměrování) by se mělo provádět jen pokud byl formulář vyplněný a odeslaný. Máte to tak? Často se používá podmínka if ($_POST) nebo if ($_POST["název-odesílacího-tlačítka"] (vlastně ve [#2] to tak je).
"Odešle se s prázdnými položkami" a "původně to byl <form> ale už není" - jak se to teda samo odesílá? |
||
TomasSSS Profil * |
#5 · Zasláno: 4. 10. 2012, 17:04:42
Uz to chapu, diky moc!
|
||
Časová prodleva: 12 let
|
0