Pregunta

Tengo una sencilla instrucción if-else - si es verdad, me gustaría que se hacen eco este contenido:

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

y si es falso hacer algo similar.

¿Cómo debo abordar esto? Soy un novato en PHP (y he estado molesto la comunidad aquí!) - así que estoy de pie en la función de eco en este momento - Creo que puedo establecer variables, pero eso es todo

.

Muchas gracias!

¿Fue útil?

Solución

Lo mismo que usted ha estado haciendo:


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

Otros consejos

Usted puede simplemente salir de PHP en la declaración if / else.

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

Puede salir de PHP en cualquier momento a través del '>?' Operador, y con cualquier estructura de control, se debe mostrar el código al igual que si se echo'd. Otra opción sería el uso de búferes de salida.

if(true)
    {
        ob_start();

        ?>
        Regular Code Here
        <?php

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

Esto dejará el contenido de lo que da salida entre el inicio y fin en $ contenido.

Por último, se puede utilizar un include () para incluir sólo el formulario de inicio de sesión cuando realmente lo necesita. (Prefiero este método porque puedo poner formularios de ingreso en casi cualquier lugar en el sitio con mucha facilidad)

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

Sólo una sugerencia; para facilitar la lectura y la facilidad de flexibilidad, es mejor colocar lo que desea mostrar el interior de una variable en primer lugar.

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

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

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

O puede utilizar una plantilla. Uno, que recomendaría es EasyTemplate .

hay una forma de php condicional que es un poco más fácil de leer para esto, utiliza la notación de colon por lo que en lugar de

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

lo hace

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

También si su configuración lo permite, se puede contracción

<?= $variable ?>

en lugar de

<?php echo($variable); ?>

Utilice algo como esto

htmlentities de eco ($ cadena);

htmlentities

Defina la cadena como el código HTML que desea salida.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top