PHP fonksiyonları içeren HTML Echo blok

6 Cevap php

Ben basit bir if-else deyimi var - eğer doğruysa, ben bu içeriği yankı için istiyorum:

<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 ise benzer bir şey yapmak.

Bunu nasıl yaklaşmalıdır? Ben bir PHP çaylak değilim (ve ben burada topluluk can sıkıcı oldum!) - Yani hemen yankı işlevi duruyorum - Ben değişkenleri ayarlayabilirsiniz düşünüyorum, ama bunun hakkında.

Çok teşekkürler!

6 Cevap

Eğer yapıyor gibi aynı şey:


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

Sadece if / else deyimi PHP patlak verebilir.

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

Sen? '>' Operatörünü kullanarak herhangi bir zamanda PHP patlak verebilir ve herhangi bir kontrol yapısı ile, bunu echo'd gibi eğer kod göstermelidir. Başka bir seçenek çıktı tamponlama kullanmak olacaktır.

if(true)
    {
        ob_start();

        ?>
        Regular Code Here
        <?php

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

Bu başlangıcı arasındaki Çıktılanan ne içeriğini bırakın ve $ içeriğini sona erecek.

Son olarak, size gerçekten ihtiyacınız olduğunda sadece giriş formunu eklemek için () dahil kullanabilirsiniz. (Ben çok kolay sitede hemen hemen her yerde giriş formları koyabilirsiniz, çünkü ben bu yöntemi tercih)

if(true)
{
    include('loginform.php');
}

Sadece bir öneri; okunabilirlik kolaylığı ve esneklik için, ilk önce bir değişkeni içinde görüntülemek istediğiniz yere daha iyidir.

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

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

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

Ya da bir şablon kullanabilirsiniz. Ben tavsiye ederim biridir EasyTemplate.

Bu okumak için biraz daha kolay bir php formu koşullu var, kolon gösterimi kullanır böylece yerine

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

Yapmanız

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

config izin veriyorsa da, sen steno yapabilirsiniz

<?= $variable ?>

yerine

<?php echo($variable); ?>

Php dışında bırakarak bunu yapmak için en kolay yoludur. Ben html çok şey var, özellikle alternate control structures kod kullanarak bu tür çok daha okunabilir mahsur kaşlı daha yapar bulabilirsiniz.

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

Böyle bir şey kullanın

echo htmlentities ($ string);

htmlentities

Çıkış istediğiniz html kod dizesini ayarlayın.