我有一个简单的if-else语句 - 如果是,我希望它回应这个内容:
<div id="login">
<h2>Login</h2>
<div class="box">
<form method="POST" action="index.php/login">
Username/Email:<br />
<input type="text" name="username" value="<?php echo set_value("username"); ?>" size="50" class="form" />
<?php echo form_error("username"); ?>
Password:<br />
<input type="password" name="password" value="<?php echo set_value("password"); ?>" size="50" class="form" />
<?php echo form_error("password"); ?>
<input type="submit" value="Login" name="login" />
</form>
</div>
</div>
如果错误做类似的事情。
我该如何处理?我是一个PHP菜鸟(我在这里一直在讨厌这个社区!) - 所以我现在正站在echo函数 - 我想我可以设置变量,但那就是它。
非常感谢!
答案 0 :(得分:8)
你一直在做的事情:
<?php
if some_condition
{
?>
<p> I am inside the true condition due : <?php echo "true on condition" ?> </p>
<?
}
else
{
?>
<p> I am inside the false condition due : <?php echo "false on condition" ?> </p>
<?
}
?>
答案 1 :(得分:4)
你可以在if / else语句中简单地打破PHP。
if(true)
{
?>
Regular HTML Here
<?php
}
else
{
?>
Regular HTML Here
<?php
}
您可以随时使用'?&gt;'打破PHP运算符,以及任何控制结构,它应该显示代码,就像你回应它一样。另一种选择是使用输出缓冲。
if(true)
{
ob_start();
?>
Regular Code Here
<?php
$contents = ob_get_contents();
ob_end_clean();
}
这将在$ contents中保留在开头和结尾之间输出的内容。
最后,您可以使用include()仅在实际需要时包含您的登录表单。 (我更喜欢这种方法,因为我可以很容易地将登录表单放在网站的任何地方)
if(true)
{
include('loginform.php');
}
答案 2 :(得分:2)
<?php if ($condition) { ?>
<div id="login">
<h2>Login</h2>
<div class="box">
<form method="POST" action="index.php/login">
Username/Email:<br />
<input type="text" name="username" value="<?php echo set_value("username"); ?>" size="50" class="form" />
<?php echo form_error("username"); ?>
Password:<br />
<input type="password" name="password" value="<?php echo set_value("password"); ?>" size="50" class="form" />
<?php echo form_error("password"); ?>
<input type="submit" value="Login" name="login" />
</form>
</div>
</div>
<?php } else { ?>
other html here
<?php } ?>
答案 3 :(得分:2)
只是一个建议;为了便于阅读和提高灵活性,最好先将要显示的内容放在变量中。
$html = "<form method='post' action='?'> ...... ";
if ($condition)
$html .= "Error"
else
$html .= "No problem"
....
<html>
<body>
<?php
echo $html;
?>
</body>
</html>
或者您可以使用模板。我建议的是EasyTemplate。
答案 4 :(得分:1)
有一种形式的php条件,为此更容易阅读,使用冒号表示而不是
<?php if ($condition) { ?>
...html
<?php } else { ?>
...html
<?php } endif; ?>
你做了
<?php if ($condition) : ?>
...html
<?php else : ?>
...html
<?php endif; ?>
如果您的配置允许,也可以缩写
<?= $variable ?>
而不是
<?php echo($variable); ?>
答案 5 :(得分:1)
删除php是最简单的方法。我发现使用alternate control structures使得这种代码比搁置的花括号更具可读性,特别是如果你有很多html。
<?php if (!$logged_in): ?>
<div id="login">
<h2>Login</h2>
<div class="box">
<form method="POST" action="index.php/login">
Username/Email:<br />
<input type="text" name="username" value="<?php echo set_value("username"); ?>" size="50" class="form" />
<?php echo form_error("username"); ?>
Password:<br />
<input type="password" name="password" value="<?php echo set_value("password"); ?>" size="50" class="form" />
<?php echo form_error("password"); ?>
<input type="submit" value="Login" name="login" />
</form>
</div>
</div>
<?php else: ?>
// display html for a logged-in user
<?php endif; ?>
答案 6 :(得分:0)