2014-11-13 3 views
-2

Привет, я создаю аутентификацию для использования php и mysql. Но, к сожалению, я не могу получить результат, которого я ожидал. вот исходный код.PHP аутентификация MySQL не работает

<?php 
ob_start(); 
    $host = "localhost"; 
    $user = "dddddd"; 
    $password = ""; 
    $database = "dddddd"; 
    $tbl_name="uuuuuu"; 



if(mysql_connect("$host", "$user", "$password")){ 
     echo"fine"; 
    } 
else { 
    echo"cannot connect"; 
} 


mysql_select_db("$database")or die("cannot select DB"); 


$utilisateur=$_POST['utilisateur']; 
$pass=$_POST['pass']; 

$utilisateur = stripslashes($utilisateur); 
$pass = stripslashes($pass); 
$utilisateur = mysql_real_escape_string($utilisateur); 
$pass = mysql_real_escape_string($pass); 

$query=mysql_query("SELECT * FROM $tbl_name WHERE utilisateur='$utilisateur' and pass='$pass'"); 

if($query){ 
    $count=mysql_num_rows($query); 
    session_register("utilisateur"); 
    session_register("pass"); 
    header("location:login_success.php"); 
} 
else { 
echo "wrong username and password"; 
} 
?> 

login_success.php:

<?php 
session_start(); 
if(!session_is_registered(utilisateur)){ 
header("location:portail.php"); 
} 
else{ 
    echo"Connexion failed"; 
} 
?> 

meesage ошибка: выводит сообщение об ошибке, как показано ниже:

неправильное имя пользователя и пароль

из, если заявление. обычно мне нужно получить логин

+0

Ваш запрос не удался. Вам нужно выяснить, почему. Проверьте mysql_error(). –

+1

Пожалуйста, [не используйте 'mysql_ *' функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli). Вы также захотите [Запретить SQL-инъекцию!] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

+0

['session_register()'] (http : //php.net/manual/en/function.session-register.php) <= устарело, как и 'mysql_', но мы не будем вдаваться в это прямо сейчас. Кроме того, ваши элементы формы называются, правильно? Здесь [** используйте это, нажмите меня. **] (http://php.net/manual/en/function.error-reporting.php) –

ответ

0
  • Как и другие печально, не выполняйте функции mysql_ *, потому что они устарели.

В любом случае, теперь я покажу вам логику, что вам нужно сделать. Если вы его получите, перепишите его на mysqli_*, но сначала поймите, что я делаю. См. Мои комментарии.

<?php 
ob_start(); 
session_start(); 
$host = "localhost"; 
$user = "dddddd"; 
$password = ""; 
$database = "dddddd"; 
$tbl_name = "uuuuuu"; 

//No need the qutes here 
if (mysql_connect($host, $user, $password)) { 
    echo"fine"; 
} else { 
    echo"cannot connect"; 
} 

//No need the qutes here 
mysql_select_db($database)or die("cannot select DB"); 


//No need this block 
//I will use them directly ($_POST), because we do not use them later 
/* 
$utilisateur = $_POST['utilisateur']; 
$pass = $_POST['pass']; 
$utilisateur = stripslashes($utilisateur); 
$pass = stripslashes($pass); 
$utilisateur = mysql_real_escape_string($utilisateur); 
$pass = mysql_real_escape_string($pass); 
*/ 

$query = mysql_query("SELECT * FROM ".$tbl_name."" 
    . " WHERE utilisateur='".mysql_real_escape_string($_POST["utilisateur"])."'" 
    . " AND pass='".mysql_real_escape_string($_POST["pass"])."'"); 

$count = mysql_num_rows($query); //Count here, and count in the condition 
//If connection was good, query will be a resource 
if ($count) { 
    $_SESSION["utilisateur"] = $_POST["utilisateur"]; 
    $_SESSION["pass"] = $_POST["pass"]; 
    header("location: login_success.php"); 
    die(); //Add a die() here 
} else { 
    echo "wrong username and password"; 
} 
+0

'session_start() ; 'отсутствует. –

+0

@ Fred-ii- У вас хорошие глаза, спасибо! Я исправил это. – vaso123

+0

Добро пожаловать. Однако, я думаю, что это должно быть ниже 'ob_start();' если я действительно помню. –

Смежные вопросы