【问题标题】:redirect a page after button click and database update按钮单击和数据库更新后重定向页面
【发布时间】:2011-04-15 17:30:36
【问题描述】:

我试图在单击按钮后和数据库更新后重定向页面,但它似乎不起作用。

我有一个自己完成的表格,以减少使用的页面数量(例如,不,感谢内容已被编辑“页面)但在内容被编辑后我希望重定向回家。

表单和数据库更新:

    <div id = "errormsg">&nbsp;</div>
    <?php 

    echo "<table border=\"0\" align=\"center\" cellpadding=\"2\" cellspacing=\"7\" style=\"font-family:Arial;font-size:11px\">";
    echo "<tr>";
        echo "<td>&nbsp;</td>";
echo "<td>&nbsp;</td>";
echo "</tr>";
echo "<tr>";
        echo "<td><form name=\"confhome\" method=\"post\" action=\"\" onsubmit=\"return valText()\"><textarea name=\"tag\" cols=\"20\" rows=\"3\" id=\"tag\">$row[tagbrief]</textarea></td></tr>";
        echo "<tr><td><input type=\"submit\" value=\"Edit\"></form></td></tr>";
        echo "<tr></tr>";
        echo "</table><br/>";


    $tagbrief = $_POST['tag'];
    mysql_query("UPDATE quackedup SET tagbrief='$tagbrief' WHERE id='1'");
    ?>

对 ref 的 JS 验证

<script type="text/javascript">
function valText(){

    var text = document.getElementById('tag');
    var div = document.getElementById('errormsg');

    var lets = /^[0-9a-zA-Z\s\-\'(\)\&\,\:\.\!\?]+$/;

    if((text.value == '') || (text.value == ' ')){
        div.innerHTML="<b>Please enter your changes</b>";
        text.focus();
        return false;}
    else if(text.value.match(lets)){
        div.innerHTML="<b>Content updated</b>";
        return true;}
else {
    return false;}

}

任何帮助表示赞赏,谢谢。

【问题讨论】:

  • 当心那里的 SQL 注入攻击 - 您正在使用来自 POST 的值而不对其进行清理。
  • 是的,谢谢 :) 我计划在一切正常后对其进行消毒 :)

标签: php mysql redirect


【解决方案1】:

我不确定我是否完全遵循,但我会重新调整它,所以它是这样的:

<?
    if($_POST)
    {
        $tagbrief = mysql_real_escape_string($_POST['tag']);
        mysql_query("UPDATE quackedup SET tagbrief='$tagbrief' WHERE id='1'");

        header("Location: /path/to/script");
        exit;
    }
?>

<div id = "errormsg">&nbsp;</div>
<?php 

echo "<table border=\"0\" align=\"center\" cellpadding=\"2\" cellspacing=\"7\" style=\"font-family:Arial;font-size:11px\">";
echo "<tr>";
    echo "<td>&nbsp;</td>";
echo "<td>&nbsp;</td>";
echo "</tr>";
echo "<tr>";
    echo "<td><form name=\"confhome\" method=\"post\" action=\"\" onsubmit=\"return valText()\"><textarea name=\"tag\" cols=\"20\" rows=\"3\" id=\"tag\">$row[tagbrief]</textarea></td></tr>";
    echo "<tr><td><input type=\"submit\" value=\"Edit\"></form></td></tr>";
    echo "<tr></tr>";
    echo "</table><br/>";
?>

现在,它仅在您实际发布表单时更新字段,并且为数据库转义表单内容(以防止 SQL 注入)。只需将 /path/to/script 更改为您要访问的路径/url。

【讨论】:

  • 太好了!工作一种享受。我必须更改的唯一一点是将标头位置更改为元刷新,因为标头已经发送。生病通读它希望自己从中学习。非常感谢!
【解决方案2】:

我想你只需要写 header("Location:/"); 希望对你有帮助

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多