好的,我的大学讲师已经要求我使用PHP创建一个登录系统。现在我读到有关PHP的信息,我不熟悉它。我使用了这段代码并自己编写了一些代码。
<?php
session_start();
$username = $_POST ['username'];
$password = $_POST ['password'];
if ($username&&$password) {
$connect = mysql_connect("localhost","root","") or die("Couldn't Connect");
mysql_select_db("phplogin") or die ("Couldn't find Database");
$query = mysql_query("SELECT * FROM users WHERE username='$username'")'
$numrows = mysql_num_rows ($query);
if ($numrows!=0) {
while ($row = mysql_fetch_assoc()) {
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ( ($username==$dbusername) && ($password==$dbpassword) ) {
echo "you are in,<a href ='member.php'> Click here</a> to enter member page";
$_SESSION['username']=$dbusername;
} else {
echo "Incorrect password";
} else {
die ("That user does not exist");
}
echo $numrows;
} else {
die("Please enter a username and password")
}
&GT;
这是我正在使用的Index.php。 我的登录页面很简单,有2个字段:用户名和密码,带有登录和注册按钮。 在我从数据库中输入的字段中输入详细信息后,它会在页面的顶部显示。
点击此处进入会员页面“; $ _SESSION ['username'] = $ dbusername;}否则回显”密码不正确“;}否则死掉(”该用户不存在“); echo $ numrows;}否则死掉(“请输入用户名和密码”)?&gt;
我的注册页面也有问题,您必须填写4个字段:用户名,电子邮件,密码和确认密码,以及注册按钮以“注册”为用户。
<?php //Register process $submit = $_POST['submit'];
// form data $ name = strip_tags($ _POST ['name']); $ username = strip_tags($ _POST ['username']); $ password = md5(strip_tags ($ _POST [ '密码'])); $ confirmpassword = strip_tags ($ _POST [ 'confirmpassword']); $ date = date(“Y-m-d”);
if($ submit){
if($ username&amp;&amp; $ password&amp;&amp; $ confirmpassword){//加密密码 $ password = md5($ password); $ confirmpassword = md5 ($ confirmpassword); if($ password == $ confirmpassword){//检查字符长度if(strlen($ username)&gt; 25 || strlen($ name)&gt; 25){echo “用户名或名称的长度太长”; } else { //检查密码长度 if(strlen($ password)&gt; 20 || strlen($ password)&lt; 5) { echo“密码必须在5到20个字符之间”; } 其他 { //注册用户 } else} echo“你的密码不匹配!”;
} else echo "Please fill in <b>all</b> feidls!"; } ?>
你的全名: 选择一个用户名: 选择一个密码: 确认你的密码:
然而,即使在将详细信息输入到字段之前,也会在页面顶部显示大量代码。
25 || strlen($ name)&gt; 25){echo“用户名或名称的长度太长”; } else {//检查密码长度if(strlen($ password)&gt; 20 || strlen($ password)&lt; 5){echo“密码必须在5到20个字符之间”; } else {//注册用户}}}否则回显“你的密码不匹配!”; } else echo“请填写所有的feidls!”; }?&gt;
有人可以告诉我这里做错了吗?我使用Xampp来创建我的数据库。
答案 0 :(得分:2)
您需要在单独的行上提供内联注释和可执行代码。
你有这个:
//check character length if (strlen ($username) >25 || strlen ...
它正在评论if
声明。它必须是这样的:
//check character length
if (strlen ($username) >25 || strlen ...
你这样做了几次://Register process $submit = $_POST['submit'];
- $ submit永远不会被定义,因为它在评论中。
你走了。我的心情很好。我甚至添加了结束</td>
和<body>
标记,因为它们也丢失了:
<?php
//Register process
$submit = $_POST['submit'];
//form data
$name = strip_tags($_POST['name']);
$username = strip_tags($_POST['username']);
$password = md5(strip_tags($_POST['password']));
$confirmpassword = strip_tags($_POST['confirmpassword']);
$date = date("Y-m-d");
if ($submit) {
if ($username && $password && $confirmpassword) { //encrypt password
$password = md5($password);
$confirmpassword = md5($confirmpassword);
if ($password == $confirmpassword) {
//check character length
if (strlen($username) > 25 || strlen($name) > 25) {
echo "length of Username or Name is too long";
} else {
//checks password length
if (strlen($password) > 20 || strlen($password) < 5) {
echo "password must be between 5 and 20 characters";
} else {
//registers user
}
}
} else {
echo "Your passwords to not match!";
}
} else {
echo "Please fill in <b>all</b> feidls!";
}
} // end if submit
?>
<html>
<body>
<form action='register.php' method='POST'>
<table>
<tr>
<td> Your full Name:</td>
<td><input type='text' name='name'></td>
</tr>
<tr>
<td> Choose a Username:</td>
<td><input type='text' name='username'></td>
</tr>
<tr>
<td> Choose a Password:</td>
<td><input type='password' name='password'></td>
</tr>
<tr>
<td> Confirm your Password:</td>
<td><input type='password' name='confirmpassword'></td>
</tr>
</table>
<p><input type="button" onclick="window.location.href='member.php'" value="Register"></p>
</form>
</body>
</html>
答案 1 :(得分:0)
实际上看起来你要求它重定向到form.html但已经向浏览器输出了一些信息。这将导致错误。在输出任何内容之前,您需要尝试重定向。因此,在输出之前,你真的可能应该调用有效。