2015-11-29 3 views
0

Я успешно создал регистрационную форму, которая соединяется с MySQL и вставляет новую информацию пользователя. Однако, когда приходит время входа в систему и создания сеанса, кажется, что все просто умирает, как только я нажимаю «Отправить». Независимо от того, правильно или неправильно я заполнял что-либо, экран просто обновляется и нет выхода ошибки. Любая помощь приветствуется!PHP Login/Session dying at Submit

register.php

<?php 

include("authorized.php"); 

if(isset($_POST["submit"])){ 
    $name = $_POST["name"]; 
    $email = $_POST["email"]; 
    $password = $_POST["password"]; 

    //What does real escape string do? 
    $name = mysqli_real_escape_string($connect, $name); 
    $email = mysqli_real_escape_string($connect, $email); 
    $password = mysqli_real_escape_string($connect, $password); 
    $password = md5($password); 

    $q = "SELECT email FROM users WHERE email='$email'"; 
    $result = mysqli_query($connect, $q); 
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

    if(mysqli_num_rows($result) == 1) 
    { 
     echo "Email already exists."; 
    } else { 
     $query = mysqli_query($connect, "INSERT INTO users (name, email, password) VALUES ('$name', '$email', '$password')"); 

     if($query){ 
      echo "Thank you for registering."; 
      header("location: dashboard.php"); 
     } 
    } 


} 

?> 
<div class="ui center aligned container"> 
<form method="post" action=""> 
<fieldset> 
<legend>Registration Form</legend> 
<table width="400" border="0" cellpadding="10" cellspacing="10"> 
<tr> 
<td style="font-weight: bold"><div align="right"><label for="name">Name</label></div></td> 
<td><input name="name" type="text" class="input" size="25" required /></td> 
</tr> 
<tr> 
<td style="font-weight: bold"><div align="right"><label for="email">Email</label></div></td> 
<td><input name="email" type="email" class="input" size="25" required /></td> 
</tr> 
<tr> 
<td height="23" style="font-weight: bold"><div align="right"><label for="password">Password</label></div></td> 
<td><input name="password" type="password" class="input" size="25" required /></td> 
</tr> 
<tr> 
<td height="23"></td> 
<td><div align="right"> 
    <input type="submit" name="submit" value="Register!" /> 
</div></td> 
</tr> 
</table> 
</fieldset> 
</form> 
</div> 

login.php

<?php 
session_start(); 
include("includes/connect.php"); //Establishing connection with our database 

$error = ""; //Variable for storing our errors. 
if(isset($_POST["submit"])) 
{ 
if(empty($_POST["username"]) || empty($_POST["password"])) 
{ 
$error = "Both fields are required."; 
}else 
{ 
// Define $username and $password 
$username=$_POST['username']; 
$password=$_POST['password']; 

// To protect from MySQL injection 
$username = stripslashes($username); 
$password = stripslashes($password); 
$username = mysqli_real_escape_string($db, $username); 
$password = mysqli_real_escape_string($db, $password); 
$password = md5($password); 

//Check username and password from database 
$sql="SELECT id FROM users WHERE email='$username' and password='$password'"; 
$result=mysqli_query($db,$sql); 
$row=mysqli_fetch_array($result,MYSQLI_ASSOC); 

print_r($row); 

//If username and password exist in our database then create a session. 
//Otherwise echo error. 

if(mysqli_num_rows($result) == 1) 
{ 
$_SESSION['username'] = $login_user; // Initializing Session 
header("location: home.php"); // Redirecting To Other Page 
}else 
{ 
$error = "Incorrect username or password."; 
} 

} 
} 

?> 

<div class="ui container center aligned"> 
<h1>PHP Login Form with Session</h1> 
<div class="loginBox"> 
<h3>Login Form</h3> 
<br><br> 
<form method="post" action=""> 
<label>Username:</label><br> 
<input type="text" name="username" placeholder="username" /><br><br> 
<label>Password:</label><br> 
<input type="password" name="password" placeholder="password" /> <br><br> 
<input type="submit" value="Login" /> 
</form> 
<div class="error"><?php echo $error;?></div> 
</div> 
</div> 

ответ

0

Редактировать

<input type="submit" value="Login" /> 

в

<input type="submit" value="Login" name="submit"/> 
0

Как и раньше, вы должны указать имя для своего тега ввода. В противном случае php не знает, что именно вы пытаетесь сделать.

+0

Я чувствую себя глупо. – Alonso