您好我的uploadform页面在上传后没有重定向到thank-you.php页面。一切都很完美,我不想改变代码,只是标题并没有指示paege去感谢你.php。
以下是发布数据的代码。
<?php
$target = "Carpics";
//$target = $target . basename( $_FILES['photo']['name']);
ini_set('display_errors',1);
error_reporting(0);
$conn = mysql_connect("localhost","admin","");
if(!$conn)
{
echo mysql_error();
}
$db = mysql_select_db("upload",$conn);
if($db)
{ echo mysql_error();
}
$name = $_POST['name'];
$address = $_POST['address'];
$from_date = $_POST['from_date'];
$to_date = $_POST['to_date'];
$full_name = $_POST['full_name'];
$email = $_POST['email'];
$city = $_POST['city'];
$tel = $_POST['tel'];
$town = $_POST['town'];
$country = $_POST['country'];
$model = $_POST['model'];
$displacement = $_POST['displacement'];
$trans = $_POST['trans'];
$driver = $_POST['driver'];
$photopath1 = $target . basename( $_FILES['photo1']['name']);
$photopath2 = $target . basename( $_FILES['photo2']['name']);
$photopath3 = $target . basename( $_FILES['photo3']['name']);
$photopath4 = $target . basename( $_FILES['photo4']['name']);
for($i=1;$i<5;$i++){
if($i==1){
$target = $photopath1;
}elseif($i==2){
$target = $photopath2;
}elseif($i==3){
$target = $photopath3;
}elseif($i==4){
$target = $photopath4;
}
$photo = addslashes(file_get_contents($_FILES['photo'.$i]['tmp_name']));
$image = getimagesize($_FILES['photo'.$i]['tmp_name']);
$imgtype = $image['mime'];
if(move_uploaded_file($_FILES['photo'.$i]['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['photo'.$i]['name']);
}
else {
echo "Sorry, there was a problem uploading your file.";
}
}
if(!$insert = mysql_query("INSERT INTO data VALUES('','$name','$address','$from_date','$to_date','$full_name','$email','$city','$tel','$town','$country','$model','$displacement','$trans','$driver','$photo', '$photopath1', '$photopath2', '$photopath3', '$photopath4','$imgtype')"));
echo header('Location: thank-you.php');
?>
它显示了这一点 文件img5.jpg文件img7.jpg文件庞蒂亚克运动车.jpg文件volkswagen-polo.jpg
请帮助
答案 0 :(得分:0)
我在查看您的样本时注意到以下内容。
if(move_uploaded_file($_FILES['photo'.$i]['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['photo'.$i]['name']);
}
else {
echo "Sorry, there was a problem uploading your file.";
}
在您尝试执行重定向之前会发生这种情况,Php.net声明了以下内容:
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include或require,函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。
这可能是一个可能的原因,除了你也以错误的方式使用头函数。你不必在它面前放回声。 而不是
echo header('Location:thank-you.php');
使用
标题('位置:thank-you.php');
这是打印文件名但不执行重定向的原因。在重定向之前的任何输出,它无法完成。据我所知,如果你把错误处理放在8191,你应该能够查看它。 (E_ALL)
此外,您不会转义文件名,用户名等中的任何内容,这会使用户有空间使用时髦字符或SQL注入来破坏您的数据库。
看一下mysql_real_escape_string和最后一个注释。此函数不会转义某些通配符,因此您可能需要在准备好时检查它。 阅读:Sanitizing user input