我在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。