【发布时间】:2016-05-19 15:56:05
【问题描述】:
我在 php 方面不是那么好,但是在我更改主机名之前,下面的代码可以正常工作。当我加载 url 时没有显示回声,也没有执行插入。
$con = mysqli_connect($host,$uname,$pwd,$db);
echo 'hi'
$description= $_GET['description'];
$categorie= $_GET['categorie'];
$image=$_POST['image'];
$imagename = uniqid("uploaded_images").".png";
$imageurl="http://justedhak.com/".$imagename;
$binary=base64_decode($image);
header('Content-Type: bitmap; charset=utf-8');
$file = fopen($imagename, 'wb');
fwrite($file, $binary);
fclose($file);
$sql="INSERT INTO OBJECTS( NAME, TYOE, URL, CATEGORY, USERS_ID, HIDE_YN )
VALUES ('$imagename', 'IMAGE', '$imageurl', 'CATEG' , 1, 'N')";
if(mysqli_query($con,$sql)){
echo $sql
}
else{
echo 'failure';
}
mysqli_close($con);
错误
警告:mysqli_connect(): (28000/1045): 拒绝用户访问 'je_user'@'ip-160-153-162-16.ip.secureserver.net'(使用密码: 是)在第 7 行的 /home/justdb/public_html/upload_image.php 中
注意:未定义的索引:描述在 /home/justdb/public_html/upload_image.php 在第 9 行
注意:未定义的索引:类别在 /home/justdb/public_html/upload_image.php 在第 10 行
注意:未定义索引:图像在 /home/justdb/public_html/upload_image.php 在第 11 行
警告:无法修改标头信息 - 标头已由 (输出开始于 /home/justdb/public_html/upload_image.php:6) /home/justdb/public_html/upload_image.php 第 16 行
警告:mysqli_query() 期望参数 1 为 mysqli,布尔值 在第 24 行的 /home/justdb/public_html/upload_image.php 中给出
警告:mysqli_close() 期望参数 1 为 mysqli,布尔值 在第 30 行的 /home/justdb/public_html/upload_image.php 中给出
【问题讨论】:
-
哪个主机名?链接图像的那个?还是 mysql 的
$host?如果是$host请您发布定义 $host 的代码并提供有关您的服务器设置的信息。即 Web 服务器和 mysql 服务器是否托管在本地计算机上?在某处服务器上的云中?您是否尝试过更改您更改的内容,然后从那里调查问题? -
您容易受到sql injection attacks 的攻击。如果没有显示回显,则可能未启用/安装 mysqli,并且您已关闭 error_reporting/display_errors。
-
这听起来是一个让您熟悉一些调试实践的好机会。打开错误报告,检查 SQL 查询是否有错误,检查 PHP 和服务器日志,甚至在整个代码中放入一些 echo 语句以查看执行时发生了什么。
-
@AdamCopley godaddy 托管,
$host是什么意思我没有为此定义任何东西,我猜服务器设置是用 go daddy 自动设置的 -
@NanaPartykar 很好的捕捉和 sql 错误检查将捕捉到这种情况;未知列 blah blah blah ;-)
标签: php