[PHP] Mi a hiba ezzel a bejelentkezéssel?
index.php:
<?php
require 'init.php';
if(isset($_SESSION['user_id'])){
echo 'Bejelentkeztél! <a href="logout.php">Kijelentkezés</a>';
}else{
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php listing($errors); ?>
<form action="login.php" method="post">
<table>
<tr><td>Felhasználónév:</td><td><input type="text" name="username" /></td></tr>
<tr><td>Jelszó:</td><td><input type="password" name="password" /></td></tr>
</table>
<input type="submit" value="Login!" />
</form>
<a href="registration.php">Regisztráció</a>
</body>
</html>
<?php
}
?>
init.php:
<?php
mysql_connect('localhost','root','');
mysql_select_db('lr');
ob_start();
session_start();
//error_reporting(0);
$errors = array();
function listing($errors){
echo '<ul>';
foreach($errors as $error){
echo '<li>'.$error.'</li>';
}
echo '</ul>';
}
function sanitize($item){
return mysql_real_escape_string($item);
}
function user_id_from_username($username){
$username=sanitize($username);
$query=mysql_query("SELECT `user_id` FROM `users` WHERE `username`='$username'");
return mysql_result($query,0);
}
function login($username,$password){
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5(sanitize($password));
$query = mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username`=$username AND `password`='$password'");
return (mysql_result($query,0) == 1) ? $user_id:false;
}
function user_exists($username){
$username = sanitize($username);
$query=mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username`='$username'");
return (mysql_result($query,0) == 1) ? true:false;
}
?>
login.php:
<?php
require 'init.php';
if(empty($_POST) === false){
$username = $_POST['username'];
$password = $_POST['password'];
if(user_exists($username,$password)){
if(strlen($password) > 32){
$errors[] = 'Password too long';
}
$login = login($username,$password);
if($login == false){
$erros[] = 'A felhasználónév és jelszó kombináció hibás!';
}else{
$_SESSION['user_id']=$login;
header('Location: index.php');
exit();
}
}else{
$errors[] = 'Nem szerepel az adatbázisban. Még nem regisztráltál!';
}
}else{
$errors[] = 'Minden mezőt ki kell tölteni!';
}
?>
A hiba üzenet amit kapok:
Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\init.php on line 31
Már szenvedek egy ideje a regisztráció/bejelentkezés elsajátításával, de ahányszor próbálom mindíg meglep valami új finomsággal:S Valaki tudna segíteni?(: Előre is köszi
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Melyik a 31. sor az init.php-ben?
Amúgy a hiba valószínűleg az, hogy valamelyik mysql_result nem érvényes paramétert kap, tehát szerintem valamelyik lekérdezésed nem jó.
Tipp:
$password = md5(sanitize($password));
$query = mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username`=$username AND `password`='$password'");
Itt lemaradt az aposztróf a $username elől/mögül.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!