2015-07-11 58 views
-1

我在访问此链接时出现以下错误: (是的,我知道以后我会使用json,因为它更好,但我是尝试此) http://justedhak.comlu.com/insert.php?username=m&password=mmysqli_fetch_array()期望参数1是mysqli_result,布尔错误,但查询的结果是varchar

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/a6901827/public_html/insert.php on line 18 

但查询的结果是VARCHAR不boealan资源为varchar和查询将给出结果“是”。为什么然后我有这样的错误?

<?php 
$host='mysql12.000webhost.com'; 
$uname='z'; 
$pwd='6'; 
$db="a6901827"; 


$con = mysqli_connect($host,$uname,$pwd) or die("connection failed"); 

if (mysqli_connect_errno($con)) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$username = $_POST['username']; 
$password = $_POST['password']; 
$result = mysqli_query($con,"SELECT res FROM samle where 
name='$username' and password='$password'"); 
$row = mysqli_fetch_array($result); 
$data = $row[0]; 

if($data){ 
echo $data; 
} 
mysqli_close($con); 
?> 

回答

1

您使用此代码打开sql注入。您的代码不起作用,因为您要发送GET请求,但要查找POST数据。

<?php 
$host='mysql12.000webhost.com'; 
$uname='****'; 
$pwd='*****'; 
$db="******";  
$con = mysqli_connect($host,$uname,$pwd) or die("connection failed"); 
if (mysqli_connect_errno($con)) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$username = mysqli_real_escape_string($con, $_GET['username']); 
$password = mysqli_real_escape_string($con, $_GET['password']); 
$result = mysqli_query($con,"SELECT res FROM samle where 
name='$username' and password='$password'"); 
$row = mysqli_fetch_array($result); 
$data = $row[0]; 

if($data){ 
echo $data; 
} 
mysqli_close($con); 
?> 

还..

  1. 你应该考虑使用在未来准备语句。
  2. 您不应以纯文本格式存储密码。
  3. 发帖时请务必删除凭证。
  4. 您也可以使用$_REQUEST,然后可以使用POST,GET或COOKIE。
+0

是的,我发誓我只是阅读关于后期的教程,并得到,我是新来的PHP,我用它与android @ chris85 – Moudiz

相关问题