Autor Zpráva
Musilda
Profil
Dobrý den,

potřebuji poradit se scriptem, pro přihlášení uživatelů. Učím se a postupuji podle knihy, ale bohužel nejsem schopen nalézt chybu.
Při zadání platného username a password, se nevypíše proměná.

<?php
session_start();
$_SESSION['username'] = $_POST['user'];
$_SESSION['userpass'] = $_POST['pass'];
$_SESSION['authuser'] = 0;

if (isset ( $_SESSION['username']) && ( $_SESSION['userpass']) ) {
$_SESSION['authuser'] = 1;
} else {$_SESSION['authuser'] = 0;
}
//připojení k databázi
include "spojeni.php";
//head dokumentu html
include "head.php";
?>
<body>
<p>Přihlášen jako: <b>
<?php

$dotaz=" SELECT username,password " .
" FROM users ";

$vysledek = mysql_query($dotaz)
or die ( mysql_error() );
while($zaznam = mysql_fetch_array($vysledek)){
extract ( $zaznam );
}
$username = $zaznam["username"];
$password = $zaznam["password"];
if ( ($_SESSION['username'] == $username ) && ( $_SESSION['userpass'] == $password ) ) {
$loginname = $username;
}
if ( $_SESSION['authuser'] == 0 ){
echo "nepřihlášen";
} else{
if ( $_SESSION['authuser'] == 1 ){
echo $loginname;
}
}


?>
</b></p>

<h4>Přihlášení uživatele</h4>

<form method="post">
<p>Přihlašovací jméno<br>
<input type="text" size="10" name="user"><br>
Přihlašovací heslo<br>
<input type="text" size="10" name="pass"><br>
<input type="submit" value="Přihlásit"><br>
</form>

</body>
</html>

Díky za radu.
RAmses
Profil
A co se tedy vypíše? Vypíše se nepřihlášen?
if (isset ( $_SESSION['username']) && ( $_SESSION['userpass']) )

tady ti zřejmě chybí jeden isset

Vůbec je to celé nějaké divné. Vytahuješ všechny uživatele zbytečně, stačí si vytáhnout uživatele, kterému odpovídá zadané jméno a heslo, pokud ti dotaz vrátí 0 záznamů, vypíšeš Uživatelské jméno nebo heslo je chybné, jinak vypíšeš jméno uživatele
Alphard
Profil
Musilda
takhle většinou neodpovídám, ale tento kód není ideální (nechci použít slovo prasácký), jestli je to podle nějaké knihy, doporučuji vyhodit ji z okna
podívejte se sem http://php.vrana.cz/prihlasovani-uzivatelu.php
kvalitně, jednoduše, bez zbytečností

v tom výše uvedeném ani nemá cenu hledat chybu
Musilda
Profil
A co se tedy vypíše? Vypíše se nepřihlášen?
if (isset ( $_SESSION['username']) && ( $_SESSION['userpass']) )
tady ti zřejmě chybí jeden isset
Vůbec je to celé nějaké divné. Vytahuješ všechny uživatele zbytečně, stačí si vytáhnout uživatele, kterému odpovídá zadané jméno a heslo, pokud ti dotaz vrátí 0 záznamů, vypíšeš Uživatelské jméno nebo heslo je chybné, jinak vypíšeš jméno uživatele

Nevypíše se nic.
RAmses
Profil
Přikláním se k Alphardovi
Musilda
Profil
RAmses + Alphard

Díky za tip
BetaCam
Profil
Musilda

Jinak jen ze zvědavosti z které že to knihy si čerpal??
Musilda
Profil
BetaCam

PHP5,MySQL,Apache Vytváříme webové aplikace. Musím sebekriticky přiznat, že to spíše bylo nepochopením dané problematiky. Díky linku od Alpharda jsem už na tom podstatně lépe. Ale ve scriptech v té knize jsem už několik chyb našel a dokonce se tady už někdo ptal, proč mu nejde script z té knihy.

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: