Если инструкция else, перенаправляемая на другую страницу

Я ужасен с PHP / SQL, поэтому любая помощь будет оценена.

В основном у меня есть форма, которая отправляет значения «firstname» и «surname» на другую страницу. То, что я хочу, чтобы эта страница была сделана, – это проверить, не указано ли имя пользователя в таблице «Участники». Если я хочу, чтобы он продолжал загружать эту страницу, но если они не находятся в базе данных, я хочу, чтобы зритель перенаправлялся на существующую страницу регистрации.

Вот код, над которым я работал, я не уверен, что я направляюсь в правильном направлении или нет.

<?php $con = mysql_connect("localhost","site","xxxxxxxx"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("site", $con); $query = "SELECT * FROM Members WHERE firstname='$_POST[firstname]' and surname='$_POST[surname]'"; $result = mysql_query($query); if ($result==$something) { echo "great success"; //user continues loading page } else { echo "fail"; //user is redirected to sign up page } ?> 

Это сделает трюк:

 <?php $con = mysql_connect( "localhost", "site", "xxxxxxxx" ); if ( !$con ) { die('Could not connect: ' . mysql_error()); } mysql_select_db("site", $con); 

1-й, удалите часть впрыска sql, по крайней мере, так:

 $firstname = strip_tags( $_POST[ 'firstname' ] ); $surname = strip_tags( $_POST[ 'surname' ] ); 

Во-вторых, я не изменил его, но вам нужно удалить * и ввести только определенные значения, которые вы хотите загрузить. Даже если это все значения, пишите их вручную.

 $query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname=' " . $surname. "'"; $result = mysql_query( $query ); 

3rd, вы можете проверить количество строк, если у вас есть какое-то значение, есть запись с этими переменными

 if ( mysql_num_rows($result) >= 1 ) { // the page you want } else { // redirect user to another page header( "Location: signup.php" ); die; } ?> 

Редактировать:

Подумайте о добавлении unique запросов к вашему запросу. Что произойдет, если два пользователя имеют одинаковые имена и фамилии или если новый хочет присоединиться, но имя и фамилия уже находятся в db …

 if (mysql_num_rows($result) == 1) { echo "great success"; //user continues loading page } else { echo "fail"; //user is redirected to sign up page } 

Кроме того, ваш запрос подвержен SQL-инъекции большого времени

 $rows = mysql_num_rows($results); if ($rows == 1) { echo "login successful"; //user continues loading page } else { header ('location: signup.php'); //user is redirected to sign up page } 

Вы можете просто поместить header( "Location: host/site.php" ) в свою ветку else, а затем die ()

 if(mysql_num_rows($result) > 0){ echo "great success"; //user continues loading page } else { echo "fail"; //user is redirected to sign up page } 

использовать это