Estoy siguiendo un manual y tengo una duda sobre un apartado
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
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
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
?>
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
?>
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
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
Tu nombre
Tu edad
Tu sistema favorito
Linux
Unix
Macintosh
Windows
¿Te gusta el futbol?
¿Cual es tu sexo?
Hombre
Mujer
Aficiones
Tu nombre
Tu edad
Tu sistema favorito
Linux
Unix
Macintosh
Windows
¿Te gusta el futbol?
¿Cual es tu sexo?
Hombre
Mujer
Aficiones
[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
Tu nombre
Tu edad
Tu sistema favorito
Linux
Unix
Macintosh
Windows
¿Te gusta el futbol?
¿Cual es tu sexo?
Hombre
Mujer
Aficiones
[b]
Tu nombre
Tu edad
Tu sistema favorito
Linux
Unix
Macintosh
Windows
¿Te gusta el futbol?
¿Cual es tu sexo?
Hombre
Mujer
Aficiones
Tu nombre
Tu edad
Tu sistema favorito
Linux
Unix
Macintosh
Windows
¿Te gusta el futbol?
¿Cual es tu sexo?
Hombre
Mujer
Aficiones
Ensayando respuesta
[p]Hola mundo[/p]
[p]
Tu nombre
Tu edad
Tu sistema favorito
Linux
Unix
Macintosh
Windows
¿Te gusta el futbol?
¿Cual es tu sexo?
Hombre
Mujer
Aficiones
Tu nombre
Tu edad
Tu sistema favorito
Linux
Unix
Macintosh
Windows
¿Te gusta el futbol?
¿Cual es tu sexo?
Hombre
Mujer
Aficiones