2017-04-14 157 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