Mit rontottam el ennél a login. Php-nél?
A probléma az hogy hiába írom be felhasználó nevemet és jelszavam mégis mindig ezt írja ki "Írd be a felhasználóneved és a jelszót!"
LOGIN.PHP
---------------------------
<?php
$username = $_POST['username'];
$password = $_POST['password'];
if ($username&&$password)
{
$connect = mysql_connect("","","") or die ("Az adatbázishoz nem sikerült csatlakozni!");
mysql_select_db("a1724090_TEST") or die ("Nem található db");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
echo $numrows;
}
else
die("Írd be a felhasználóneved és a jelszót!");
?>
mi a baj ezzel?
if ($username && $password)
csak a szokozt hagyta ki sztem.
<?php
$username = $_POST['username'];
$password = $_POST['password'];
print $username;
print $password;
if ($username && $password)
{
print 'oh jeah!'
}
else
{
print 'oh no!'
}
?>
erre mit csinál?
mrdexter az mindegy, hogy van-e szóköz vagy nincs.
if ($username && $password)
Ez csak ennyit jelent ha username és password, és hol marad a feltétel.
talán így:
if(!empty($username)&&!empty($username))
Ebbe már benne van hogya username és password nem üres.
Akár isset-et is lehet használni, vagy bármi mást, amit vizsgálni szeretnél.
Bocs, helyesen:
if(!empty($username)&&!empty($password))
Az if ($username&&$password)
csak akkor működhet, ha boolean (logikai) változókról van szó, de szvsz a $username és $password nemcsak igaz és hamis értéket vehet fel.
Ezért szükséges valamit vizsgálni a változók értékeinél, pl., hogy létezik-e, vagy van-e benne érték, vagy üres, vagy egyenlő valamivel, stb...
Ennél a konkrét problémánál, azt érdemes vizsgálni, hogy létezik-e, vagy van-e értéke a változóknak.
Én pl. legalább 5-7 karakternél több felhasználónevekkel és jelszavakkal engednék csak felhasználókat regisztrálni, és akkor még ez is külön vizsgálat tárgyát képezi.
Ha van értéke a változóknak, akkor kell csak elvégezni az adatbázisban tárolt adatokkal a változók értékeinek összehasonlítását, vagyis, hogy egyeznek-e az adatbázisban tárolt értékekkel.
Ha a felhasználónévnek egyedinek kell lennie, akkor csak egy lekérdezéssel ki kell választani azt a rekordot, amiben a bevitt felhasználónév és jelszó, megegyezik a táblában találhatóval.
Ha a lekérdezésnek nincs eredménye, akkor a felhasználónév és/vagy jelszó hibás.
én kiprobaltam és csak akkor lép be az if-be ha irtam vmit a két inputba.
sztem jo az if ($username&&$password).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!