Foros del Web » Programando para Internet » PHP »

Duda con formularios

Estas en el tema de Duda con formularios en el foro de PHP en Foros del Web. Hola amigos tengo varios formularios en mi sistema y la duda que tengo es que cuando llena el usuario sus datos pero se equivoca en ...
  #1 (permalink)  
Antiguo 16/10/2009, 10:25
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Duda con formularios

Hola amigos tengo varios formularios en mi sistema y la duda que tengo es que cuando llena el usuario sus datos pero se equivoca en algunos el servidor le vota mensajes de validaciones es aqui donde esta mi duda CUANDO EL SERVIDOR VOTA LOS MENSAJES AUTOMATICAMENTE LE APARECE DE NUEVO EL FORMULARIO QUE ESTABA LLENANDO PERO CON TODOS LOS CAMPOS VACIOS Y QUISIERA QUE LOS DATOS QUE LLENO YA NO TENGA QUE REPETIRLOS es mas o menos como los formularios de yahoo o gmail no se si me hago entender .

¿Tengo que poner dentro de mis imput algun comando en especial para que retenga ese dato o como debo hacerlo?
  #2 (permalink)  
Antiguo 16/10/2009, 10:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Duda con formularios

Lo que tu quieres se logra con cookies o si esta logueada la persona solo necesitas llamar la informacion de la base de datos y rellenar los campos con los valores que tenga en la base de datos, conforme al usuario. Si no sabes como hacer esto te sugiero leer este manual para que te ayude.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 16/10/2009, 11:00
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Duda con formularios

sesiones, cookies, son solcuiones
y la solucion mas simple, es que tengas el codigo php en la misma paina del formulario
en otras palabras
cuando apretas enviar en "formulario.php" recibe los valores en la misma pagina "formulario.php" asi cuando recivas los valores de los post, lo igualas a variables....entonces en los initial values de los campos pones un echo de la variable que esta asinada para ese campo
entonces si te arroja el error y regresa a la paina("en este caso al recarga")
los valores no los pierdes por la razon de que estan iualados los post a variables y las variables estan imprimidas por medio del echo en el initial value
:D
esa es la mas simple si no entiendes mandame un mensaje....te mandare ejemplo

si no
dale con las cookies
  #4 (permalink)  
Antiguo 16/10/2009, 11:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Duda con formularios

Mas o menos es asi como lei el manual
Para llenar el formulario inicio sesion asi:
Código php:
Ver original
  1. <?php
  2.  $_SESSION['formulario']="Llenado formularios";
  3. ?>
  4.  
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. <title>Insertar Equipos</title>
  8. </head>
  9.  
  10. <body>
  11. <form  name="form1" method="post" action="index.php?mod=equipos&pag=guardar"  onsubmit="return validar_equipo(this)">
  12.   <table  border="0" align="center" class="tabla" width="480">
  13.     <tr>
  14.       <th colspan="2" scope="col" class="titulo">Registro del Nuevo Equipo</span> </th>
  15.     </tr>
  16.     <tr>
  17.       <td id="carlos" style="text-align:left">Nombre del Equipo</td>
  18.       <td ><label for="textfield"></label>
  19.       <input name="nombre" type="text" id="nombre" size="40" onkeypress="return validar_text_num(event)"/></td>
  20.     </tr>
  21.     <tr>
  22.       <td  id="carlos" style="text-align:left">Dirección</td>
  23.       <td><label for="textfield"></label>
  24.       <input name="direccion" type="text" id="direccion" size="40" maxlength="30" onkeypress="return validar_text_num(event)" /></td>
  25.     </tr>
  26.        <tr>
  27.       <td  id="carlos" style="text-align:left">Telefono:</td>
  28.       <td><input name="telefono" type="text" id="telefono" size="7" maxlength="7" onkeypress="return validar_num(event)" /></td>
  29.     </tr>
  30.         <tr>
  31.       <td  id="carlos" style="text-align:left">Email:</td>
  32.       <td><input name="email" type="text" id="email" size="40" maxlength="7" onkeypress="return validar_text_num(event)" /> <a href="index.php?mod=jugadores&pag=insertar" class="Estilo6" style="font:Arial, Helvetica, sans-serif; color:#FF0000">Volver </a></td>
  33.     </tr>
  34.      
  35.       <tr>
  36.       <td colspan="2" align="center"> <input name="enviar" type="submit" value="Guardar" class="btn"/>      <input name="cancelar"  type="button" value="cancelar" onClick="location.href = 'index.php?mod=equipos&pag=listado'" class="btn"/></td>
  37.      </tr>
  38.   </table>
  39. </form>
  40. </body>
  41. </html>

