Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 19 mensajes ]  Ir a página Anterior  1, 2
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Menor
Forista Menor
Avatar de Usuario

Registrado: Jue Ene 19, 2006 12:00 am
Mensajes: 58

Nota Publicado: Mié Feb 23, 2011 1:38 pm 
Arriba  
Si revise y probe con un método adicional que se refiere a 'action="<?php echo $_SERVER['PHP_SELF'] ?>" ' eso me coloca a que el script a ejecutar dea la misma pagina. También leí sobre $_POST, este guarda todas las variables que se colocan en el formulario.

Por lo que entiendo la dinámica de este método es que:

* Al verificar con if(!$_POST['submitted']) if(!$submitted) o if(!isset(submitted)) la pagina se muestra al menos una vez pues la variable debe estar vacía al no haberse mostrado la forma.
* Una vez mostrada la forma la variable contendrá un valor y el IF dara un valor falso cuando se presiona el <input type="submit">, esta vez entonces se ejecutara el script que indique la forma.

Mi problema es que aun antes de darle a submit el la variable tiene un valor eso lo verifique con un echo antes de ejecutar el IF. no importa lo que haga el valor no cambia.

Voy a tomar las recomendaciones de revisar los archivos para ver si es la configuración de mi servidor.

Para efectos de este post usare un nuevo prrograma colo referencia dado que el anterior es muy largo. El código del archivo 1 es el codigo "unido" forma mas código PHP. El código 2 es el código con solo el formulario y el código 3 es el codigo con solo el script.


[b]CODIGO1[/b]
<html>
<head><basefont face="Arial"></head>
<body>
<h2>Address Book</h2>
<?php
// form not yet submitted
// display form
echo $_POST['submit'];
if (!$_POST['submit'])
{
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<p>Nombre: <input type="text" name="name" /></p>
<p>Edad: <input type="text" name="age" /></p>
<input type="submit" id="submit" name="submit" value="Add">
</form>
<?php
}
else
{
// form submitted
// prepare to insert data
// database access parameters
echo $_SERVER['HTTP_USER_AGENT'] . "<br>";
echo $_SERVER['SERVER_SOFTWARE'] . "<br>";
echo $_SERVER['PHP_SELF'] . "<br>";
echo "Hi " . htmlspecialchars($_POST['name']) . "You are " (int)$_POST['age'] . " years old.<br>";
}
?>
</body>
</html>




CODIGO 2

<html><body>
<form method="POST" action"tst22.php">
<p>Nombre: <input type="text" name="name" /></p>
<p>Edad: <input type="text" name="age" /></p>
<input type="submit" name="submitted" value="add">
</form>
</body></html>


CODIGO 3
<?php
if($_POST['submitted'])
{
echo $_SERVER['HTTP_USER_AGENT'] . "<br>";
echo $_SERVER['SERVER_SOFTWARE'] . "<br>";
echo $_SERVER['PHP_SELF'] . "<br>";
echo "Hi " . htmlspecialchars($_POST['name']) . "You are " (int)$_POST['age'] . " years old.<br>";
}
?>

_________________
Dell Inspiron 15
Ubuntu Lucid Lynx| Debian Squeeze
http://ryorown.blogspot.com
Linux User 518016

 Perfil Email YIM  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Dom Abr 18, 2010 4:30 pm
Mensajes: 2790
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)

Nota Publicado: Mié Feb 23, 2011 1:51 pm 
Arriba  
ese condigo funciona perfectamente .. bueno la comprobación de entero en el campo age no funciona ( (int)$_POST['age'] --> acepta letras como números ) y le faltava un punto
Código:
echo "Hi " . htmlspecialchars($_POST['name']) . "You are " .(int)$_POST['age'] . " years old.<br>";


pero el funcionamiento es normal

el problema con los valores de las variables "persistentes " son las cokies prueba borrando-las ;)

_________________
... reinstalar un SO cuando produce un error es como tirar un bebe a la basura cuando se hace caca..

Trusted Network and Developer | Reglamento General de los Foros |WIKI-EL | Twitter @SISIAM
Debian| ArchLinux |Linux User #508809

 Perfil WWW  

Desconectado
Forista Menor
Forista Menor
Avatar de Usuario

Registrado: Jue Ene 19, 2006 12:00 am
Mensajes: 58

Nota Publicado: Mié Feb 23, 2011 9:24 pm 
Arriba  
http://www.html-form-guide.com/php-form ... -post.html
En contre un POST muy interesante que me ilustro un poco sobre el uso del POST y como ensamblar todo lo leido, sin embargo no funciona. Pruncipalmente he visto que hay codigo que deberia trabahar bien y sin embargo no funciona. Por ejemplo lo referente a "Register globals"

"Register globals off?
If you are using a version of PHP earlier than 4.2.0, you should strongly consider setting register_globals to "off" in your .htaccess file (if you are using Apache server) for the exact same reasons as were mentioned in the previous tutorial on GET. If you have PHP 4.2.0 or later, don't worry about it."

Con el comando phpinfo() vi que lo referente a las variables globales tenia los siguientes valores:

register_globals = Off
auto_globals_jit = On

Esto esta en el archivo /etc/php5/apache2/php.ini

En la pagina de PHP encontre lo siguiente:
Using Register Globals: This feature has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

EL valor de mi variable es correcto y mas aun cuando tengo PHP5.

Verifique con cuidado donde poner mis echos y escribí el siguiente script que pareciera no trabajar antes de tener los ECHOs. En conclusión las variables hay que pasarlas usando el formato $_POST['variable']

<html>
<head><basefont face="Arial"></head>
<body>
<h2>Address Book</h2>
<?php
// form not yet submitted
// display form
echo "DEBUG1 ". $_POST['submit'] . "<br>";
echo "DEBUG1 ". $_SERVER['PHP_SELF'] . "<br>";
if (!isset($_POST['submit']))
{
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
Name:<br>
<input name="name" type="text" size="50">
<input type="submit" id="submit" name="submit" value="Add">
</form>
<?php
}
else
{
// form submitted
echo "DEBUG2 " . $_POST['submit'] . "<br>";
echo "DEBUG2 " . $_POST['name'];
$host = "localhost";
$user = "ryan";
$db = "test";
// open a connection to the database server
$connection = "$host" . "$db" . "$user";
echo "<h1>$conection<br></h1>";
echo $_POST['name'];
}
?>
</body>
</html>

_________________
Dell Inspiron 15
Ubuntu Lucid Lynx| Debian Squeeze
http://ryorown.blogspot.com
Linux User 518016

 Perfil Email YIM  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Dom Abr 18, 2010 4:30 pm
Mensajes: 2790
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)

Nota Publicado: Jue Feb 24, 2011 11:35 am 
Arriba  
ryanortegarios escribió:

Verifique con cuidado donde poner mis echos y escribí el siguiente script que pareciera no trabajar antes de tener los ECHOs. En conclusión las variables hay que pasarlas usando el formato $_POST['variable']




Claro es exactamente lo que te indique anteriormente :? este ultimo script que posteas funciona perfectamente.

Para el original de tu pregunta debes agregarle los $_POST['nombre_campo'] que precises y deberá funcionar.

PD: para verificar el codigo tambien puedes usar la función die()

_________________
... reinstalar un SO cuando produce un error es como tirar un bebe a la basura cuando se hace caca..

Trusted Network and Developer | Reglamento General de los Foros |WIKI-EL | Twitter @SISIAM
Debian| ArchLinux |Linux User #508809

 Perfil WWW  
Mostrar mensajes previos:  Ordenar por  
 [ 19 mensajes ]  Ir a página Anterior  1, 2
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO