HTML/php论坛图片上传有问题吗
前言: 我想声明,我没有PHP方面的经验。我一直在使用常识对PHP文件进行编辑 问题: 我最近开始在一个新网站上工作,我正在100%从头开始编写这个网站。但是我想添加一个图片提交论坛,所以我在网上浏览了一下,通过访问多个不同的网站,我能够得到以下php代码,我已经测试过,并且可以正常工作[此php代码位于LevelBRSubmit.php文件中]: 当我添加图像上传按钮时,它全部停止工作,我已经假设会发生这种情况:HTML/php论坛图片上传有问题吗,php,html,forms,Php,Html,Forms,前言: 我想声明,我没有PHP方面的经验。我一直在使用常识对PHP文件进行编辑 问题: 我最近开始在一个新网站上工作,我正在100%从头开始编写这个网站。但是我想添加一个图片提交论坛,所以我在网上浏览了一下,通过访问多个不同的网站,我能够得到以下php代码,我已经测试过,并且可以正常工作[此php代码位于LevelBRSubmit.php文件中]: 当我添加图像上传按钮时,它全部停止工作,我已经假设会发生这种情况: <div class="textBox"> <p>Req
<div class="textBox">
<p>Required fields are <b>bold</b></p>
<form action="LevelBRSubmit.php" method="POST" enctype="multipart/form-data">
<p><b>Your Username:</b> <input type="text" name="yourname" /><br />
<b>E-mail:</b> <input type="text" name="email" /><br />
<b>Your Level Design:</b><input type="file" value="Upload Image" name="pic" accept="image/*"><br />
<p><b>Your comments:</b><br />
<textarea name="comments" rows="10" cols="40"></textarea></p>
<p><input type="submit" value="Send it!"></p>
</div>
PHP:
未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将呈现乱码文本。页面的字符编码必须在文档或传输协议中声明
更新
PHP发送了电子邮件!但电子邮件只显示图像名称,而不是显示图像
如果有人想查看页面本身,您可以在下面的网站链接中找到,该网站仍处于开发的早期阶段:
您必须在表单标记中使用enctype=multipart/form data,并且要在php文件中接收文件,您必须使用$\u FILES['pic']来获取文件数据
<form action="LevelBRSubmit.php" method="post">
对此
$pic = $_FILES['pic']['name'];
新行给出了图像文件的名称。您可以使用图像文件的$_FILES['pic']查找所有数据。仔细检查,表单中缺少某些内容。是否关闭表单也不知道。请相信我,启用错误报告,您将看到一些错误。若要上载文件,请使用常规表单提交,将表单属性enctype设置为multipart/form-data@RamRaider这不是唯一的问题,仔细看看。好啊我出去了。好了,第一条错误信息不见了,现在我只有:。。。。。。。。。未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将呈现乱码文本。页面的字符编码必须在文档或传输协议中声明。我是否只需要向php文件中添加一个字符编码?如果要在邮件中发送图像文件,则必须使用消息变量中的标记添加标题和图像文件。设置此headers$headers=MIME版本:1.0\r\n$headers.=内容类型:text/html;字符集=UTF-8\r\n$标题。='发件人:'\r\n;邮件$to、$subject、$message、$headers;水平设计:。。此上载的文件必须在您的网站中才能通过邮件访问。若文件路径不正确,则不会在邮件中显示。
<?php
/* Set e-mail recipient */
$myemail = "example@email.com";
/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your Username");
$email = check_input($_POST['email'] "Provide your Email");
$pic = $_FILES['pic']['name'];
$comments = check_input($_POST['comments'], "Write your comments");
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address not valid");
}
/* Let's prepare the message for the e-mail */
$message = "Hello!
Your contact form has been submitted by:
Username: $yourname
E-mail: $email
Level Description:
$comments
Level Design: $pic
End of message
";
/* Send the message using mail() function */
mail($myemail, 'New Level Submition!', $message);
/* Redirect visitor to the thank you page */
header('Location: http://projectskyforums.x10.mx/');
exit();
/* Functions we used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<b>Please correct the following error:</b><br />
<?php echo $myError; ?>
<input type="button" value="Back To Forum" >
</body>
</html>
<?php
exit();
}
?>
<form action="LevelBRSubmit.php" method="post">
<form action="LevelBRSubmit.php" method="post" enctype="multipart/form-data">
$pic = check_input($_POST['pic'] "Provide your Design");
$pic = $_FILES['pic']['name'];