Bien ahora en LO MANDO AQUI LOS DATOS QUE QUIEREN QUE SE GUARDE
Código PHP:
Ver original
  1. <?php
  2.          session_start();
  3.     $pagina = $_GET['pag'];
  4.    
  5.         case 'guardar':
  6.         if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==3)){
  7.             $id = intval($_POST['hdn_id']);
  8.             $nombre = trim($_POST['nombre']);
  9.             $direccion = trim($_POST['direccion']);
  10.             $telefono = trim($_POST['telefono']);
  11.             $email = trim($_POST['email']);
  12.             $nivel= 2;
  13.             // Proteccion ahora con injeccion sql con esto hago q se quiten algunos caracteres especiales  //
  14.             function ataque_sql($var) {
  15.             $var = mysql_real_escape_string(trim($nombre,$direccion,$telefono,$email,$usuario));
  16.             return $var;
  17.             }
  18.            
  19.             $msg = '';
  20.             /*if (empty($id)) {
  21.                 $msg .= 'No se especifico un ID<br>';
  22.             } */
  23.                
  24.             if (empty($nombre)) {
  25.                 $msg .= 'No se especifico un Nombre de Equipos<br>';
  26.                 echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=equipos&pag=insertar\">\n </center>";
  27.             }
  28.             if (empty($direccion)) {
  29.                 $msg .= 'Direccion de la sede social del Equipo <br>';
  30.                 echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=equipos&pag=insertar\">\n </center>";
  31.             }
  32.             if (empty($telefono)) {
  33.                 $msg .= 'Necesitamos el telefono del Club Nuevo <br>';
  34.                 echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=equipos&pag=insertar\">\n </center>";
  35.             }
  36.             if(empty($msg)) {
  37.                /* llamo a mod i inserto a actualizo mi base de datos */
  38.                 if (empty($id)) {
  39.                     if ($MOD['equipos']->setEquipo($nombre,$direccion,$telefono,$email)){
  40.                         echo "<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
  41.                         echo "<center>Registro exitoso!. Espere unos instantes</center>";
  42.                         [COLOR="Red"]
  43.                                              
  44.                         $_SESSION["formulario"];
  45.                         unset($_SESSION['formulario']);
  46.                                                 //session_destroy();
  47. [/COLOR]
  48.                         echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=equipos&pag=listado\">\n";
  49.                     } else {
  50.                         echo "El registro no fue exitoso";
  51.                     }
  52.                 } else {
  53.                     if ($MOD['equipos']->setEquipo($nombre,$direccion,$telefono,$email, $id)){
  54.                         echo "<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
  55.                         echo "<center>Actualización exitosa!. Espere unos instantes</center>";
  56.                         echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=equipos&pag=listado\">\n";
  57.                     } else {
  58.                         echo "La actualización no fue exitosa";
  59.                     }
  60.                 }
  61.              
  62.                
  63.             } else {
  64.                 echo "<center>Los siguientes campos son erroneos: <br><br><center>" . $msg;
  65.             }
  66.            
  67.         } else {
  68.        
  69.              echo "<center> Area Restringida </center>";
  70.         }  
  71.         break;
  72.         ?>

Es asi lo que mas o menos entiendo pero cuando hago la prueba por eejemplo pongo el nombre de algun equipo y no el telefono y dirrecion me sale el mensaje de que falta esos datos y cuando me mando de nuevo al formulario no aparece lo que antes puse ?? PUSE CON COLOR ROJO LA DESTRUCCION DE MI VARAIBALE DE SESION EN DONDE ESTA MI ERROR

Última edición por vili86; 16/10/2009 a las 11:11 Razón: Me falto editar el codigo de insertar equipos
  #5 (permalink)  
Antiguo 16/10/2009, 14:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Duda con formularios

Podria decirme alguien como puedo solucionar mi problema
  #6 (permalink)  
Antiguo 16/10/2009, 15:03
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Duda con formularios

A ver.. no se si te servira..

Prueba poniendo esto en los Values de los campos, segun lo que vaya eviando

Código PHP:
<input type="text" name="mail" id="mail" 
class="contactsInputs" value="<?= (isset($_POST["mail"]))?$_POST["mail"]:""?>" />
Tambien deberias usar sessiones para este tipo de eventos, ya sea para validar o cuando usas un Captcha:

Código PHP:
<?php
session_start
();

if (
$_SESSION['usuario']!=strtoupper(trim($_POST['usuario'])) && $_SERVER['REQUEST_METHOD']=='POST')

//despues el resto.. es solo una idea
?>
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #7 (permalink)  
Antiguo 16/10/2009, 15:12
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Duda con formularios

Gracias por la ayuda pero no se adapta mucho a mi problema la duda que tengo es q al iniciar la sesiones una ves llenado todos los datos correctos debo destruir esa sesion y mostrar el listado pero si algun dato a llenado mal el servidor le vota de nuevo el formulario pero sin los datos que lleno anteriormente y tiene q volver a escribir de nuevo todo y eso no esta bien ??'
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:13.