2011-12-17 56 views
0
每个表单创建不同的页面

如果我切换的形式,我想如果我使用每种形式不同的页面使用上的index.php

switch($_GET["action"]) { 
case "login": include "login.php";break; //loads login form 
case "register": include "register.php";break; //loads register form 
} 

交换形式,我需要在每个页面中包含页眉,页脚和其他内容。

进行登录,用户可以输入:

index.php?action="login" 

login.php 

哪一个更常见和实用?

+0

我更喜欢'如果(file_exists( “{$ _ GET [ '动作']} PHP。”))包括 “{$ _GET [ '动作']}的php。”;其他包括“如default.php”;' - 创建太多的安全代码 - 杂乱 – DaveRandom 2011-12-17 18:52:10

+2

@DaveRandom” ./{$_ GET- >名称 - > in_array( “行动”, “登录,登记”)} PHP“);'。 - 至于你的实际问题:这是一个偏好问题。调度程序脚本更常见,而且对内部实现的揭示较少。但是,网址重写也应该美化。 – 2011-12-17 18:53:27

+0

的,我只想'包括(用适当的消毒和检查的权限,当然... – mario 2011-12-17 18:58:55

回答

0

如果用前一种选择去,你需要考虑如果用户访问这些页面会发生什么,直接(例如login.php中):是指那些包含的文件通过浏览器访问?如果是的话,你可能会考虑把他们的Web目录之外并在自己的文件夹中。如果这是不可能的,你可以实现在login.php中/ register.php脚本一些检查:

if (__FILE__ === $_SERVER['SCRIPT_FILENAME']) { 
    // user visited script directly, rather than included 
} 

另一种选择是较常用的(尤其是如果您的所有文件坐在Web根目录),前提是包括页眉,页脚,配置脚本等所需的逻辑是保持简单,否则你将不得不改变它在多个位置。

摘要:我建议每个页面上添加页眉和页脚脚本简单include电话,除非你可以把包含文件的某处Web根目录之外。

0

这可能是最常见的做法有处理每种类型的表格后的一个单独的函数。这些你都可以在一个单一的PHP文件或多个文件存储,并在您的网页。没问题,但没有太多常见做法有选择地包含各种PHP脚本。

为了您的布局有各种各样的解决方案,可能每一个都有自己的优点和缺点,这取决于你的网站或应用程序,但它是很难说什么比从未最好等有重复的代码。