<?php
include 'dbconnect.php';
//This is the directory where images will be saved
$target = "images/";
$target = $target . basename( $_FILES['photo']['name']);
$ok=1;
$name=$_POST['name'];
$champname=$_POST['champname'];
$cat=$_POST['category'];
$username=$_POST['username'];
$pic=($_FILES['photo']['name']);
if ($photo_size > 350000)
{
echo "Your file is too large.<br>";
$ok=0;
}
mysql_query("INSERT INTO `submissions` VALUES ('$fake','$name','$champname', '$cat', '$username', '$pic')") ;
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been succesfully uploaded to return click below.";
echo '<a href='';
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>
我. php 我的表单底部,触发上面的PHP:
Username: <input type="text" name = "username"><br>
Image: <input name="photo" type="file"><br>
<input type="submit" value="Add">
</form>
我上传的图片超过350kb,这并没有阻止他们上传。我还需要得到图像格式&在上传和检查重复时更改名称,但需要首先工作
你的代码有几个问题。
这是破坏你的代码echo '<a href='';
一个缺失的引号,它应该看起来像:
echo "<a href='page.php'>Click here</a>";
$photo_size
是一个杂散变量,现在已经赋值了,请往下读以了解更多细节。
您应该指定哪个列应该接收哪个VALUES,我更改了。
使用if ($photo_size > 350000)
来检查文件大小不是正确的方法。
使用:
$photo_size=$_FILES["photo"]["size"]; if ($photo_size > 350000){...}
我不确定你是如何使用这些$ok=0;
和$ok=1;
见代码中的注释。
您的数据库插入中缺少一些变量。
下面使用基于mysqli_*
的函数为我工作,我在一个文件中使用整个代码;你可以把它改成适合的
旁注:整个代码中都有注释供您阅读。
我为echo "Your file is too large.<br>";
添加了exit;
,否则代码将继续执行。
下面是完整的代码: (我测试了并在我的服务器上工作)
<?php
DEFINE ('DB_USER', 'xxx');
DEFINE ('DB_PASSWORD', 'xxx');
DEFINE ('DB_HOST', 'xxx');
DEFINE ('DB_NAME', 'xxx');
$mysqli = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
OR die("could not connect");
if(isset($_POST['submit'])){
//This is the directory where images will be saved
$target = "images/";
$target = $target . basename( $_FILES['photo']['name']);
$ok=1; // I don't know what you're using this for.
// modify to suit
$fake=mysqli_real_escape_string($mysqli,$_POST['fake']);
$name=mysqli_real_escape_string($mysqli,$_POST['name']);
$champname=mysqli_real_escape_string($mysqli,$_POST['champname']);
$cat=mysqli_real_escape_string($mysqli,$_POST['category']);
$username=mysqli_real_escape_string($mysqli,$_POST['username']);
$pic=($_FILES['photo']['name']);
$photo_size=$_FILES["photo"]["size"];
if ($photo_size > 350000)
{
echo "Your file is too large.<br>";
$ok=0; // I don't know what you're using this for.
echo "<a href='upload.php'>Click here to try again.</a>";
exit;
}
mysqli_query($mysqli,"INSERT INTO `submissions` (fake, name, champname, cat, username, pic) VALUES ('$fake','$name','$champname', '$cat', '$username', '$pic')");
if($mysqli != false) {
echo "success!";
} else {
echo "an error occured saving your data!";
}
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been succesfully uploaded to return click below.";
// I don't know what you want to do here, but it's not correct. There's a missing quote.
// echo '<a href='';
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
} // if(isset($_POST['submit'])){
?>
<form action="" method="post" enctype='multipart/form-data'>
Name: <input type="text" name = "name"><br>
Username: <input type="text" name = "username"><br>
Champ name: <input type="text" name = "champname"><br>
Category: <input type="text" name = "category"><br>
Fake: <input type="text" name = "fake"><br>
Image: <input name="photo" type="file"><br>
<input type="submit" value="Add" name="submit">
</form>
"我还需要获取图像格式&在上传和检查重复时更改名称,但首先需要此工作。"
你可以在这个问题之后打开一个新问题。我相信我的回答已经涵盖了你最初问题的主要问题。
您可能需要再次检查与wamp服务器捆绑的http.conf文件,检查您的上传限制