Kezdőoldal » Számítástechnika » Weblapkészítés » [PHP] Mi a hiba ezzel a...

Qaxqaxqax kérdése:

[PHP] Mi a hiba ezzel a bejelentkezéssel?

Figyelt kérdés

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



#php #hiba #bejelentkezés #mysql_result()
2013. júl. 12. 21:29
 1/2 anonim ***** válasza:

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.

2013. júl. 12. 21:56
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
És tényleg, jó ideje néztem mi a gond :/ Köszi a gyors választ(:
2013. júl. 12. 22:00

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!