2013-04-07 2 views
0

Я создал страницу регистрации с помощью PHP. Элемент управления всегда переходит в другую часть («Ошибка»). Я определил базу данных, использовал тот же идентификатор, который использовался в полях формы, но все тот же. Я не могу понять это. Я бы очень признателен за любую помощь.Страница регистрации-PHP Ошибка

Вот мой код:

<?php 
require_once 'connectdb.php'; 

$dbc = mysqli_connect($mysql_host, $mysql_user , $mysql_pass , $mysql_db) or die('Error Connecting to database'); 
if (isset($_POST['submit'])) 
{ 

$first_name = mysqli_real_escape_string($dbc, trim($_POST['first_name'])); 
$last_name = mysqli_real_escape_string($dbc, trim($_POST['last_name'])); 
$password1 = mysqli_real_escape_string($dbc, trim($_POST['password1'])); 
$password2 = mysqli_real_escape_string($dbc, trim($_POST['password2'])); 
$email = mysqli_real_escape_string($dbc, trim($_POST['email'])); 

if (!empty($first_name) && !empty($last_name) && !empty($password1) && !empty($password2) && ($password1==$password2)) 
{ 
    $query = "SELECT * FROM user_db WHERE email='$email'"; 
    $data = mysqli_query($dbc, $query); 
    if(mysqli_num_rows($data) == 0) 
    { 
     $password2 = md5($password1); 
     $query = "INSERT INTO user_db(fname, lname, email, password) VALUES('$first_name','$last_name','$email','$password2')"; 
     $data = mysqli_query($dbc, $query) or die('Error Querying database-Adding info'); 
     echo '<strong>Registration Successful</strong>'; 

     mysqli_close($dbc); 
     exit(); 
    } 
    else 
    { 
     echo 'An account already exists for with this email id. Kindly use a different one<br /> '; 
     $email = ""; 
    } 
} 

else 
{ 
    echo 'Please enter all the fields correctly, including the desired password correctly <br/>'; 
} 

} 
// The control goes everytime into this else part 
else 
{ 
    echo 'Error'; 
} 

mysqli_close($dbc); 

?> 
+0

Что делает var_dump ($ _POST ['submit]); сказать? –

+0

имеет ли ваша кнопка отправки имя = 'submit'? – Svetoslav

+0

Каково название вашей кнопки отправки, действительно ли она отправляется? и имеет вашу форму actio method = "post"? – Nickool

ответ

1

$_POST['submit'] не установлен. Вот почему ваш код переходит в «ошибку» -части.

Вы должны установить имена html-элементов, чтобы PHP знал, что искать.

Что-то вроде этого:

<form action="index.php" method="POST" > 
First Name : <input type="text" id="first_name" name="first_name" /><br/> 
Last Name : <input type="text" id="last_name" name="last_name" /><br/> 
Email : <input type="text" id="email" name="email" /><br/> 
Password : <input type="password" id="password1" name="password1" /><br/> 
Repeat Password:<input type="password" id="password2" name="password2" /><br/> 
<input type="submit" id="submit" value="submit" name="submit" /> </form> 

рассмотреть также не смешивать типы HTML-элементов и идентификаторов/имен тех. submit не является окончательным именем для html-элемента, потому что это может вызвать много путаницы. Вместо того, чтобы назвать кнопку представить что-то вроде:

<input type="submit" id="submit-registration" value="submit" name="submit-registration" /> </form> 
+0

Я использовал isset ($ _ POST ['first_name'] && ...) также. Но это тоже не сработало. – wdphd

+0

Вы должны установить атрибуты имени для своих html-элементов. (Не только id) – bestprogrammerintheworld

+0

Спасибо. Его работа :) – wdphd

0

Показать HTML пожалуйста. Мое предположение было бы, что вы не имеете <input> тег с name="submit" и value="something" в вашей форме :-)

+0

<форма действия = метод "index.php" = "POST"> \t Имя: \t <входной тип = "текст" ID = "first_name" />
\t Фамилия: \t <входной тип = "текст" ID = "last_name" />
\t Email \t: <входной тип = "текст" ID = "электронная почта" />
\t Пароль: \t <входной тип = "пароль" ID = "password1" />
\t Повторить пароль:
\t \t – wdphd

+0

Вы должны установить имена элементов, а не только идентификаторы. – bestprogrammerintheworld

+0

ваш php ищет атрибут имени –

0

Это говорит вам одну вещь .. submit не передается в вашем форуме. Это простой тест. В вашей форме добавьте такой ввод <input type="text" name="submit" />, а затем попробуйте еще раз

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