2016-07-08 121 views
1

連接mysqli_query命令我一直在試圖用mysqli_query連接到數據庫中定義在外部文件中,但我得到一個重複的錯誤爲undefined $conn從外部php文件

的index.php

<?php 
require 'connect.in.php'; 
include 'loginform.php'; 

?> 

連接。 in.php

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbase = "users"; 

$conn = mysqli_connect($servername,$username,$password); 

if($conn ||!mysqli_select_db($dbase)){ 

    die('error message'); 
} 
?> 

loginform.php

<?php 
    if(isset($_POST['username']) && isset($_POST['password'])){ 
    $username = 'username'; 
    $password = 'password'; 
    if(!empty($username) && !empty($password)){ 
     $query = "SELECT 'id' FROM 'user_list' WHERE 'username'= '$username' AND 'password' = '$password'"; 
     if(mysqli_query($conn, $query)){ 
      echo "correct"; 
     } 
     else{ 
      echo "false"; 
     } 
    } 
} 

?> 
<form method="post"> 
Username:<input type="text" name="username"> 
Password:<input type="password" name="password"> 
<input type="submit" value="Login"> 

</form> 

也有可能合併CSS和Bootstrap在此PHP文件說的loginform.php?

+2

你必須包括/需要'connect.in.php'在loginform.php像這樣'要求( 「connect.in.php」); – Jeff

+1

[小博](http://bobby-tables.com/)說***腳本是在對SQL注入攻擊的風險。(http://stackoverflow.com/questions/60174/how-can- ***)瞭解[MySQLi](http://php.net/manual)[準備](http://en.wikipedia.org/wiki/Prepared_statement)聲明/en/mysqli.quickstart.prepared-statements.php)。即使[轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! –

+1

**切勿將明文密碼!**請使用PHP的[內置函數(http://jayblanchard.net/proper_password_hashing_with_PHP.html)來處理密碼的安全性。如果您使用的PHP版本低於5.5,則可以使用'password_hash()'[兼容包](https://github.com/ircmaxell/password_compat)。確保你*** [不要越獄密碼](http://stackoverflow.com/q/36628418/1011527)***或在哈希之前使用其他任何清理機制。這樣做*更改密碼並導致不必要的附加編碼。 –

回答

0

不要忘記告訴mysqli_connect()功能,您使用的是什麼數據庫。我討厭使用W3Schools,但看看here,第四個參數是你想使用的DB。

connect.in.php

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbase = "users"; 

$conn = mysqli_connect($servername,$username,$password, $dbase); 

if($conn ||!mysqli_select_db($dbase)){ 

    die('error message'); 
} 
?> 

一般來說,你會希望所有的CSS和JS文件索引頁或母版頁的<head>元素。基本上你可以在頂部的loginform.php文件中添加文件,但我建議不要這樣做,並將它們放在index.php文件中。

+0

即使包含它也沒有改變 –