2015-10-18 3 views
0

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

У меня есть HTML-страницу:

<form role="form" action="register.php" method="POST"> 
    <div class="form-group"> 
     <label>First Name:</label> 
     <input type="text" name="first_name"> 
    </div> 
    <div class="form-group"> 
     <label>Last Name:</label> 
     <input type="text" name="last_name"> 
    </div> 
    <div class="form-group"> 
     <label>Student ID:</label> 
     <input type="number" name="student_id"> 
    </div> 
    <div class="form-group"> 
     <label>Email address:</label> 
     <input type="email" name="email"> 
    </div> 
    <button type="submit" name="register" value="register">Register</button> 
</form> 
<form role="form" action="login.php" method="POST"> 
    <div class="form-group"> 
     <label>Email address:</label> 
     <input type="email" name="email"> 
    </div> 
    <button type="submit" name="login" value="login">Login</button> 
</form> 

Эти функции и общается отлично с моей страницы входа написано в PHP, он проверяет, является ли представленный адрес электронной почты уже существует в базе данных MySQL. Затем он укажет пользователя на страницу профиля, и код выйдет сам.

Моя проблема связана с моей страницей регистрации, я использую те же функции MySQL SELECT, которые я выполняю на своей странице входа, чтобы проверить, есть ли уже предоставленный идентификатор или адрес студента в базе данных, и если это так, вернется назад к форме для пользователя, чтобы попробовать еще раз:

<?php 
$servername = ""; 
$username = ""; 
$password = ""; 
$dbname = ""; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$first_name = $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$student_id = $_POST['student_id']; 
$email = $_POST['email']; 
if (isset($_POST['register'])) { 
    register($conn, $first_name, $last_name, $student_id, $email); 
} 
function register($conn, $first_name, $last_name, $student_id, $email) { 
    $Ssql = "SELECT student_id FROM AidenLocke where student_id = '$student_id'"; 
    $Sresult = mysqli_query($conn, $sql); 
    if (mysqli_num_rows($Sresult) > 0) { 
     header('Location: form.html'); 
    } else { 
     $sql = "INSERT INTO AidenLocke (first_name, last_name, email, student_id) 
      VALUES ('$first_name', '$last_name', '$email', '$student_id')"; 

     if ($conn->query($sql) === TRUE) { 
      echo "New record created successfully"; 
     } else { 
      echo "Error: " . $sql . "<br />" . $conn->error; 
     } 
     header('Location: profile.php'); 
    } 
} 

(я удалил свою информацию из базы данных по соображениям безопасности, но нет никаких проблем с подключением)

Моя главная проблема с секцией еще второго, если , мой код не проверяет, существует ли уже идентификатор студента, и независимо от того, какую информацию я вхожу в форму, w вход в базу данных.

Я совершенно смущен и надеюсь, что кто-то может дать мне верный ответ, спасибо!

ответ

1

Вы, кажется, опечатка в переменной, когда запрос к базе данных:

$Ssql = "SELECT student_id FROM AidenLocke where student_id = '$student_id'"; 
^^^^ 
$Sresult = mysqli_query($conn, $sql); 
           ^^^ 

То есть, вы используете $sql вместо $Ssql

+0

не могу поверить, что это был единственный вопрос! Спасибо :) – Arkadelic

+0

@ user5459946 Это хороший пример, почему использовать пользовательских менеджеров баз данных, которые скрывают такую ​​реализацию :-) –

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