Регулярные выражения

Статус
В этой теме нельзя размещать новые ответы.

Fratyr

Новичок
Регулярные выражения

Продолжая заморочки с регистрацией, регулярные выражения не проверяют имя пользователя а просто швыряют меня на следующий шаг и я не могу найти ошибку.

Да и еще, когда я нахожусь на 1 шаге и кликаю по ссылке в браузере и нажимаю еще раз Enter, перезайти на сайт, то я перемещаюсь на след. шаг. Помогите устранить неполадочки. Не дайте просидеть месяц за такими мелочами. Т_Т

Весь код:
PHP:
<?php
//starting session for data
session_start();

// making user registration

// defining didme value to false. means user wasnt at step1 :-)
$truefalse = 'false';

//checking which step number currently in session data
$step = $_SESSION['step'] ? $_SESSION['step'] : 1;

//check which step user at and call function for current step
switch ($step)
{
case 1: step_one();break;
case 2: step_two();break;
case 3: step_three();break;
case 4: step_updb();break;
default: echo "Error, you are trying to reach undefined step of registration. Get out!";
}

//creating functions for each step
//step1 function
function step_one(){

if (isset($_POST['submitted']) && $_POST['didme'] == 'true') {
	//create errors array
	$errors = array();
	//connect to mysql
	//getting database configuration file
	require('include/config_sql.php');
    require_once ('include/connect_sql.php'); 
	//check if username is correct/available - 
	if (eregi('^[[:alnum:]\.\'\-]{4,30}$', stripslashes(trim($_POST['loginname']))) ) {
        $nuser = mysql_real_escape_string($_POST['loginname']);
        $query = "SELECT loginname FROM users WHERE loginname = '$nuser'";
        $result = @mysql_query($query);
        $num = @mysql_num_rows($result);
        
        if ($num> 0) {
            $errors[] = '<font color="red">The loginname you have chosen has already been taken, please choose another one.</font>';
        } else {
            $nusername = mysql_real_escape_string($_POST['loginname']);
        }
    } else {
        $errors[] = '<font color="red">Please provide a valid loginname between 4 and 20 characters.</font>';
    }
	//register username to session
	if ($_POST['loginname']){
		$_SESSION['loginname'] = $_POST['loginname'];
	}
	else{
		echo "Error occurred while registering loginname";
	}
	// register session step to 2 and proceed.
	$_SESSION['step'] = 2;
	//Redirect to next step
	header("Location: ".$_SERVER['PHP_SELF']);
}

else {
$truefalse = 'true';
echo "<form action='$PHP_SELF' method='post' name='form1'><input type='hidden' name='didme' value='$truefalse'>
Loginname: <input type='text' size='20' name='loginname'>
Email: <input type='text' size='20' name='email_1'>
C.Email: <input type='text' size='20' name='email_2'>
Password: <input type='text' size='20' name='password_1'>
C.Password: <input type='text' size='20' name='password_2'>
<input type='submit' value='Proceed' name='submitted'>
</form>";
} 

}

function step_two(){
	if (isset($_SESSION['loginname'])){
		echo "Hello " . $_SESSION['loginname'];
		echo "Are you sure you want to register this username?";
		echo "<form action='$PHP_SELF' method='post' name='form2'><input type='submit' name='submittedto3' value='Yes'></form>";
		$_SESSION['step'] = 3;

	}
	else {
		echo "You probably came from nowhere. If you would like to Register a new account please visit this link and enter a correct information.";
		session_destroy();
	}

}

function step_three(){
	echo "You are at step 3";
	echo "Finish or die?";
	echo "<form action='$PHP_SELF' method='post' name='form2'><input type='submit' name='submittedto3' value='Finish'></form>";

	$_SESSION['step'] = 4;
}

function step_updb(){
	echo "Registration Complete. Proceed to <a href='index.php'>Login page</a>";
	unset($_SESSION['step']);
	session_destroy;
}

?>
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху