Google
Web dns.bdat.net

[PHP-ES] Re: No consigo pasar las variables de un formulario a un script

Write haof XML files: Carlos Medina ( info@simply-networks.de)
Fecha: mar 01 nov 2005 - 09:45:05 CET


Hola,

como te dijeron los colegas anteriores deseo pues que tengas un ejemplo:

regad.php:
//trata de no utilizar html
<?php

$enviar = $_POST['enviar'];

$userid = $_POST['userid'];

$pass = = $_POST['pass']; (y asi con todas las variables...)

     if ($enviar) {

         $conexion = mysql_connect ('localhost', 'usuario', 'clave');

         mysql_select_db('mibd', $conexion);

         $sql = "INSERT INTO usuarios (userid, pass, smail, amail, estado)";

         $sql .= "VALUES ('$userid', '$pass', '$smail', '$amail', '$estado')";

         $resultado = mysql_query($sql);

         echo "¡Gracias! Hemos recibido sus datos.\n";
> }
> else {
> echo "no se han enviado datos \n";
> echo 'Volver al formulario';
> }
> ?>

Si deseas solo hacer un formulario para ti esta bien asi. Pero si deseas
venderlo o llevarlo a sistemas productivos deberias mejor hacer clases y
checkear las variables antes de introducirlas al SQL.

Saludos

Carlos

CYBERNIÑO schrieb:
> Buenas:
>
> Estoy creando una tabla en la base de datos con el fin de mantener usuarios registrados, pero en el primer script, en el que añadiría los registros, me ha surgido un problema que no he sabido resolver. He mirado los manuales, como luego os comento, pero nada.
>
> En primer lugar, tenemos el formulario:
>
> registro.html
> <html>
> <body>
> <p>Rellena el siguiente formulario:</p>
>
> <form method="post" action="regad.php">
> <p>usuario<br>
> <input type="text" name="userid"></p>
> <p>password<br>
> <input type="password" name="pass"></p>
> <p>e-mail suscrito<br>
> <input type="text" name="smail"></p>
> <p>e-mail alternativo<br>
> <input type="text" name="amail"></p>
> <p><input type="hidden" name="estado" value="rg"></p>
> <p><input type="submit" name="enviar" value="aceptar"></p>
> </form>
> </body>
> </html>
>
> A continuación, el script que debería agregar el registro a la tabla. El usuario y clave de acceso a la base de datos, son supuestos aquí:
>
> regad.php
> <html>
> <body>
> <?php
> if ($enviar) {
> $conexion = mysql_connect ('localhost', 'usuario', 'clave');
> mysql_select_db('mibd', $conexion);
> $sql = "INSERT INTO usuarios (userid, pass, smail, amail, estado)";
> $sql .= "VALUES ('$userid', '$pass', '$smail', '$amail', '$estado')";
> $resultado = mysql_query($sql);
> echo "¡Gracias! Hemos recibido sus datos.\n";
> }
> else {
> echo "no se han enviado datos \n";
> echo 'Volver al formulario';
> }
> ?>
> </body>
> </html>
>
> Bien, el caso es que siempre me aparece el mensaje de no se han recibido datos, y el enlace para volver al formulario.
> Si cambio la condición a (!$enviar) el resultado es que me aparece el mensaje de gracias, haya en viado datos o no.
> Eso me hizo pensar que la variable $enviar no se enviaba, así que, hice una prueba:
> Redirigí la salida, cambiando la etiqueta <form> a action="pruebadata.php", que sería así:
>
> pruebadata.php
> <html>
> <body>
> <?php
> echo $userid . "\n";
> echo $pass . "\n";
> echo $smail . "\n";
> echo $amail . "\n";
> echo 'volver al formulario';
> ?>
> </body>
> </html>
>
> Nada, no imprime las variables.
> Consulto el manual, y la única explicación posible, podría ser que no estuviera configurada la directiva track_vars = on en el .ini, pero, además de que en el .ini hay una nota que dice que desde la versión 4.0.3 esta directiva está siempre habilitada, probé a ponerla explícitamente, con el mismo resultado.
> ¿Qué hago mal? ¿qué me falta o me sobra en el script o en el formulario?
>
> Perdón por lo extenso, y gracias de antemano por tomaros la molestia.
>
> Saludos.
>
> CYBERNIÑO

-- 
SimplyNetworks, Carlos Medina
www.simplynetworks.de
PHP, JAVA, PERL Entwicklung
-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:23:40 CET