self.resty.GET(self.server, route: str, onCompletion: {json in
let result = json.asArray
for var i = 0; i < result!.count; i++ {
if !self.isIDAlreadyInDB(json[i]["id"].asInt!) {
let newEv = NSEntityDescription.insertNewObjectForEntityForName("EVENTS", inManagedObjectContext: self.context!) as! EVENTS
newEv.headline = json[i]["headline"].asString!
newEv.id = json[i]["id"].asInt!
newEv.content = json[i]["content"].asString!
newEv.ofPublisher = publisher
do {
try self.context!.save()
} catch _ {
}
print("New Event from \(publisher.name): \(newEv.headline)")
}
}
})
问题在于,当我运行此代码时,默认情况下,当我在xampp服务器上打开此页面<?php
if( isset($_POST['pass']) && !empty($_POST['pass']) )
{
$pass = $_POST['pass'];
echo 'ok';
} else {
echo 'Enter Password';
}
?>
<form action="md.php" method="POST">
Password: <input type="password" name="pass"><br><br>
<input type="submit" value="Submit">
</form>
时,我看到密码字段上方显示的消息Enter Password
以某种方式执行了其他条件block应该在用户提交空表单时执行,而不是在我打开服务器上的页面时执行。
答案 0 :(得分:3)
首次运行此表单时,通过在浏览器地址栏中输入点击其他页面上的链接或菜单项的URL,$_POST
数组将为空。
因此,您的代码将导致else
被运行并且echo 'Enter Password';
将被执行
当您按下“提交”按钮时,假设您输入了密码,那么$ _POST将存在且$_POST['pass']
将包含一个值,您应该会看到ok
消息。如果您未在pass
密码字段中输入任何内容,您当然会再次看到echo 'Enter Password';
如果您只想在忘记输入密码时看到该消息,但是按下了Submot按钮,这是我假设您正在说的话,请尝试此更改
<?php
if ( $_SERVER["REQUEST_METHOD"] == 'POST' ) {
// only set when the form was actually posted
// not set when you run form from a link or the address bar
if( !empty($_POST['pass']) ) {
$pass = $_POST['pass'];
echo 'ok';
} else {
// pressed submit without entering a password
echo 'Enter Password';
}
}
?>
<form action="md.php" method="POST">
Password: <input type="password" name="pass"><br><br>
<input type="submit" value="Submit">
</form>
答案 1 :(得分:0)
将else
更改为:
} else if (isset($_POST["pass"]) && empty($_POST["pass"])) {
您的代码应该有3条路径:
现在你只有2条路径。
答案 2 :(得分:0)
第一次打开页面时,它会为您提供else
阻止,因为if statement
为false。因此,请按照下面的说明修改else-if statement
,此外,请离开action = ""
当您按下submit
按钮时,它不会将您引导至其他页面。试试这个:
<?php
if( isset($_POST['pass']) && !empty($_POST['pass']) )
{
$pass = $_POST['pass'];
echo 'ok';
} else if( isset($_POST['pass']) && empty($_POST['pass']) ) {
echo 'Enter Password';
}
?>
<form action="" method="POST">
Password: <input type="password" name="pass"><br><br>
<input type="submit" value="Submit">
</form>
上面的代码应该显示表单,第一次打开表单时,以及随后输入/离开password
字段时。
答案 3 :(得分:0)
尝试将您的PHP代码更改为:
<?php
if( isset($_POST['submit'])
{
if( isset($_POST['pass']) && !empty($_POST['pass']) )
{
$pass = $_POST['pass'];
echo 'ok';
} else {
echo 'Enter Password';
}
}
?>
这样,代码只会在您单击“提交”按钮后运行,而不会在您加载页面时运行。