首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中,为什么提交时输入表单需要按2次?

问在php中,为什么提交时输入表单需要按2次?
EN

Stack Overflow用户
提问于 2014-11-23 08:02:03
回答 4查看 1.1K关注 0票数 0
代码语言:javascript
复制
    <?php
        if ($_POST['submit']) {
            mysql_connect ("localhost", "root", "swt") or die ('Error: ' . mysql_error());
            mysql_select_db("db") or die ('Data error:' . mysql_error());
            $text = mysql_real_escape_string($_POST['comments']); 
            $query="INSERT INTO greetings (msg) VALUES ('$text')";
            mysql_query($query) or die ('Error updating database' . mysql_error());
            $id= mysql_insert_id();
            $url = "preview.php?id=".$id;
        }
    ?>
<form method="post" action="<? echo $url ?>" enctype="multipart/form-data" >
    <textarea name="comments" placeholder="please input your message"></textarea>
    <input name="submit" type="submit" value="submit" />
</form>

你好,对不起,我是PHP新手。我想问,为什么当我提交时,必须按2次才能进入preview.php

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-23 08:08:31

第一次$url是空的,所以浏览器请求相同的页面,然后更改$url,然后注入表单,以便下一篇文章将重定向到您的preview.php文件。

刚发送标头进行重定向。

header("Location: /preview.php?id=".$id);

因此,将是:

代码语言:javascript
复制
  <?php
        if ($_POST['submit']) {
            mysql_connect ("localhost", "root", "swt") or die ('Error: ' . mysql_error());
            mysql_select_db("db") or die ('Data error:' . mysql_error());
            $text = mysql_real_escape_string($_POST['comments']); 
            $query="INSERT INTO greetings (msg) VALUES ('$text')";
            mysql_query($query) or die ('Error updating database' . mysql_error());
            $id= mysql_insert_id();
            $url = "preview.php?id=".$id;
            header("Location: $url");
        }
    ?>
<form method="post" enctype="multipart/form-data" >
    <textarea name="comments" placeholder="please input your message"></textarea>
    <input name="submit" type="submit" value="submit" />
</form>

当您想要将请求发送到同一个页面时,不要使用操作。

(我假设代码段中的php部分是同一个文件)

另外,要发送重定向,您需要在发送报头之前不要有html输出。

票数 0
EN

Stack Overflow用户

发布于 2014-11-23 08:07:54

首先将<?更改为<?php,如..。

代码语言:javascript
复制
<form method="post" action="<?php echo $url ?>" enctype="multipart/form-data" >
<textarea name="comments" placeholder="please input your message"></textarea>
<input name="submit" type="submit" value="submit" />

​

我喜欢这样..。

第二,打开火虫,单击按钮,看看您是什么错误,getting..There可能会在页面中出现一些错误,或者在第一次单击时检查您的请求是否启动。还检查$url是否为空,在第一次单击..。

票数 0
EN

Stack Overflow用户

发布于 2014-11-23 08:14:48

改变<?= $url?> to <?php echo $ url;?>.

您的服务器没有启用short_open_tags。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27086825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档