任何人都可以帮我这个代码吗?每次我想试用我的registerform.php
时,我都不会被重定向到成功的消息页面。浏览器说链接被破坏了。我没有收到任何错误。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>register</title>
</head>
<body>
<FORM ACTION="register.php" METHOD="POST">
<h1>welcome to the registration page</h1>
please input the registration details to create an account here<br>
<table border="2">
<tr>
<td>User Name :</td><td><input name="regname" type="text" size"20"></input></td>
</tr>
<tr>
<td>email :</td><td><input name="regemail" type="text" size"20"></input></td>
</tr>
<tr>
<td>password :</td><td><input name="regpass1" type="password" size"20"></input></td>
</tr>
<tr>
<td>retype password :</td><td><input name="regpass2" type="password" size"20"></input></td>
</tr>
</table>
<input type="submit" value="register me!"></input>
</FORM>
</body>
</html>
<?php
session_start();
if($_GET["regname"] && $_GET["regemail"] && $_GET["regpass1"] && $_GET["regpass2"] )
{
if($_GET["regpass1"]==$_GET["regpass2"])
{
$servername="localhost";
$username="root";
$password="";
$conn= mysql_connect($servername,$username,$password)or die(mysql_error());
mysql_select_db("tweetball",$conn);
$sql="insert into users (UserName,UserEmail,Password)values('$_GET[regname]','$_GET[regemail]','$_GET[regpass1]')";
$result=mysql_query($sql,$conn) or die(mysql_error());
print "<h1>you have registered sucessfully</h1>";
print "<a href='main_login.php'>go to login page</a>";
}
else print "passwords doesnt match";
}
else print"invaild input data";
?>
答案 0 :(得分:2)
看起来您的表单设置为POST方法,但您使用GET调用值。试试这个:
register.php - &gt;
<?php
session_start();
if($_POST["regname"] && $_POST["regemail"] && $_POST["regpass1"] && $_POST["regpass2"] )
{
if($_POST["regpass1"]==$_POST["regpass2"])
{
$servername="localhost";
$username="root";
$password="";
$conn= mysql_connect($servername,$username,$password)or die(mysql_error());
mysql_select_db("tweetball",$conn);
$sql="insert into users (UserName,UserEmail,Password)values('$_POST[regname]','$_POST[regemail]','$_POST[regpass1]')";
$result=mysql_query($sql,$conn) or die(mysql_error());
print "<h1>you have registered sucessfully</h1>";
print "<a href='main_login.php'>go to login page</a>";
}
else print "passwords doesnt match";
}
else print"invaild input data";
?>
编辑:另外,正如其他人所说,你应该真正阅读SQL注入和php的“mysql_real_escape_string”功能。
编辑2:再次,正如其他人所说,确保您正确链接到“registerform.php”FROM标记中的“register.php”文件。
答案 1 :(得分:1)
您提供的表单是POST方法。但是你得到了GET方法值
答案 2 :(得分:1)
虽然Kristoffer la Cour说的是真的并且会引起一些问题。如果浏览器说该链接已损坏,那么我认为'register.php'文件更有可能被错误地命名或者在正确的目录中不存在。
答案 3 :(得分:-1)
问题是您需要添加一些代码来阻止已注册的用户名重新注册。