1

単純な if-else ステートメントがあります。true の場合、この内容をエコーし​​たいです。

<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>

false の場合は、同様のことを行います。

これにどのようにアプローチすればよいですか?私は PHP 初心者です (そして、私はここのコミュニティを悩ませてきました!)--だから私は今、echo 関数の前に立っています--変数を設定できると思いますが、それだけです。

本当にありがとう!

4

7 に答える 7

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>
<?
}
?>

于 2009-07-23T03:29:43.690 に答える
4

if/else ステートメントで PHP から抜け出すことができます。

if(true)
{
    ?>
    Regular HTML Here
    <?php
}
else
{
    ?>
    Regular HTML Here
    <?php
}

'?>' 演算子を使用すると、いつでも PHP から抜け出すことができ、任意の制御構造を使用して、エコーしたかのようにコードを表示する必要があります。もう 1 つのオプションは、出力バッファリングを使用することです。

if(true)
    {
        ob_start();

        ?>
        Regular Code Here
        <?php

        $contents = ob_get_contents();
        ob_end_clean();
    }

$contents には start と end の間に出力された内容が残ります。

最後に、include() を使用して、実際に必要なときにのみログイン フォームを含めることができます。(ログインフォームをサイトのほぼどこにでも簡単に配置できるので、私はこの方法を好みます)

if(true)
{
    include('loginform.php');
}
于 2009-07-23T03:24:46.353 に答える
2

単なる提案です。可読性と柔軟性を確保するために、最初に変数内に表示したいものを配置することをお勧めします。

$html = "<form method='post' action='?'> ...... ";

if ($condition)
   $html .= "Error"
else
   $html .= "No problem"
....

<html>
  <body>
    <?php
      echo $html;
    ?>
   </body>
</html>

または、テンプレートを使用することもできます。私がお勧めするのはEasyTemplateです。

于 2009-07-23T03:36:59.977 に答える
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 } ?>
于 2009-07-23T03:26:12.510 に答える
1

これを行うには、phpからドロップアウトするのが最も簡単な方法です。代替の制御構造を使用すると、特に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; ?>
于 2009-07-23T07:57:23.620 に答える
1

これについてはやや読みやすい php 条件文の形式があり、コロン表記を使用するので、代わりに

<?php if ($condition) { ?>
...html
<?php } else { ?>
...html
<?php } endif; ?>

あなたがやる

<?php if ($condition) : ?>
...html
<?php else : ?>
...html
<?php endif; ?>

また、設定で許可されている場合は、省略できます

<?= $variable ?>

それ以外の

<?php echo($variable); ?>
于 2009-07-23T03:49:44.070 に答える
0

このようなものを使用してください

echo htmlentities($string);

htmlentities

文字列を出力したいhtmlコードに設定します。

于 2009-07-23T03:27:20.230 に答える