Foros del Web » Programando para Internet » PHP »

duda con formularios y PHP

Estas en el tema de duda con formularios y PHP en el foro de PHP en Foros del Web. cada vez que pongo un formulario.. y recibo los valores enviados en variables PHP... los datos del formulario desaparecen.. que debo hacer para que los ...
  #1 (permalink)  
Antiguo 10/10/2003, 10:45
 
Fecha de Ingreso: septiembre-2003
Mensajes: 39
Antigüedad: 14 años, 2 meses
Puntos: 0
duda con formularios y PHP

cada vez que pongo un formulario.. y recibo los valores enviados en variables PHP... los datos del formulario desaparecen..

que debo hacer para que los datos esctritos se conserven... ejemplo

en un formulario para enviar noticias.. ingreso algunos datos... traspaso los valores a variables $ ....valido que no sean vacio... pero si no se ingresaron todos los valores, el formulario deberia permitir ingresr los valores que faltan y no ingresar todo denuevo.. (cuando apreto en enviar (metodo post) el formulario se borra.. y me aparece el mensaje que puse para cuando el formulario no esta completo)..

bueno como hago para conservar los valores que ya habia ingresado?? y solo ingresar los que me faltan??
__________________

www.qZone.cl

Última edición por gangster; 10/10/2003 a las 10:47
  #2 (permalink)  
Antiguo 10/10/2003, 11:02
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 7 meses
Puntos: 1
no se , pero me parece que tienes en el php.ini las registers_globals en off,

debes pasar las variables con el array golbal

$_POST['name_campo_form']
o
$_GET['name_campo_form'], si no especificas metodo en tu form

no obstante hay muchos post de esto en el foro y tb en las facs, no estaria de mas que le echaras una miradita

un saludo
  #3 (permalink)  
Antiguo 10/10/2003, 11:10
 
Fecha de Ingreso: septiembre-2003
Mensajes: 39
Antigüedad: 14 años, 2 meses
Puntos: 0
esto es lo que hago yo.. uso esa variables que dice.. y voy a revisar el .ini que dices..


Código PHP:
<?php
include("mysql.php");
$n=mysql_connect($dbhost,$dbuname,$dbpass);
mysql_selectdb($dbname);

$titulo $HTTP_POST_VARS["titulo"];
$fecha $HTTP_POST_VARS["fecha"];
$hora $HTTP_POST_VARS["hora"];
$contenido $HTTP_POST_VARS["contenido"];
$autor $HTTP_POST_VARS["autor"];

if (
$titulo!="" && $contenido!="" && $fecha!="" && $hora!="" && $autor!=""
{
    print 
"<br> ok<br>";
    
$sql "INSERT INTO noticias VALUES('$titulo', '$contenido', '$fecha', '$hora', '$autor', '');";
    
mysql_query($sql) or die ("error");
}else{
    print 
"<br> porfavor llena los campos de la noticia<br>";
}

?>
__________________

www.qZone.cl
  #4 (permalink)  
Antiguo 10/10/2003, 11:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues recogerlos y propagarselos en los campos value de tus input y demás elementos de formulario ..

Por ejemplo yo uso mucho:

Al entrar a tu sección de código de validación ... Me hago una cópia del array POST (o GET según corresponda al method empleado en tu formulario).

Código PHP:
$misvaribles=$_POST;
//valido mis $_POST['algo'] variable .. 
Si he de volver al formulario .. vuelvo redireccionando y propago el array $misvariable .. Esa propagación la puedo hacer en sesiones, cookies o por el URL ..

Si lo hago por el URL se debe "serializar" y "deserializar" el array (en una de las FAQ's está explicado como hacerlo) ..

Lo más "limpio" (pues no veras ninguuna variable rondando por el URL) es usar cookies o sesiones.

así al terminar tu proceso de valición .. redirecciona bien sea automáticamente (con header("location: fomulario.php") .. ) o con javascript.

Si vas a propagar por el URL el array $misvariables .. debes de aplicar las funciones de la FAQ que te menciono (serializar ..) y propagarla en el link que vas a genear para tu redireción:

Código PHP:
header("location: formulario.php?misvariables=$misvariables"); 
o en tu link ... o javascritp que uses al formar el link.

En tu formulario .. usas el array $misvariables para poblar tus value de los input ...

Código PHP:
$misvariables=$_GET['misvariables']; // caso de que llegasen por el URL .. $_SESSION si creastes una sesión ..etc

<input name="variable" type="text" value="<? echo $misvariable['variable']; ?>">
Al hacerme una copia de "$_POST" en el script que valido las variables .. los indices de $mivariables (array) son los mismos que los nombres de mis "name" de mis input del formulario .. así no es dificil equivocarse o andar con "conversiones" de nombres de variables ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 10/10/2003 a las 11:18
  #5 (permalink)  
Antiguo 10/10/2003, 11:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 39
Antigüedad: 14 años, 2 meses
Puntos: 0
chucha q peluo..

nunka pense q fuera tan cuatico hacer esto...


yo cacho q voy a usar sesiones.. pq por el url.. creo q no soporta variables muy pesadas...
__________________

www.qZone.cl
  #6 (permalink)  
Antiguo 10/10/2003, 11:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Código PHP:
}else{
    
// print "<br> porfavor llena los campos de la noticia<br>";
   // redirecciona a tu formulario .. automáticamente
   // pasale una variable de control .. esa definirá si llega al formulario con error
   
$misvariables=envia_array($_POST);
   
header("location: formulario.php?cod=error&misvariables=$misvariables");
   exit;
    


Y en tu formulario (que debe ser .php)

Código PHP:
if (isset($_GET['cod'])){
echo 
"Atencion: ".$_GET['cod'];
$misvariables=recibe_array($_GET['misvariables']);

Y el resto ..como expliqué ...

Las funciones de array_envia() y array_recibe() para serializar y deserializar el array mencionado:

http://www.forosdelweb.com/showthrea...072#post262072

Y ..seria bueno que al hacer tu INSERT .. al ternminar el proceso .. redireccionastes a otra página con el mismo método de pasar una variable de control para mostrar algún mensaje .. NO dejes ahí a tu usuario por qué si recarga página se produciran registros duplicados.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 10/10/2003, 11:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pue si .. con sesiones queda todo mas "limpio" ..

Y no hay que serializar/deserializar ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 10/10/2003, 11:44
 
Fecha de Ingreso: octubre-2003
Ubicación: Temuco(cajón)
Mensajes: 3
Antigüedad: 14 años, 2 meses
Puntos: 0
ganster dejate de jotear comom no vas a saver algo tan fasil coloca <php>q3 game h2_::,soul DT

quake arena , game el nombre y listo eso te cuesta tanto
  #9 (permalink)  
Antiguo 10/10/2003, 11:56
 
Fecha de Ingreso: septiembre-2003
Mensajes: 39
Antigüedad: 14 años, 2 meses
Puntos: 0
mmmmm parece q me falto decir por algun lado.. que tengo todo dentro del mismo archivo php..

news2.php

igual tengo q hacer el envia_array?
__________________

www.qZone.cl
  #10 (permalink)  
Antiguo 10/10/2003, 12:04
 
Fecha de Ingreso: octubre-2003
Ubicación: Temuco(cajón)
Mensajes: 3
Antigüedad: 14 años, 2 meses
Puntos: 0
sipo tenis que colocarle todos los comandos al archibo php
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 02:12.