2

我在 HTML 中创建了一个表单,在 PHP 中创建了一个处理脚本。当我点击发送按钮时,什么也没有发生。

我的 HTML 表单:

            <form method="post" action="../core/code/php/notes.php" id="sendNote">
            <input type="hidden" name="sender" value="user">
            <ol>
            <li><label for="sendto">Send to:</label></li>
            <li>
                <select name="sendto">
                    <option value="admin">admin</option>
                    <option value="bnguyen654">bnguyen654</option>
               </select>  
            </li>
            <li><label for="message">Message:</label></li>
            <li><textarea name="message" style="font-family:'Charter BT';"></textarea></li>
            <li><input type="button" value="Send" name="send"></li>
            </ol>             
            </form>

我的 PHP 代码:

<?php 
$to = $_REQUEST['sendto']; 
$from = $_REQUEST['sender'] ; 
$message = $_REQUEST['message'];

if($message == '') {echo '<script type="text/javascript"> alert("You have not entered a message, please go back and try again"); history.go(-1)</script>';} 
else { 
$file = "../../../Admin/%to/notes.txt";
$fh = fopen($myFile, 'a') or die("Can't find file");
$stringData = "%message ~%from";
$send = fwrite($fh, $stringData);
fclose($fh); 

if($send)
    {echo '<script type="text/javascript"> alert("Message sent successfully"); window.location={"../../../Admin"};</script>';} 
else {
{echo "We encountered an error sending your message, please try again."; } 
}
}

?>

发送按钮什么也不做。没有成功消息或错误。这真是令人沮丧。我确实倾向于忽略这样认为的事情......

  • 这是在服务器上
  • 链接是正确的

  • 我知道要经历很多事情

  • 任何帮助,将不胜感激

谢谢,~BN

4

2 回答 2

3

我可以看到两个错误:

<input type="hidden" name="sender" value="login">
                                         ^ Needs quotes around the value

<input type="submit" value="Send" name="send">
              ^ Change this to Submit from send.

在 HTML 中,没有“发送”类型的表单输入,submit但是该类型在按下时提交表单。

编辑(根据下面的评论):

如果您没有进入回显某些 javascript 的脚本部分,那是因为您没有写入文件。我检查了 echo 语句,它运行良好。这意味着您无法写入文件 -fwrite()如果尚未写入文件,则返回 false。此外,如果它无法正确打开它 - 即fopen()失败,那么它也会返回 false。

再看看你的代码,你命名你想要更新的文件,然后在命令中$file引用它。$myFilefopen()

$file = "../../../Admin/%to/notes.txt";
$fh = fopen($myFile, 'a') or die("Can't find file");

您可能应该使用相同的变量是吗?

$myFile = "../../../Admin/%to/notes.txt";
$fh = fopen($myFile, 'a') or die("Can't find file");

编辑2:要在之后测试连接,fopen()您可以执行以下操作:

$fh = fopen($myFile, 'a') or die("Can't find file");
if($fh)
{ echo "Connection to file is okay";}
else { echo "File couldn't be opened it seems.";}

这基本上与您$send在发布代码的末尾对变量所做的事情相同。

于 2013-09-09T01:12:32.120 回答
1

您的输入类型错误。按钮输入类型用于可以附加 javascript 的无操作按钮。提交类型用于提交表单。

于 2013-09-09T01:14:06.990 回答