【问题标题】:Submit button not performing correct PHP functions提交按钮未执行正确的 PHP 功能
【发布时间】:2013-07-27 18:00:38
【问题描述】:

所以我很难找出为什么我的提交按钮恰好没有执行我给它的一组 PHP 函数。我想使用 PDO 将信息存储在我的 MySQL 服务器中。但是,我还想生成文章将具有的文章 URL。我通过使用我拥有的文章文件夹的 URL 并添加标题来做到这一点......之后我使用一个函数来删除空格并添加 _ 代替。这样它是一个有效的 URL。 但是,当我按下提交按钮时,什么也没有发生。它只是在完全相同的页面上刷新,我的数据库中没有任何内容。这是为什么呢?

这是我的以下按钮的 PHP 代码:

// BLOG POST UPLOAD
    else if (isset($_POST['addpost'])){

    $posttitle = $_POST['title'];
    $postcontent = $_POST['text'];

    $posturl = "http://www.myurlgoeshere.com/drottningborg/artikler/" . $postitle;
    $posturl = str_replace(' ', '_', $posturl);

    $blogquery = $db->prepare("INSERT INTO posts (title, post, url) VALUES (:posttitle,:postcontent,:posturl)");

    $blogquery->bindParam(':posttitle', $posttitle, PDO::PARAM_STR, 50);
    $blogquery->bindParam(':postcontent', $postcontent, PDO::PARAM_STR, 4000);
    $blogquery->bindParam(':posturl', $posturl, PDO::PARAM_STR, 200);
    $blogquery->execute();

    header("Location: URL GOES HERE");
    }

我的表单如下所示:

<div id="newpost">
<form>
Tittel:
<br />
<input type="text" name="title" class="posttitle" value="Skriv tittel her...">
<br />
Tekst:
<br />
<textarea name="text" class="posttext">Skriv artikkel her...</textarea>
<br />
<input type="submit" name="addpost" value="Lag artikkel">
</form>
</div>

【问题讨论】:

  • &lt;form action="function.php" method="POST"&gt;

标签: php html mysql pdo


【解决方案1】:

将动作和方法放在表单上

<form action="where_do_you_want" method="post">

更新:

你的名字也写错了:

$posttitle = $_POST['title'];

这里你需要改变:

$posturl = "http://www.myurlgoeshere.com/drottningborg/artikler/" . $postitle; // change with $posttitle

【讨论】:

  • 当然.. 谢谢!时间过去后会接受答案:)
  • 我的 URL 没有正确生成,我是否正确加入了它们?
  • @FriedBitz 如果您想在同一页面上提交,也可以使用action=""。如果您的所有代码都在同一个页面中,这种方式会更好。
  • @ErmanBelegu 如果一切都在同一页面上,如果不是外部调用,OP 也可以使用&lt;form action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;"。正如我在您的评论上面所说的,action="" 做同样的事情,但是使用&lt;form action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;" 可能会更好,因为它可以避免代码注入。
  • @ErmanBelegu 我建议您不要将答案写为“评论”$postitle; // change with $posttitle,而是发布“之前和之后”的方法。 IE。 “这就是你所拥有的,这是你应该拥有的”,诸如此类的事情。模棱两可。
【解决方案2】:
<form method="post">

试试这个,我认为应该有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 2021-05-04
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    相关资源
    最近更新 更多