2014-10-20 3 views
0

Я отправляю свою форму и должен найти значение FirstName и LastName в моей базе данных MySQL и отправить мне страницу успеха. Вместо этого меня отправляют на страницу сбоя. Я не вижу, что с ним не так.Проверка базы данных для данных и сбоев

вот мой HTML форма "login_1.php":

<form name="loginForm" action="loginCheck.php" method="post">  
<input type="text" name="firstname_field_name" id="firstname_field_ID" value="First Name" /> 
<input type="text" name="lastname_field_name" id="lastname_field_ID" value="Last Name" /> 
<input type="submit" name="Submit" value="Submit" /> 
</form> 

вот PHP:

<?php 
    session_start(); 
    $_SESSION['firstname_session'] = $_POST['firstname_field_name']; 
    $_SESSION['lastname_session'] = $_POST['lastname_field_name']; 

    require("config_php.php"); 
    $con = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die('Could not connect to database server.'); 

    $myfirstname=$_POST[firstname_field_name]; 
    $mylastname=$_POST[lastname_field_name]; 

    $result = mysqli_query($con,"SELECT * FROM test WHERE FirstName='$myfirstname' AND LastName=$mylastname"); 
    $count=mysqli_num_rows($result); 

    if($count>0){ 
    //success   
     header('Location: loggedin.php'); 
     exit(); 
    } 
    else{ 
    //fail 
     header('Location: login_1.php'); 
     exit(); 
    } 
?> 
+2

У вас есть контроль ошибок включен вообще? Это скажет вам, что у вас есть синтаксическая ошибка в вашем запросе. [Запретить SQL Injection!] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Добавить сообщение об ошибках в начало файла (ов) сразу после ваше открытие '

+0

С одной стороны, укажите эти' $ myfirstname = $ _ POST ['firstname_field_name']; $ mylastname = $ _ POST ['lastname_field_name']; '-' AND LastName = '$ mylastname' ");' - 'или die (mysqli_error ($ con))' to 'mysqli_query()' –

+0

Вы должны прочитать sql injection. – jeroen

ответ

2

Изменить эту часть к:

$myfirstname=$_POST['firstname_field_name']; 
$mylastname=$_POST['lastname_field_name']; 

//make it a little secure 
$myfirstname = mysqli_real_escape_string($con, $myfirstname); 
$mylastname = mysqli_real_escape_string($con, $mylastname); 

$result = mysqli_query($con,"SELECT * FROM test WHERE FirstName='$myfirstname' AND LastName='$mylastname'"); 
$count=mysqli_num_rows($result); 
+0

Теперь работаю спасибо! – Lori

+0

Добро пожаловать! – baao

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