2013-03-14 86 views
1

這裏是HTML表單:

<form action="register.php" METHOD=GET align="center"> 
<table border="2" align="center"> 
<tr> 
<td>Desired Username:</td><td><input name="username" type="text" size"20"></input></td> 
</tr> 
<tr> 
<td>Your Email:</td><td><input name="email" type="text" size"30"></input></td> 
</tr> 
<tr> 
<td>Desired Password:</td><td><input name="password" type="password" size"20"></input>          </td> 
</tr> 
<tr> 
<td>Confirm Password:</td><td><input name="password2" type="password" size"20"></input>   </td> 
</tr> 
</table> 
<input type="submit" value="Register!" align="center"></input> 
</FORM> 

這裏是register.php PHP代碼:

<?php 
$myServer = "localhost"; 
$myUser = "Censored"; 
$myPass = "Censored"; 
$myDB = "Censored"; 

//connection to the database 
$conn = "mssql_connect($myServer, $myUser, $myPass) 
or die('Couldn't connect to SQL Server on $myServer')"; 

//select a database to work with 
$selected = "mssql_select_db($myDB, $conn) 
or die('Couldn't open database $myDB')"; 

//add new user to DB 
if($_GET["username"] && $_GET["email"] && $_GET["password"] && $_GET["password2"]) 
{ 
if($_GET["password"]==$_GET["password2"]) 
{ 
$sql="INSERT INTO Users(Username, Password, Email)    VALUES('$_GET[username]','$_GET[password]','$_GET[email]')"; 
$result="mysql_query($sql,$conn) or die (mysql_error())"; 
} 

if ($result) 
{ 
echo "<h1 align='center'>Registration Successful!</h1>"; 

echo "<p align='center'>Click<a href='index.php'> here</a> to log in.</p>"; 

} 
else echo "Oops! Something went wrong. Please <a  href='http://www.canilosa.zxq.net/index.php'>go back</a> and fix it."; 
} 
?> 

我在PHP和MySQL的初學者。我已經檢查並重新檢查了所有的用戶名,密碼,數據庫等等。回聲工作,它說註冊是成功的,但是當我檢查我的數據庫時,沒有數據。


非常感謝大家的回答!它現在工作正常:)。正如我所說的,我對所有這些都是新手,所以大部分代碼都來自教程片段,我只是剔除它,看看它是否有意義。再次感謝! (我創建一個遊戲網站,有很多PHP MySQL的的...所以我可能會回到這裏很快就好了XD)

+0

使用'$ _GET ['username']'而不是'$ _GET [username]'。 – 2013-03-14 05:38:49

+2

結合下面的所有答案。你會得到一個完美的解決方案。 – 2013-03-14 05:40:38

+0

非常感謝所有回答的人!它現在工作正常:)。正如我所說的,我對所有這些都是新手,所以大部分代碼都來自教程片段,我只是剔除它,看看它是否有意義。再次感謝! (我正在創建一個有很多PHP-MySql的遊戲網站......所以我很快就會回到這裏xD) – Tulip 2013-03-14 05:55:05

回答

2

改變這種

<form action="register.php" METHOD=GET align="center"> 

<form action="register.php" METHOD="GET" align="center"> 
           ^^

還應該

$conn = mysql_connect($myServer, $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer"); 

//select a database to work with 
$selected = mysql_select_db($myDB, $conn) or die("Couldn't open database $myDB"); 
1

您已經使用mssql_connectmssql_select_db但實際的命令是mysql_connectmysql_select_db

只是這個

//connection to the database 
$conn = mysql_connect($myServer, $myUser, $myPass) 
or die('Couldn't connect to SQL Server on $myServer'); 

//select a database to work with 
$selected = mysql_select_db($myDB, $conn) 
or die('Couldn't open database $myDB'); 
0

更正替換您的代碼。如下

  1. close方法attribute形式method="GET"
  2. 插入語句

    "INSERT INTO Users(Username, Password, Email) VALUES('".$_GET['username']."','".$_GET['password']."','".$_GET['email']."')";

  3. mssql_connect應該mysql_connectmssql_select_db應該是mysql_select_db

  4. $result= mysql_query($sql,$conn) or die (mysql_error());

區別。

$_GET['username']這將查找在url中傳遞的用戶名值作爲參數。

$_GET[username]這將查找可能未在代碼中定義的用戶名常量。

+0

'echo $ _GET [username];'仍然會獲取'$ _GET ['username'] ;'價值,雖然有一個通知,該指數假設 – 2013-03-14 05:45:47

+0

@HankyPankyㇱ根據我個人的經驗,當我開始學習PHP的時候遇到它,它給了我一個未定義的常量錯誤......並且學習時間錯誤永遠不會被遺忘。 – 2013-03-14 05:48:03

+2

是的,這是真的,它會發出一條消息。這是一個「通知」而不是「錯誤」,是的,應該避免,但這不是他們的代碼失敗的原因。 – 2013-03-14 05:49:43

相關問題