2013-03-14 2 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> 

А вот PHP код на register.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 [имя_пользователя]'. –

+2

Объедините все ответы ниже. Вы получите идеальное решение. –

+0

Спасибо всем, кто ответил !!! Теперь он отлично работает :). Как я уже сказал, я новичок во всем этом, поэтому большая часть кода была из фрагментов учебников, и я просто просмотрел ее, чтобы понять, имеет ли смысл. Еще раз спасибо! (Я создаю игровой сайт с большим количеством PHP-MySql ... так что я, вероятно, скоро вернусь сюда xD) – Tulip

ответ

1

Функции Mysql, которые вы используете, неверны ...

изменение

mssql_connect($myServer, $myUser, $myPass) 

к

mysql_connect($myServer, $myUser, $myPass) 

И

mssql_select_db($myDB, $conn) 

к

mysql_select_db($myDB, $conn) 

ДОКУМЕНТАЦИЯ LINK http://www.w3schools.com/php/php_ref_mysql.asp

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_connect и mssql_select_db но фактическая команда mysql_connect и mysql_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. закрытым способом attribute в форме method="GET"
  2. вставки утверждение, как показано ниже

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

  3. mssql_connect должно быть mysql_connect и mssql_select_db должно быть mysql_select_db

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

Разница.

$_GET['username'] Это будет искать значение имени пользователя, переданное в качестве параметра.

$_GET[username] это будет искать константу имени пользователя, которая не может быть определена в коде.

+0

'echo $ _GET [имя_пользователя];' Will will fetch '$ _GET [' username '] ; 'значение, хотя с уведомлением о том, что индекс был принят –

+0

@HankyPanky ㇱ в соответствии с личным опытом, я столкнулся с этим, когда начал изучать php, и это дало мне неопределенную постоянную ошибку ... и узнать, что ошибка времени никогда не забывается. –

+2

Да, это правда, он выдаст сообщение. Это «уведомление», а не «ошибка», и да, его следует избегать, но это не значит, что их код не работает. –

Смежные вопросы