Fratyr
Новичок
Регулярные выражения
Продолжая заморочки с регистрацией, регулярные выражения не проверяют имя пользователя а просто швыряют меня на следующий шаг и я не могу найти ошибку.
Да и еще, когда я нахожусь на 1 шаге и кликаю по ссылке в браузере и нажимаю еще раз Enter, перезайти на сайт, то я перемещаюсь на след. шаг. Помогите устранить неполадочки. Не дайте просидеть месяц за такими мелочами. Т_Т
Весь код:
Продолжая заморочки с регистрацией, регулярные выражения не проверяют имя пользователя а просто швыряют меня на следующий шаг и я не могу найти ошибку.
Да и еще, когда я нахожусь на 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;
}
?>