Autor | Zpráva | ||
---|---|---|---|
hynais Profil |
#1 · Zasláno: 19. 8. 2008, 18:03:55
Dobrý den.
Prosím potřeboval bych pomoct s kódem login.php potom odhlasit.php a index.php Když se uživatel přihlásí, přesměruje se to na index. ovšem tam je to normální jako pro nepřihlášené. když ale klikne znovu na odkaz přihlásit tak tam je místo formuláře znovu index, ale tentokrát už pro přihlášené. ale nejde se mi odhlásit. to se zase přesměruje na index ale když zase jdu na přihlášení tak to tam pořád je a není to odhlášené. ale já bych chtěl aby když se přihlásí bylo vše na indexu který je v menu jako domovská stránka. pošlu ješte výše uvedené kódy a prosím vás o pomoc. Děkuji. |
||
hynais Profil |
#2 · Zasláno: 19. 8. 2008, 18:04:27
Login.php
<?php session_start(); require_once ('zahrnout/config.inc'); $titul_stranky = 'Přihlásit'; include ('zahrnout/zahlavi.html'); if (isset($_POST['odeslat'])) { require_once ('mysql_spojit.php'); if (empty($_POST['uziv_jmeno'])) { $u = FALSE; echo '<p><font color="red" size="+1">Nebylo zadáno uživatelské jméno!</font></p>'; } else { $u = opravit_chyby($_POST['uziv_jmeno']); } if (empty($_POST['heslo'])) { $h = FALSE; echo '<p><font color="red"size="+1">Nebylo zadáno heslo!</font></p>'; } else { $h = opravit_chyby($_POST['heslo']); } if ($u && $h) { $dotaz = "SELECT id_uzivatele, jmeno FROM uzivatele WHERE uziv_jmeno='$u' AND heslo=PASSWORD('$h')"; $vysledek = @mysql_query ($dotaz); $radek = mysql_fetch_array ($vysledek, MYSQL_NUM); if ($radek) { $_SESSION['jmeno'] = $radek[1]; $_SESSION['id_uzivatele'] = $radek[0]; ob_end_clean(); header ("Location: http://". $_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF']). "/index.php"); exit(); } else { echo '<p><font color="red" size="+1">Uživatelské jméno a heslo neodpovídají záznamům uloženým v databázi.</font></p>'; } mysql_close(); } else { echo '<p><font color="red" size="+1">Zkuste to znovu</font></p>'; } } ?> |
||
hynais Profil |
#3 · Zasláno: 19. 8. 2008, 18:05:27
Index.php (+ pata.html)
index: <?php require_once ('zahrnout/config.inc'); $titul_stranky = 'Hynaisův web - O všem!'; include_once ('zahrnout/zahlavi.html'); echo '<h1>Vítejte'; if (isset($_SESSION['uziv_jmeno'])) { echo " uživateli {$_SESSION['uziv_jmeno']}"; } echo '!</h1>'; ?> pata: <?php if (isset($_SESSION['id_uzivatele']) AND (substr($_SERVER['PHP_SELF'], -10) !='odhlasit.php')) { echo '<a href="odhlasit.php">Odhlásit</a><br /> <a href="zmenit_heslo.php">Obnovit heslo</a><br /> <a href="download_register.php">Stahování pro registrované</a><br /> <a href="kniha_register.php">Diskuze pro registrované</a><br />'; } else { echo ' <a href="registruj.php">Registrace</a><br /> <a href="login.php">Přihlásit</a><br /> <a href="zapomenute_heslo.php">Zapomněli jste heslo?</a><br />'; } ?> <a href="download.php">Download</a><br /> <a href="guestbook.php">Návštěvní kniha</a><br /> <a href="mp3.php">Mp3 ke stažení</a><br /> </div> </body> </html> <?php ob_flush(); ?> |
||
hynais Profil |
#4 · Zasláno: 19. 8. 2008, 18:06:12
odhlasit.php
<?php require_once ('zahrnout/config.inc'); $titul_stranky = 'Odhlásit'; include_once ('zahrnout/zahlavi.html'); if (!isset($_SESSION['jmeno'])) { header ("Location: http://". $_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF']). "/index.php"); ob_end_clean(); exit(); } else { $_SESSION = array(); session_destroy(); setcookie (session_name(), '', time()-300, '/', '', 0); } echo "<h3> Uživatel úspěšně odhlášen</h3>"; include_once ('zahrnout/pata.html'); session_end(); ?> |
||
hynais Profil |
#5 · Zasláno: 19. 8. 2008, 19:01:23
poraďte prosím.. nevím si vůbec rady
|
||
Harwen Profil |
#6 · Zasláno: 20. 8. 2008, 15:41:07
Odkaz na web by pomohl...
jinak s podobným problémem jsem se setkával ze dvou důvodů 1. chybějící session_start() na hlavní stránce 2. přihlašovací skript byl špatně umístěn takže se vykonával až po načítání menu a jiných věcí ovlivněných stavem přihlášen/nepřihlášen :-)) |
||
Časová prodleva: 9 dní
|
|||
hynais Profil |
#7 · Zasláno: 29. 8. 2008, 18:28:33
|
||
mpark Profil |
#8 · Zasláno: 29. 8. 2008, 22:46:39
Zkus dát do index.php a do odhlasit.php nahoru
session_start(); |
||
hynais Profil |
#9 · Zasláno: 31. 8. 2008, 19:05:07
už to jde.. ale když se přihlásim nahoře to napíše tohle:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /3w/wz.cz/h/hynais-web/index.php:85) in /3w/wz.cz/h/hynais-web/index.php on line 132 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /3w/wz.cz/h/hynais-web/index.php:85) in /3w/wz.cz/h/hynais-web/index.php on line 132 |
||
Paja Profil |
#10 · Zasláno: 31. 8. 2008, 19:16:41
|
||
hynais Profil |
#11 · Zasláno: 31. 8. 2008, 19:50:37
Paja
já se v tom moc nevyznám porad mi prosím co mám opravit |
||
Paja Profil |
#12 · Zasláno: 31. 8. 2008, 20:07:10
headers already sent... Pokud už byl generovaný nějaký výstup, tak už nelze používat funkce header(), setcookie() ani session_start(). Jejich volání skončí chybou. Přesvědčete se, že před začátkem <?php ?> není žádný text (ani mezera) a že nebylo nic odesláno třeba funkcemi jako echo nebo print. Pokud je text v UTF-8, tím výstupem může být i tzv. BOM signatura, vizte výše zmíněný Divný znak (čtvereček).... viz. llookovi FAQ Asi bych to trošku nastudoval, ale pokud ti to píše, máš výstup do prohlížeče ještě před zavoláním funkce session_start() .. |
||
hynais Profil |
#13 · Zasláno: 1. 9. 2008, 17:35:58
ale já nevim jakej mam výstup už dřív.. porad mi prosím.. ten skript je nahoře
|
||
hynais Profil |
#14 · Zasláno: 1. 9. 2008, 17:40:42
hotovo děkuji vám za rady =))
|
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0