Autor Zpráva
hynais
Profil
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
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
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
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
poraďte prosím.. nevím si vůbec rady
Harwen
Profil
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 :-))
hynais
Profil
Harwen

Odkaz je zde..
mpark
Profil
Zkus dát do index.php a do odhlasit.php nahoru

session_start();
hynais
Profil
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
http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=59331&foru m=9&page=-1
http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=22907&foru m=9&page=-1

Zahájil bych to tímto
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=21 11
hynais
Profil
Paja
já se v tom moc nevyznám porad mi prosím co mám opravit
Paja
Profil

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
ale já nevim jakej mam výstup už dřív.. porad mi prosím.. ten skript je nahoře
hynais
Profil
hotovo děkuji vám za rady =))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0