3

我对 PHP/SQL 很糟糕,所以任何帮助都将不胜感激。

基本上我有一个表格,将值“名字”和“姓氏”发布到另一个页面。我希望该页面执行的操作是检查用户名是否已在“成员”表中。如果是我希望它继续加载此页面,但如果它们不在数据库中,我希望查看器被重定向到现有的注册页面。

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

<?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
   }
?>
4

5 回答 5

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

此外,您的查询很容易出现 SQL 注入

于 2012-07-26T12:00:42.963 回答
2

这可以解决问题:

<?php

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

mysql_select_db("site", $con);

1st,至少像这样删除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请求。如果两个用户具有相同的姓名和姓氏,或者如果一个新用户想要加入,但姓名和姓氏已经在数据库中,会发生什么...

于 2012-07-26T12:13:31.853 回答
1
$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
}
于 2012-07-26T12:02:30.720 回答
0

您可以简单地 header( "Location: host/site.php" ) 在 else 分支中放置一个函数调用,然后是 die()

于 2012-07-26T12:03:15.907 回答
0
if(mysql_num_rows($result) > 0){
    echo "great success"; //user continues loading page
}
else
{
   echo "fail"; //user is redirected to sign up page
}

用这个

于 2012-07-26T12:03:24.293 回答