gpt4 book ai didi

php - Ajax 要求用户多次提交信息才被接收和记录

转载 作者:行者123 更新时间:2023-11-28 03:47:35 26 4
gpt4 key购买 nike

我在提交数据时遇到了一点问题。我正在尝试使用 PHP 和 Ajax 制作一个简单的聊天框,但每当我尝试提交数据时,它只会在提交几次后发布。我希望有人能告诉我我的代码存在的问题。

我是一个非常新手的编码员,这是我第一次使用这个网站,所以如果它是一个明显的错误,请多多包涵 ^^"

主聊天框:

<code><head></code>
<code><link href="CSS.css" rel="stylesheet" type="text/css"></code>
<code><script type="text/javascript"></code>
function sendmessage()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}<p></p>

<p>var name=encodeURIComponent(document.getElementById("name").value);
var message=encodeURIComponent(document.getElementById("message").value);
xmlhttp.open("POST","insert.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("name="+name+"&message="+message);
}
<code></script></code>
<code></head></code>
<code><body></code>
<code><center></code>
<code><table width="600"></code>
<code><tr></code>
<code><td height="400"></code>
<code><center></code>
<code><iframe src ="output.php" width="580px" height="386px"></code>
<code><p>Your browser does not support iframes.</p></code>
<code></iframe></code>
<code></center></code>
<code></td></code>
<code></tr></code>
<code><tr></code>
<code><td></code>
<code><form method="POST"></br></code>
<code>&nbsp Name: &nbsp &nbsp &nbsp</code>
<code><input type="text" id="name" autocomplete="off" size="15"/><br/><br/></code>
<code>&nbsp Message: &nbsp</code>
<code><input type="text" id="message" autocomplete="off" size="70"/> &nbsp</code>
<code><input type="submit" value="Send" onclick="sendmessage()"/></code>
<code></form></code>
<code></td></code>
<code></tr></code>
<code></table></code>
<code></center></code>
<code></body></code></p>

读取输入数据并将其写入日志文件的 PHP 文件:


<code><?php</code>
<code>$name='<table><tr><td width="100%">'.$_POST['name']." Says:</td>";</code>
<code>$message="<table><tr><td>".$_POST['message']."</td></tr></table></br>\n";</code>
<code>$time="<td>".date("d/m/y-G:i")."</td></tr></table>";</code>
<code>$log = "log.file";</code>
<code>$write = fopen($log, 'a') or die("Can't open file");</code>
<code>fwrite($write, $name);</code>
<code>fwrite($write, $time);</code>
<code>fwrite($write, $message);</code>
<code>fclose($fh);</code>
?>

最佳答案

我刚刚抓取了您的代码并在我的计算机上对其进行了测试。做了一些小改动,但一切正常。我刚刚评论了

xmlhttp.execCommand('mceRemoveControl',false,'content');

然后在 FireFox 上一切正常。

下面你可以看到我运行的代码:

HTML:

<html>
<head>
<!--link href="CSS.css" rel="stylesheet" type="text/css"-->
<script type="text/javascript">
function sendmessage()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}


var name=encodeURIComponent(document.getElementById("name").value);
var message=encodeURIComponent(document.getElementById("message").value);
xmlhttp.open("POST","insert.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//xmlhttp.execCommand('mceRemoveControl',false,'content');
xmlhttp.send("name="+name+"&message="+message);
}
</script>
</head>
<body>
<center>
<table width="600">
<tr>
<td height="400">
<center>
<iframe src ="output.php" width="580px" height="386px">
<p>Your browser does not support iframes.</p>
</iframe>
</center>
</td>
</tr>
<tr>
<td>
<form method="POST"></br>
&nbsp Name: &nbsp &nbsp &nbsp
<input type="text" id="name" autocomplete="off" size="15"/><br/><br/>
&nbsp Message: &nbsp
<input type="text" id="message" autocomplete="off" size="70"/> &nbsp
<input type="submit" value="Send" onclick="sendmessage()"/>
</form>
</td>
</tr>
</table>
</center>
</body>
</html>

PHP:

<?php
try{
$name='<table><tr><td width="100%">'.$_POST['name']." Says:</td>";
$message="<table><tr><td>".$_POST['message']."</td></tr></table></br>\n";
$time="<td>".date("d/m/y-G:i")."</td></tr></table>";
$file = "output.php";
$write = fopen($file, 'a') or die("Can't open file");
fwrite($write, $name);
fwrite($write, $time);
fwrite($write, $message);
fclose($write);
}catch(Exception $err){
echo $err;
}
?>

我刚刚在 FireFox 3.6 Safari 5 和 Chrome 6 中试过。我使用的是 Mac,所以我没有在 IE 中试过。在这 3 个浏览器中,在我一开始告诉你的那一行之后一切正常。你能证明关于你的问题的更多细节吗?

关于php - Ajax 要求用户多次提交信息才被接收和记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3653985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com