Mi lehet a gond? Php
üdv van egy beléptető rendszerem eddig jól működött,de most két hibát is kiír,nem tudom minek valaki ?
Itt a kód
hiba meg itt
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\egyeb\index.php on line 31
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\egyeb\index.php on line 33
<?php
include("config.php");
session_start();
if(isset($_POST['submit'])){
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string ( $_POST['password']);
$login_regex = '/^[a-z0-9\_\-\.]{3,10}$/';
$email_regex = '/^([A-z0-9\_\.\-]+)@([a-z0-9\_\-\.]+).([a-z]{2,})$/';
if(empty($email)){
echo"<div class=\"error\">Nem adott meg Email-címet.</div>";
$error_data = true;
}elseif(!preg_match($email_regex,$email)){
echo "<div class=\"error\">Érvénytelen Email-cím</div>";
$error_data = true;
}
if(empty($password)){
echo "<div class=\"error\">Nem adott meg Jelszót!</div>";
$error_data = true;
}elseif(!preg_match($login_regex,$password)){
echo "<div class=\"error\">Helytelen karaktereket használt!</div>";
$error_data = true;
}
if($error_data == false){
echo "<div class=\"notice\">Belépett</div>";
}
$sql="SELECT id FROM login WHERE username='$email' and password='$password'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$active = $row['active'];
$count=mysql_num_rows($result);
if($count==1){
session_register("email");
$_SESSION['login_user']=$email;
header("location: welcome.php");
}
else{
echo "<div class=\"error\">Hibás email/jelszó</div>";
}
}
?>
"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result"
Ezt leginkább akkor szokta dobni, ha a tábla nevét rosszul adod meg a lekérdezésnél.
A lekérdezés eleve rosszul van kezelve.
Ha a mysql_query() hibával tér vissza (mindegy miért) akkor a mysql_fetch_array() és a mysql_num_rows() is a nagy "false" semmivel fog dolgozni, ami ugyebár "not a valid MySQL result". Úgy ahogy az nálad is történik.
Ha az adatbázisodat megfelelően alakítottad ki, akkor is kb így csináld:
$sql="SELECT id FROM login WHERE username='$email' and password='$password'";
if($result = mysql_query($sql)){
if($row = mysql_fetch_array($result)){
$active = $row['active'];
$count=mysql_num_rows($result);
if($count==1){
session_register("email");
$_SESSION['login_user']=$email;
header("location: welcome.php");
}
}
}
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!