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

stanimir_95

Registered
Здравейте, имам този код:
Код:
<?php 
        session_start();
	$server = 'localhost';
	$user = 'root';
	$pass = '';
	$con = mysql_connect($server, $user, $pass) or die (mysql_error());
	mysql_select_db('test', $con) or die (mysql_error());

	if(isset($_POST['submit']) && $_POST['submit']!='')
	{
		$username=addslashes(htmlspecialchars($_POST['username']));
		$pass=md5($_POST['pass']);
		$pass2=md5($_POST['pass2']);
		$mail=addslashes(htmlspecialchars($_POST['mail']));
		$rs = mysql_query("SELECT * FROM users WHERE username = '$username' OR mail = '$mail' LIMIT 1") or die (mysql_error());
		$row = mysql_fetch_assoc($rs) or die (mysql_error());
		if($row['username'] == $username)
		{
			$err[] = 'Username exists';
		}
		if($row['mail'] == $mail)
		{
			$err[] = 'Mail exists';
		}
		if(strlen(trim($username))<4)
		{
			$err[] = 'Short username';
		}
		if(strlen(trim($username))>22)
		{
			$err[] = 'Long username';
		}
		if(strlen(trim($pass))<4)
		{
			$err[] = 'Short password';
		}
		if(strlen(trim($pass))>22)
		{
			$err[] = 'Long password';
		}
		if($pass2 != $pass)
		{
			$err[] = 'Passwords do not match';
		}
		if (filter_var($mail, FILTER_VALIDATE_EMAIL))
		{
			$err[] = 'Invalid mail';
		}
		if(count($err)>0)
		{
			foreach($err as $v)
			{
				echo '<strong>'.$v.'</strong><br />';
			}
		}
		else
		{
			mysql_query("INSERT INTO users(username, mail, pass, date_registered) VALUES('$username', '$mail', '$pass', time())") or die (mysql_error());
			echo '<strong> Registration Successfull!</strong>';
		}
	}
	
?>

	<form action="index.php" method="post">
		Username: <input type="text" name="username" /><br /><br />
		Password: <input type="password" name="pass" /><br /><br />
		Repeat Password: <input type="password" name="pass2" /><br /><br />
		E-mail: <input type="text" name="mail" /><br /><br />
		<input type="submit" value="Register" name="submit"/>
	</form>
Проблемът е, че при събмитване на формата, тя самата изчезва и не се показва нищо. Някой може ли да помогне?
 
Пробвай така:

PHP:
<?php 
session_start();
$server = 'localhost';
$user = 'root';
$pass = '';
mysql_connect($server, $user, $pass) or die (mysql_error());
mysql_select_db('test') or die (mysql_error());
?>
<form method="POST">
Username: <input type="text" name="username" /><br /><br />
Password: <input type="password" name="pass" /><br /><br />
Repeat Password: <input type="password" name="pass2" /><br /><br />
E-mail: <input type="text" name="mail" /><br /><br />
<input type="submit" value="Register" name="submit"/>
</form>
<?php
if(isset($_POST['submit']))
{
$username = addslashes(htmlspecialchars($_POST['username']));
$pass = md5($_POST['pass']);
$pass2 = md5($_POST['pass2']);
$mail = addslashes(htmlspecialchars($_POST['mail']));
$time = time();
$rs = mysql_query("SELECT * FROM `users` WHERE `username` = '$username' OR `mail` = '$mail' ORDER by id LIMIT 1") or die (mysql_error());
$row = mysql_fetch_assoc($rs) or die (mysql_error());
if($row['username'] == $username)
{
$err[] = 'Username exists';
}
elseif($row['mail'] == $mail)
{
$err[] = 'Mail exists';
}
elseif(strlen(trim($username))<4)
{
$err[] = 'Short username';
}
elseif(strlen(trim($username))>22)
{
$err[] = 'Long username';
}
elseif(strlen(trim($pass))<4)
{
$err[] = 'Short password';
}
elseif(strlen(trim($pass))>22)
{
$err[] = 'Long password';
}
elseif($pass2 != $pass)
{
$err[] = 'Passwords do not match';
}
elseif (filter_var($mail, FILTER_VALIDATE_EMAIL))
{
$err[] = 'Invalid mail';
}
else { }
if(count($err)>0)
{
foreach($err as $v)
{
echo '<strong>'.$v.'</strong><br />';
}
}
else
{
mysql_query("INSERT INTO `users` (`username`, `mail`, `pass`, `date_registered`) VALUES('$username', '$mail', '$pass', '$time')") or die (mysql_error());
echo '<strong> Registration Successfull!</strong>';
}
}
?>
 
По този начин формата се показва след събмит, но не се изкарват съобщенията при невалидни полета или при успешна регистрация.
 

Back
Горе