繁体   English   中英

PHP使用文本文件响应为空

[英]Php respond null with text file

Hy这是我在altervista上的数据库:

db表图片

我想获取“个人资料”字段的值; 该字段包含一些文本文件。 这是与我的数据库进行交互的php脚本:

<?php
require 'db.php';
$mysqli = new mysqli("localhost", $username, $password, $database);

if (mysqli_connect_errno()) {
    echo "Errore in connessione al DBMS: ".mysqli_connect_error();
    exit();
}
$username=$_POST['username'];
$password=$_POST['password'];
//$myusername='marco';
//$mypassword='marco';
$myusername=mysql_real_escape_string($username);
$mypassword=mysql_real_escape_string($password);

//$mypassword=md5($password);
$query = "SELECT userid, username , password , profilo FROM `utente` WHERE username='$myusername' AND password='$mypassword' LIMIT 1";
$result = $mysqli->query($query);
if($result->num_rows >0)
{
    while($row = $result->fetch_array(MYSQLI_ASSOC))
        $rows[]=$row;
}
header("Content-type: text/json");
echo json_encode($rows);
$result->close();
$mysqli->close();
?> 

但是,在某些情况下,我可以获得profilo的价值。 在其他情况下,即使字段不为空,php响应也为null,如下所示:

[{"userid":"1000002","username":"","password":"","profilo":null}]. 

我该如何解决?

如果您查看表,则user_id 1000002的用户名和密码为空值。 您所查询的只是用户名和密码,因此不会出现。 无法通过查询原样识别它们。

重要说明 :您正在mysqli_mysql_函数之间mysqli_ mysql_ 由于不推荐使用mysql_ (由于它不安全),因此您应该使用mysqli_做所有事情,因此您实际上应该使用mysqli_real_escape_string或更好, mysqli prepare语句Prepared PDO语句

更重要的是,尤其是因为您的代码不安全 :请勿将密码以纯文本格式存储在数据库中。 研究散列和加密。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM