Проблем с скрипт за регистрация

qazxsw

Registered
Таблица:

Код:
CREATE TABLE `users` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 12 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

Код:
Код:
<?php @include("config.php"); ?>
<html>
	<head>
		<title><?php echo $SiteName; ?></title>
	</head>

<body>
<?php
	if(isset($_POST['submit']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$cpassword = $_POST['cpassword'];
$email = $_POST['email'];

	if($username == NULL || $password == NULL || $cpassword == NULL || $email == NULL)
	{header("Location: register.php?error=empty");}
	
	elseif(strlen($username) < 3 || strlen($username) > 12)
	{header("Location: register.php?error=username");}
	
	elseif($password != $cpassword)
	{header("Location register.php?error=password");}
	

$sql = "INSERT INTO users (username, password, email)
VALUES ($username, $password, $email)";
mysql_query($sql);
}

?>
<?php $error = isset($_GET["error"]) ? $_GET["error"] : false; ?>
		<table align='center'>
			<tr>
				<td align='center'>
	<form method='POST' action='register.php'>
				</td>
			</tr>

			<tr>
				<td align='center'>
	<label><?php 
	if($error == "empty") 
	{echo "<font color='red'>Всички полета са задължителни!</font>";}
	
	elseif($error == "username")
	{echo "<font color='red'>Потребителското име трябва да е между 4 и 10 знака!</font>";}
	
	elseif($error == "password")
	{echo "<font color='red'>Паролите не съвпадат!</font>";}
	
	elseif($error == "register")
	{echo "<font color='red'>Регистрацията успешна!</font>";}
	?></label>
				</td>
			</tr>
			
			<tr>
				<td align='center'>
	<label>Потребител: </label><input type='text' name='username' />
				</td>
			</tr>
			
			<tr>
				<td align='center'>
	<label>Парола: </label><input type='password' name='password' />
				</td>
			</tr>
			
			<tr>
				<td align='center'>
	<label>Потвърди: </label><input type='password' name='cpassword' />
				</td>
			</tr>
			
			<tr>
				<td align='center'>
	<label>Емайл: </label><input type='text' name='email' />
				</td>
			</tr>
			
			<tr>
				<td align='center'>
						<input type='submit' value='Register' name='submit' />
				</td>
			</tr>
	</form>
		</table>
</body>
</html>

Проблема е много страннен и изглежда не мога да разбера от къде произлиза.

Значи ако въведа във всички полета от формата числа, за потребителско име, за парола, потвърждение и емайл регистрацията се получава. Ако в някое от тези полета има буква регистрацията не се получава :shock:
 
Направи една проверка дали потребителското име е заето, защотот за напред ще имаш проблеми.

Код:
	<?php include("config.php"); ?>
<html>
   <head>
      <title><?php echo $SiteName; ?></title>
   </head>

<body>
<?php
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
$cpassword = $_POST['cpassword'];
$email = $_POST['email'];

if($username == NULL || $password == NULL || $cpassword == NULL || $email == NULL) {
	header("Location: register.php?error=empty");
}
   
elseif(strlen($username) < 3 || strlen($username) > 12){
	header("Location: register.php?error=username");
}
   
elseif($password != $cpassword) {
	header("Location register.php?error=password");
}
$username = htmlspecialchars($username); 
$password = htmlspecialchars($password); 
$email = htmlspecialchars($email);
$query = mysql_query("INSERT INTO users (id, username, password, email) VALUES('NULL', '" . str_replace("\'", "''", 

$username) . "','" . str_replace("\'", "''", $password) . "','$email')"); 
echo "<b>Поздравления регистрирахте се успешно!</b>";
}
?>
<?php 
	$error = isset($_GET["error"]) ? $_GET["error"] : false; 
?>
      <table align='center'>
         <tr>
            <td align='center'>
   <form method='POST' action='register.php'>
            </td>
         </tr>

         <tr>
            <td align='center'>
   <label><?php
   if($error == "empty") {
	echo "<font color='red'>Всички полета са задължителни!</font>";
	}
   
   elseif($error == "username") {
	echo "<font color='red'>Потребителското име трябва да е между 4 и 10 знака!</font>";
	}
   
   elseif($error == "password") {
	echo "<font color='red'>Паролите не съвпадат!</font>";
	}
   
   elseif($error == "register") {
	echo "<font color='red'>Регистрацията успешна!</font>";
	}
   ?></label>
            </td>
         </tr>
         
         <tr>
            <td align='center'>
   <label>Потребител: </label><input type='text' name='username' />
            </td>
         </tr>
         
         <tr>
            <td align='center'>
   <label>Парола: </label><input type='password' name='password' />
            </td>
         </tr>
         
         <tr>
            <td align='center'>
   <label>Потвърди: </label><input type='password' name='cpassword' />
            </td>
         </tr>
         
         <tr>
            <td align='center'>
   <label>Емайл: </label><input type='text' name='email' />
            </td>
         </tr>
         
         <tr>
            <td align='center'>
                  <input type='submit' value='Register' name='submit' />
            </td>
         </tr>
   </form>
      </table>
</body>
</html>
 
Да, благодаря ти за това, щях да го направя, но първо проверявах дали всичко си работи до момента.

А това което става ме учудва много защото не мога да си видя грешката къде ми е.

Заместих моят код с твоят и се получи!

Мерси, +1
 

Back
Горе