Я отправляю свою форму и должен найти значение 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();
}
?>
У вас есть контроль ошибок включен вообще? Это скажет вам, что у вас есть синтаксическая ошибка в вашем запросе. [Запретить SQL Injection!] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Добавить сообщение об ошибках в начало файла (ов) сразу после ваше открытие ' php tag error_reporting (E_ALL); ini_set ('display_errors', 1); ' –
С одной стороны, укажите эти' $ myfirstname = $ _ POST ['firstname_field_name']; $ mylastname = $ _ POST ['lastname_field_name']; '-' AND LastName = '$ mylastname' ");' - 'или die (mysqli_error ($ con))' to 'mysqli_query()' –
Вы должны прочитать sql injection. – jeroen