重定向到另一个页面的If-else语句


If else statement that redirects to another page

我对PHP/SQL很不熟悉,如果有任何帮助,我们将不胜感激。

基本上,我有一个发布值"firstname"&amp姓氏"添加到另一页。我希望该页面所做的是检查用户名是否已经在"Members"表中。如果是,我希望它继续加载此页面,但如果它们不在数据库中,我希望查看器重定向到现有的注册页面。

这是我一直在编写的代码,我不确定我是否朝着正确的方向前进。

<?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);

首先,删除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 );

第三,你可以检查行计数,如果你得到一些值,就会有一个包含这些变量的条目

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

编辑:

考虑在查询中添加一些unique请求。如果两个用户的名字和姓氏相同,或者一个新用户想要加入,但名字和姓氏已经在数据库中,会发生什么。。。

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
}

您只需在else分支中放入一个header( "Location: host/site.php" )函数调用,然后放入一个die()

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

使用这个