Php 重定向到另一页的If-else语句
我对PHP/SQL很在行,所以如果有任何帮助,我将不胜感激 基本上,我有一个表单,它将值“firstname”和“姓氏”发布到另一个页面。我想让该页面做的是检查用户名是否已经在“Members”表中。如果是,我希望它继续加载此页面,但如果它们不在数据库中,我希望查看器重新定向到现有的注册页面 这是我一直在研究的代码,我不确定我是否朝着正确的方向前进Php 重定向到另一页的If-else语句,php,mysql,sql,if-statement,Php,Mysql,Sql,If Statement,我对PHP/SQL很在行,所以如果有任何帮助,我将不胜感激 基本上,我有一个表单,它将值“firstname”和“姓氏”发布到另一个页面。我想让该页面做的是检查用户名是否已经在“Members”表中。如果是,我希望它继续加载此页面,但如果它们不在数据库中,我希望查看器重新定向到现有的注册页面 这是我一直在研究的代码,我不确定我是否朝着正确的方向前进 <?php $con = mysql_connect("localhost","site","xxxxxxxx"); if (!$con)
<?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
}
?>
另外,您的查询很容易进行SQL注入,只需在else分支中添加一个头(“Location:host/site.php”)
函数调用,然后添加一个die()
$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
}
使用此功能可以达到以下目的:
<?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='" . $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;
}
?>
编辑:
考虑向查询中添加一些唯一的请求。如果两个用户的姓名和姓氏相同,或者一个新用户想要加入,但名称和姓氏已经在数据库中,会发生什么情况…您应该向该位置添加完整的url,因为HTTP需要这样做。大多数浏览器都能正确地解释这一点,但添加主机是错误的cleaner@Sylence如果文件存在于同一文件夹中,该怎么办字段值由一个绝对URI组成。“为什么选择向下投票?”?有些人真的很可怜。你在上面的代码中看到了什么错误?让我恼火的是没有解释的否决票。我们都是来学习的。因为这就是你引导用户进入另一个页面的方式?感谢各位的回复,以及SQL注入的提示。它现在工作得很好:)我没有足够的专家来和你争论,但我打赌如果我真的尝试的话,我可以通过strip_标签
来获得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;
}
?>