2017-04-14 156 views
-1

我刚开始学习一些关于PHP和会话的知识(使用XAMPP运行PHP脚本)。PHP登录脚本中的疑问

在我开始之前,我正在看一些视频并阅读几本书。

我在这里得到的东西是从我看到关于PHP和会话的视频中得到的。我在这里有一个小问题,那就是视频中的人没有。

这是我的login.php代码:

<?php 
session_start();  // Starting Session 
$error = '';   // Variable To Store Error Message 

if (isset($_POST['submit'])) { 
    if (empty($_POST['username']) || empty($_POST['password'])) { 
     $error = "Brukernavn eller passord er ugyldig!"; 
    } else { 

     // Define $username and $password 
     $username = $_POST['username']; 
     $password = $_POST['password']; 

     // Establishing Connection with Server by passing server_name, user_id and password as a parameter 
     $connection = mysql_connect("localhost", "root", ""); 

     // To protect MySQL injection for Security purpose 
     $username = stripslashes($username); 
     $password = stripslashes($password); 
     $username = mysql_real_escape_string($username); 
     $password = mysql_real_escape_string($password); 

     // Selecting Database 
     $db = mysql_select_db("logintest", $connection); 

     // SQL query to fetch information of registerd users and finds user match. 
     $query = mysql_query("select * from users where password='$password' AND username='$username'", $connection); 

     $rows = mysql_num_rows($query); 
     if ($rows == 1) { 
      $_SESSION['login_user']=$username; // Initializing Session 
      header("location: profile.php"); // Redirecting To Other Page 
     } else { 
      $error = "Brukernavn eller passord er ugyldig!"; 
     } 
     mysql_close($connection); // Closing Connection 
    } 
} 
?> 

现在当我尝试登录并使用正确的用户名我得到这个错误:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in
C:\xampp\htdocs\gauldaldesign\login.php:14 Stack trace: #0
C:\xampp\htdocs\gauldaldesign\index.php(2): include() #1 {main} thrown in
C:\xampp\htdocs\gauldaldesign\login.php on line 14

任何人都可以解释这意味着什么。也许问题可能是什么? 也许不是答案,但至少指出我在正确的方向,以便我可以从我的错误中吸取教训。

+0

不管你做什么,**不要因为它们都构成一种已知的安全风险,您的应用程序使用mysql **功能。使用替代方法,如'mysqli'(注意** i **或PDO)。如果你看看官方文档,你会看到相同的警告:http://php.net/manual/en/function.mysql-connect.php - 如果你愿意,我还会建议使用更新版本的PHP正在开始,例如5.6起或7+。 – Optimae

+0

PHP 7中不再提供mysql API。无论如何,您应该使用mysqli或PDO。 –

+0

其实,您使用的是@learningwebdev的哪个版本的PHP?如果你的版本高于'5.5.0',那么这就解释了为什么你不能使用'mysql_connect()'(你不应该使用它)。 – Optimae

回答

1

您在使用php 5的视频中使用了php 7,&。

在XAMPP中切换到PHP 5,或者更好地使用mysqli_ *函数,甚至更好,使用PDO &准备好的语句。

参见:http://php.net/manual/en/mysqlinfo.api.choosing.php

+0

PDO难以学习?我在想也许学得很慢,但也许直接学习PDO只是一件好事? – learningwebdev

+0

我认为这并不难,即使:它值得: 你可以从任何简单的教程开始,但不要忘记检查:https://phpdelusions.net/pdo – Hossam

+0

非常感谢。然后我会尝试阅读PDO并观看一些视频。非常感谢你的帮助。 – learningwebdev