PHP mysqli_query 不执行 回声也显示在 URL 中


php mysqli_query not executin either echo is showing in url

我在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 中给出

前言:

已经确定您已经为echo 'hi'echo $sql添加了缺少的分号,因此我无需重复。

看到所有这些未定义的索引通知,这可能意味着您的表单方法可能与 GET/POST 数组使用的方法不同,这是您未包含在原始问题中的内容;这些可能是可能的原因。

或者,您在同一个文件中同时使用 HTML 和 PHP,在这种情况下,您的 HTML 表单可能位于 PHP 之上,反过来抛出发送通知的标头,并且您需要对 GET/POST 数组使用 isset()empty()

标头之前不应有任何输出,这也可能是由cookie,<?php开始标记之前的空格或文件的编码引起的;也可能是字节顺序标记。

以下是一些与您遇到的问题直接相关的链接。

    PHP:"注意:未定义的变量","注意:未定义的
  • 索引"和"注意:未定义的偏移量">
  • 如何修复PHP中的"标头已发送"错误
  • https://en.wikipedia.org/wiki/Byte_order_mark

另外,已经注意到您的代码对SQL注入是开放的。

引用:

  • 如何防止 PHP 中的 SQL 注入?
  • mysqli_*准备好的陈述
  • 带有预准备语句PDO