Question

J'ai un simple si-else - si cela est vrai, je voudrais que ce écho ce contenu:

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

et si elle est fausse quelque chose de semblable.

Comment dois-je aborder ce sujet? Je suis un noob PHP (et je suis ennuyeux la communauté ici!) - donc je suis debout à la fonction d'écho en ce moment - je pense que je peux définir des variables, mais c'est à ce sujet

.

Merci beaucoup!

Était-ce utile?

La solution

Même chose que vous avez fait:


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

Autres conseils

Vous pouvez simplement sortir de PHP dans le if / autre.

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

Vous pouvez sortir de PHP à tout moment en utilisant l'opérateur « ?> », Et avec une structure de contrôle, il devrait montrer le code comme si vous echo'd il. Une autre option serait d'utiliser en mémoire tampon de sortie.

if(true)
    {
        ob_start();

        ?>
        Regular Code Here
        <?php

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

Cela laissera le contenu de ce entre le début émis et fin dans le contenu $.

Enfin, vous pouvez utiliser un include () pour inclure seulement votre formulaire de connexion lorsque vous avez réellement besoin. (Je préfère cette méthode parce que je peux mettre les formulaires de connexion presque partout sur le site très facilement)

if(true)
{
    include('loginform.php');
}
<?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 } ?>

Juste une suggestion; pour une meilleure lisibilité et la facilité de flexibilité, il est préférable de placer ce que vous voulez afficher dans une première variable.

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

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

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

Vous pouvez également utiliser un modèle. Une que je recommande est EasyTemplate .

il y a une forme de php conditionnel qui est un peu plus facile à lire pour cela, utilise la notation du côlon donc au lieu de

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

vous

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

également si votre configuration le permet, vous pouvez sténographie

<?= $variable ?>

au lieu de

<?php echo($variable); ?>

Le décrochage scolaire de php est la meilleure façon de le faire. Je trouve que l'utilisation des structures de contrôle alternatives fait cette sorte de code beaucoup plus lisible que les accolades bloqués, surtout si vous avez beaucoup de 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; ?>

Utilisez quelque chose comme ceci

htmlentities echo ($ string);

htmlentities

Définissez la chaîne au code html vous voulez afficher.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top