<?php //filename signup.php
ob_start();
include('dat.php');
if (!empty($_POST)){
if ($pass!="d41d8cd98f00b204e9800998ecf8427e" OR $user!="") { // 1
$result=mysql_query($sql);
if(mysql_error()) {
die('Sorry, this username already exists'); // 2
}
} else {
echo "Please enter the Password";
}
}
ob_end_flush();
?>
<html>
<body>
<form name="form1" method="post" action="signup.php"> <!--3-->
Username<input name="myusername" type="text" id="myusername" />
Password<input name="mypassword" type="text" id="mypassword" />
e-mail<input name="email" type="text" id="email" />
<input type="submit" name="Submit" value="Login" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是一个注册页面(这里缺少所有的mysql细节,它们都包含在dat.php中).如果出现ny错误,则会显示在同一页面中.
问题1:[// 1] OR的运算符是什么,在这种情况下,如果传递或用户为空,我已经使用了条件,但OR不能正常工作|| ,在javascript中使用.
问题2:[// 2]如果使用die,则语句将在新窗口中打印,但我希望它出现在同一个窗口中...我也使用echo,它有效但我觉得我失踪了使用'echo'来'die'的主要功能.
问题3:[ <!--3-->]如何将signup.php替换为SERVER_PAGE或其他类似的动作...
OR是一样的||,只是OR具有较低的优先级比||.当与其他运算符一起使用时,这会导致逻辑错误,这些运算符的优先级高于优先级,OR但优先级低于||赋值运算符:
$var = false OR true; // ($var = false) OR true;
var_dump($var); // bool(false)
$var = false || true; // $var = (false || true);
var_dump($var); // bool(true)
Run Code Online (Sandbox Code Playgroud)
所以我建议你宁愿使用||比OR.
die确实打印传递的字符串并退出当前脚本的执行.就个人而言,我不会使用use die但实现更好的错误处理,例如将错误消息存储在变量中并将其打印在文档中,如下所示:
$errors = array();
if (!empty($_POST)) {
if ($pass!="d41d8cd98f00b204e9800998ecf8427e" || $user!="") {
$result=mysql_query($sql);
if (mysql_error()) {
$errors[] = 'Sorry, this username already exists';
}
} else {
$errors[] = "Please enter the Password";
}
}
if (!empty($errors)) {
echo 'There were some errors:';
echo '<ul><li>', implode('</li><li>', $errors), '</li></ul>';
}
Run Code Online (Sandbox Code Playgroud)如果您为该action属性使用空URL ,则它引用的是相同的URL:
<form name="form1" method="post" action="">
Run Code Online (Sandbox Code Playgroud)一些进一步的提示
$_SERVER['REQUEST_METHOD'] === 'POST'测试请求的方法,而不是测试!empty($_POST).$_POST['pass'],$pass如果要引用POST传递的参数传递,请使用而不是.| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |