PHP登录问题
我有以下代码。现在,当我按下登录按钮时,什么也没发生,用户名和密码都被清除了PHP登录问题,php,Php,我有以下代码。现在,当我按下登录按钮时,什么也没发生,用户名和密码都被清除了 <?php session_start(); $host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="csduc"; // Database name $tbl_name="students"; // T
<?php
session_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="csduc"; // Database name
$tbl_name="students"; // Table name
// Connect to server and select databse.
$connect=mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['username'];
$mypassword=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection).
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql,$connect);
$row=mysql_fetch_array($result);
// Mysql_num_row is counting table row.
//$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row.
if($row)
{
// Register $myusername, $mypassword and redirect to file "login_success.php".
session_register("myusername");
session_register("mypassword");
header("location: main.php");
}
else
{
echo "Wrong Username or Password";
}
?>
如何解决此问题?标题的正确名称是带有大写字母“L”的位置。这可能重要,也可能不重要。此外,从技术上讲,位置头需要一个绝对URL,例如。http://example.com/main.php -某些浏览器将接受相对url,但规范要求绝对url。同样,这可能会也可能不会导致您的问题 因此,为了在技术上更加正确,您的重定向可以更改为以下内容:
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/');
header("Location: http://$host$uri/main.php");
有关更多详细信息,请查看。用于测试
echo $myusername=$_POST['username'];
echo $mypassword=$_POST['password'];
exit;
并使用sql作为密码,因为密码可能是经过编码的
$sql="SELECT * FROM $tbl_name WHERE username='$myusername'";
$result=mysql_query($sql,$connect);
$row=mysql_fetch_array($result);
您的表单标签有问题 它需要如下:
<form method="POST" action="">
假设操作与上面的代码是同一页。否则,将操作指向包含代码的页面。确保代码位于页面顶部,否则session start和header将不起作用打印$sql以查看存储在那里的内容。什么都没有回来吗?只需在表单中设置一个looksession\u注册表的登录位就可以了:当我放置echo$sql时;这是来自学生的SELECT*输出,其中username='sermed'和password='111111'警告:无法修改标题信息-标题已由C:\Program Files\xampp\htdocs\login.php中的C:\Program Files\xampp\htdocs\login.php第35行的输出发送,代码中的注释解释了一个完全不同的逻辑,那么代码实际上在做什么呢?请在$\u POST变量周围使用mysql\u real\u escape\u字符串,因为这只是一个等待发生的问题。看起来您正在登录。标题警告是因为您被发送到main.php。问题在那里,而不是这里。