Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML/php论坛图片上传有问题吗_Php_Html_Forms - Fatal编程技术网

HTML/php论坛图片上传有问题吗

HTML/php论坛图片上传有问题吗,php,html,forms,Php,Html,Forms,前言: 我想声明,我没有PHP方面的经验。我一直在使用常识对PHP文件进行编辑 问题: 我最近开始在一个新网站上工作,我正在100%从头开始编写这个网站。但是我想添加一个图片提交论坛,所以我在网上浏览了一下,通过访问多个不同的网站,我能够得到以下php代码,我已经测试过,并且可以正常工作[此php代码位于LevelBRSubmit.php文件中]: 当我添加图像上传按钮时,它全部停止工作,我已经假设会发生这种情况: <div class="textBox"> <p>Req

前言:

我想声明,我没有PHP方面的经验。我一直在使用常识对PHP文件进行编辑

问题:

我最近开始在一个新网站上工作,我正在100%从头开始编写这个网站。但是我想添加一个图片提交论坛,所以我在网上浏览了一下,通过访问多个不同的网站,我能够得到以下php代码,我已经测试过,并且可以正常工作[此php代码位于LevelBRSubmit.php文件中]:

当我添加图像上传按钮时,它全部停止工作,我已经假设会发生这种情况:

<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'];