Estoy siguiendo un manual y tengo una duda sobre un apartado

quique
25 de Diciembre del 2005
hola a todos,

estoy siguiendo un manual de php, este en concreto:

http://es.tldp.org/Manuales-LuCAS/manual_PHP/manual_PHP/formularios/formularios.htm

y queria preguntaros si el ultimo ejemplo es correcto. Copio y pego y no funciona. Puede insertar codigo html "a saco" dentro del <?php ?> ?

Muchas gracias

Califa
25 de Diciembre del 2005
Hola.

El ejemplo no va a funcionar, porque tiene varios errores.

Algo importante es entender que se puede pasar de PHP a HTML cuantas veces se quiera/necesite, pero hay que respetar la sintaxis de las etiquetas que abren y cierran PHP.

<?
o
<?php
para abrir y

?>
para cerrar

lo que está entre
<?php
?> es el código php y el resto es HTML.

También se puede escribir HTML dentro de las etiquetas php usando la función "echo", de la siguiente manera:

<?php
echo "<p>Esto es un párrafo en HTML<p>";
?>

El código HTML que se imprimer con "echo" siempre debe ir entre comillas y toda línea de php siempre tiene que estar terminada por un punto y coma (;).

Algunas cosas que estaban mal en el script eran el cambio entre php - html. Por ej. donde decía
<?php;
el ";" estaba de más (esta etiqueta no es parte del código php, así que no lleva punto y coma). Después se olvidaba de cerrar php para insertar el html; y luego de volver a abrirlo.

Otro "error" es que el script está escrito de tal modo que sólo funcionará con determinada configuración de php. Concretamente, la opción "register_globals" del archivo php.ini debe estar "On" para que ese script funcione correctamente.

Cuando las variables se envían/reciben a través de un formulario por el método "post", la mejor manera de acceder a ellas es usando la sintaxis:
$_POST[' nombre_de_la_variable']
en lugar de
$nombre_de_la_variable

Ésta última forma sólo servirá si "register_globals" está activada y, además, es menos segura que la otra. Así que, siempre es mejor usar la otra forma, aunque haya que escribir un poco más. Funciona en todos lados y es más segura.

Acá va el ejemplo anterior, corregido:

<?PHP
if ($_POST['enviar']) {
echo "Hola <b>" . $_POST['nombre'] . "</b> que tal estás<BR>n";
echo "Eres " . $_POST['sexo'] . "<BR>n";
echo "Tienes " . $_POST['edad'] . "<BR>n";
echo "Tu sistema favorito es " . $_POST['sistema'] . "<BR>n";

if ($_POST['futbol']) {
echo "Te gusta el futbol <BR>n";
} else {
echo "NO te gusta el futbol <BR>n";
}
if ($_POST['aficiones'] != "") {
echo "Tus aficiones son: <BR>n";
echo nl2br($_POST['aficiones']);
} else {
echo "NO tienes aficiones <BR>n";
}
echo "<BR><a href='$PHP_SELF'>VOLVER AL FORMULARIO</a>";
} else {
?>
<HTML>
<BODY>
<FORM METHOD="post" ACTION="<?PHP echo $PHP_SELF ?>">
<input type="hidden" name="edad" value="55">
<p>Tu nombre <input type="text" name="nombre" size="30" size="30" value="jose"></p>
<p>Tu sistema favorito
<select size="1" name="sistema">
<option selected value="Linux">Linux</option>
<option value="Unix">Unix</option>
<option value="Macintosh">Macintosh</option>
<option value="Windows">Windows</option>
</select></p>
<p>¿Te gusta el futbol ? <input type="checkbox" name="futbol" value="ON"></p>
<p>¿Cual es tu sexo?</p>
<blockquote>
<p>Hombre<input type="radio" value="hombre" checked="checked" name="sexo"></p>
<p>Mujer <input type="radio" name="sexo" value="mujer"></p>
</blockquote>
<p>Aficiones</p>
<p><textarea rows="5" name="aficiones" cols="28"></textarea></p>
<p><input type="submit" value="Enviar datos" name="enviar">
<input type="reset" value="Restablecer" name="B2"></p>
</FORM>
</BODY>
</HTML>
<?PHP
} //fin IF
?>

Juan Diaz
13 de Junio del 2013
Bueno creo que la respuesta fue bastante tarde dada, sin embargo para el que quiera dejo aca esta respuesta.

Yo estuve siguiendo el manual que especificas tambien y posee muchos errores sin embargo tiene buena info y por eso me di a la tarea de revisar la respuesta anterior a la mia ya que tenia la misma duda, pero, como creo que sabes tampoco esta bn, asi que saque este codigo que soluciona todos los problemas:





Tu nombre

Tu edad

Tu sistema favorito

Linux
Unix
Macintosh
Windows


¿Te gusta el futbol?

¿Cual es tu sexo?


Hombre
Mujer


Aficiones








Juan Diaz
13 de Junio del 2013




Tu nombre

Tu edad

Tu sistema favorito

Linux
Unix
Macintosh
Windows


¿Te gusta el futbol?

¿Cual es tu sexo?


Hombre
Mujer


Aficiones








Juan Diaz
13 de Junio del 2013


Tu nombre
Tu edad
Tu sistema favorito
Linux
Unix
Macintosh
Windows

¿Te gusta el futbol?
¿Cual es tu sexo?

Hombre
Mujer

Aficiones




Juan Diaz
13 de Junio del 2013
[code type="dreamweaver"]



Tu nombre

Tu edad

Tu sistema favorito

Linux
Unix
Macintosh
Windows


¿Te gusta el futbol?

¿Cual es tu sexo?


Hombre
Mujer


Aficiones








Juan Diaz
13 de Junio del 2013
[b]

Tu nombre
Tu edad
Tu sistema favorito

Linux
Unix
Macintosh
Windows

¿Te gusta el futbol?
¿Cual es tu sexo?

Hombre
Mujer

Aficiones





Juan Diaz
13 de Junio del 2013
Ensayando respuesta

Juan Diaz
13 de Junio del 2013
[p]Hola mundo[/p]

Juan Diaz
13 de Junio del 2013
[p]

Tu nombre

Tu edad

Tu sistema favorito

Linux
Unix
Macintosh
Windows


¿Te gusta el futbol?

¿Cual es tu sexo?


Hombre
Mujer


Aficiones