2016-07-06 200 views
-1

我一直在遵循本指南(http://www.tutorialspoint.com/php/php_mysql_login.htm)来构建自定义Php & MySQL登录系统,但我无法让我的工作。MySQL Php登录系统

登录可能会失败,它会检查数据库,它验证用户是true还是false,但是一旦完成,它就不会重定向用户。它只是将它们带回到登录页面,并且不显示HTML,PHP或CSS元素。

我们已经附上两个核心的login.php & session.php文件

的login.php:

include("databaseconfig.php"); 
    session_start(); 

    if($_SERVER["REQUEST_METHOD"] == "POST") { 
    // username and password sent from form 

    $myusername = mysqli_real_escape_string($db,$_POST['username']); 
    $mypassword = mysqli_real_escape_string($db,$_POST['password']); 

    $sql = "SELECT * FROM pacientes WHERE nombre = '$myusername' and apellidos = '$mypassword'"; 
    $result = mysqli_query($db,$sql); 
    $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 
    $active = $row['active']; 

    $count = mysqli_num_rows($result); 

    // If result matched $myusername and $mypassword, table row must be 1 row 

    if($count == 1) 
    { 
    session_register("myusername"); 
    $_SESSION['login_user'] = $myusername; 

    header("location: http://www.google.com/"); 
    } 
     else { 
     $error = "Your Login Name or Password didn't work!"; 
     } 
    } 

session.php文件

include('databaseconfig.php'); 
    session_start(); 

    $user_check = $_SESSION['login_user']; 

    $ses_sql = mysqli_query($db,"SELECT nombre FROM pacientes WHERE nombre = '$user_check' "); 

    $row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC); 

    $login_session = $row['nombre']; 

    if(!isset($_SESSION['login_user'])){ 
    header('location: www.google.co.uk'); 
    } 

我不知道为什么它的不会重定向到新页面。它甚至不会重定向到Google。就像我说的;

与数据库的连接有效, 代码检查数据库, 代码不会将用户发送到下一页。

该系统的用途是用户将登录并能够看到他们自己的配置文件。但目前我无法让系统重定向到任何页面。

我感谢您的支持,并希望您能提供帮助。

+0

你确定它会在这个'如果($计数== 1)'? –

+0

检查日志,可能你在'header'调用之前获得了alreay输出信息。另外,这是一个糟糕的教程,你应该使用准备好的语句。 –

+0

从世界的哪个角度来看并不重要:在php或mysql中使用非英文变量名称是错误的。 – Peon

回答

0

你应该写这在您的login.php

include("databaseconfig.php"); 
    session_start(); 

    if($_SERVER["REQUEST_METHOD"] == "POST") { 
    // username and password sent from form 

    $myusername = mysqli_real_escape_string($db,$_POST['username']); 
    $mypassword = mysqli_real_escape_string($db,$_POST['password']); 

    $sql = "SELECT * FROM pacientes WHERE nombre = '$myusername' and apellidos = '$mypassword'"; 
    $result = mysqli_query($db,$sql); 
    $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 
    $active = $row['active']; 

    $count = mysqli_num_rows($result); 

    // If result matched $myusername and $mypassword, table row must be 1 row 

    if($count > 0) 
    { 
    session_register("myusername"); 
    header('location: http://www.google.com/'); 
    $_SESSION['login_user']=$row['nombre']; 
    } 
     else { 
     echo "Your Login Name or Password didn't work!"; 
     } 
    } 

希望这将解决您的问题