PHP页面和HTML表单提交看起来很乱,如何避免提交给SELF?

时间:2010-10-16 14:02:08

标签: php javascript mysql html security

我有一个分类广告网站,用户可以选择更改/删除他们的分类广告。

我正在开发一个“edit.php”页面,可以完成所有这些工作。

当您点击“编辑/删除已分类”时,它基本上就是这样设置的:

出现一个带有表单的新页面,用户可以通过无线电从“REMOVE”和“CHANGE”中进行选择。用户必须输入连接到分类的密码。然后他们点击提交。

表单已提交给自己,并检查选择了哪个收音机,并检查密码是否正确。

如果密码错误,则会再次显示相同的页面,但会显示“密码错误”的消息。

如果密码正确,那么根据用户是否要“删除”或“更改”分类,我想要一个全新的页面打开。

我的问题是,是否有可能通过php打开基于广播选择的新页面安全?

否则我必须在HTML中放入这么多的if / else语句,并用不同的动作显示不同的形式,这样会很混乱。

所以在PHP中我想这样做:

<?php
  if($password==$row['pass']){
    if($action == "remove"){ Open new page and DO remove }
    else if ($action == "change"){ Open new page and change the classified }
  }
?>

我使用session来存储变量。

是否可以并且安全地打开新页面并仅删除已分类的例子?或者有多个表单并根据php表单选择和密码错误显示它们会更安全吗?

很难解释,但我想简单地在HTML中避免使用if / else。否则它会是这样的:

 <body>
   <?php if($pass_wrong==1): ?>
     FORM COMES HERE, AND STATES PASSWORD WAS WRONG
   <?php endif; ?>

   <?php if($action=='remove' && $pass_wrong==0): ?>
     CLASSIFIED SUCCESSFULLY REMOVED
   <?php endif; ?>

   <?php if($action=='change' && $pass_wrong==0): ?>
     Show a huuuuuge form to change the classified
   <?php endif; ?>

   ETC ETC

2 个答案:

答案 0 :(得分:0)

听起来您只需知道如何进行HTTP重定向:http://php.net/manual/en/function.header.php

答案 1 :(得分:0)

管理代码所在位置的一种方法是让每个表单都有一个隐藏字段来描述表单的作用。然后你可以检查提交的表单,并包含另一个php文件来处理它。这种事情:

<?php

    switch ($_POST['action']) {

        case "remove":
                include ("remove.php");
        break;

        case "change":
                include ("change.php");
        break;

        case "edit":
                include ("update.php");
        break;

        default:
                include ("edit.php");
        break;
    }
?>

通过这种方式,您应该能够将代码彼此分开。您包含的这些其他php文件可能只包含一个表单或只包含处理表单的代码。无论哪种方式,以这种方式维护代码要容易得多。有许多组织代码的模式,这只是其中之一。