Foros del Web » Programando para Internet » PHP »

Problema con un formulario

Estas en el tema de Problema con un formulario en el foro de PHP en Foros del Web. Hola y gracias por leer. Mi problema es el siguiente: Tengo un formulario con distintos campos TEXT a rellenar y un TEXTAREA, tambien un boton ...
  #1 (permalink)  
Antiguo 30/09/2008, 08:07
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Problema con un formulario

Hola y gracias por leer.

Mi problema es el siguiente: Tengo un formulario con distintos campos TEXT a rellenar y un TEXTAREA, tambien un boton tipo SUBMIT. Despues del formulario se recogen los datos introducidos y tras comprobar que no son vacios se introducen en la BD. Lo que quiero es que el usuario rellene los datos y al dar al boton se recargue la pagina habiendo introducido los datos en la BD, pero esto no ocurre así. Sino que los datos no se insertan, hay que darle otra vez al boton (aun sin meter los datos) para que entonces si se inserten.

Es como si quedasen guardados al dar la primera vez al boton y se insertase una vez que le das por segunda vez. No lo entiendo bien porque ocurre esto.

Si alguien pudiera ayudarme, soy un novato, jeje.

un saludo y gracias.
  #2 (permalink)  
Antiguo 30/09/2008, 08:25
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

si deseas ver la informacion que estas guardando te recomiendo que uses un paginador, en cuanto a los datos debes tener problemas con multi form revisalo, y te recomiendo que muestres tu codigo para ser mas facil la ayuda....saludos
  #3 (permalink)  
Antiguo 30/09/2008, 08:35
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema con un formulario

Gracias por la respuesta, pensaba paginar los resultados, pero primero quería que fuese todo correcto, antes de meterme con eso.

Al principio muestro todos los registros de la base de datos, que son las firmas ya introducidas (más tarde intentare paginarlo).
luego esta el formulario con unos pocos campos y el boton de firmar.

Aqui esta el codigo, es una chapuzilla :( :
Código:
<!-- Inicio prin -->
	<div class="prin">
		<?PHP
			// Conectar con el servidor de base de datos
			$conexion = mysql_connect ("**********")
         		or die ("No se puede conectar con el servidor. Sentimos las molestias.");

  			// Seleccionar base de datos
      		       mysql_select_db ("*******")
         		or die ("No se puede seleccionar la base de datos. Sentimos las molestias.");
		?>
		<div class="centre">
			<!-- Inicio Contenedor Izquierdo -->
			<div class="contenedor_izq">				
				
<!-- Inicio Titular -->
				<div class="titular_seccion">
					<div class="contenido_titular_seccion">
						<h1 title="Libro de Visitas" style="color:#ffffff" style="margin-top:10px">
							Libro de Visitas
						</h1>
					</div>
				</div>
			       <!-- Fin Titular -->
				
				<?PHP
					// Obtener los valores del tipo categoria
					$instruccion = "SELECT * FROM visitas";
      				$consulta = mysql_query ($instruccion, $conexion) 		   
		 				or die ("No se puede acceder a la base de datos. Sentimos las molestias.");
				?>
				<div class="error_bd">
					<?PHP
						$instruccion = $instruccion . " order by fecha desc, hora desc";
						$consulta = mysql_query ($instruccion, $conexion)		 		   
		 					or die ("No hay ninguna visita.");
					?>
				</div><!--error bd-->
				
				<?PHP
				// Mostrar resultados de la consulta
      			$nfilas = mysql_num_rows ($consulta);
				if ($nfilas > 0)
      			{
			         for ($i=0; $i<$nfilas; $i++)
         			{
           				 $resultado = mysql_fetch_array ($consulta);
						?>
						<!--enlace--> 
						<div class="visita">			
							<div class="datos_visita">
								<c style="font-size:17px"><? print  $resultado['autor'] ?></c>								
								<div class="time">
									<c>Hora: </c>
	  								<e><?  print($resultado['hora']); ?></e>
									<c>     </>
									<c>Fecha: </c>
	  								<e><?  print($resultado['fecha']); ?></e>
								</div>
								<br />
								<? if($resultado['email'] != ''){?>
									<a href="mailto:<?  print($resultado['email']); ?>  ">Email</a>					
								<? } ?>
								<? if($resultado['web'] != ''){?>
									<a href="<?  print($resultado['web']); ?>" target="_blank">Web</a>
								<? } ?>
							</div>
							<div class="contenido_visita">								
								<img src="imgs/msg.gif" alt="Mensaje" title="Mensaje"/>
								<d style="margin-left:15px"><?  print($resultado['mensaje']); ?></d>
								<br />
							</div>
						</div><!--enlace-->						
						<?PHP
        	 		}

     	 	}
      		else
			{
       			  ?>
		 		  <div class="error_bd">
		 		  <? print ("No hay ninguna visita."); ?>
				  </div>
	  	 		  <?PHP
	  		}
			?>
			</div>
			<!-- Fin Contenedor Izquierdo -->
		</div>
		<!-- Fin Centre -->
		<div class="firma_visita">
			<h1 title="Firmar el Libro de Visitas" style="text-align:center; color:#ffffff;margin-top:10px; border: solid 1px #666666">
							Firmar el Libro de Visitas
			</h1>
			<h2 title="Libro de visitas" style="text-align:center; font-size:10px; margin-top:10px; border: solid 1px #666666">
					El lugar donde pueden saludar, sugerir, o preguntar cualquier cuestión relacionada con Estéfano
			</h2>
			<form action="LibroVisitas.php" method="post" name="FirmaVisita">					
					<c>Tu nombre: </c>
					<input type="text" name="F_Autor" onfocus="select()" size="35"/>
					<br/>
					<br/>
					<c>Tu email: </c>
					<input type="text" name="F_Email" onfocus="select()" size="35"/>
					<c>Tu web: </c>
					<input type="text" name="F_Web" onfocus="select()" size="35"/>
					<br/><br/>
					<c>Tu mensaje: </c><br/>
					<TEXTAREA COLS="60" ROWS="10" NAME="F_Mensaje"></TEXTAREA>
					<br/><br/>				
					<INPUT TYPE="submit" NAME="F_Firmar" VALUE="Firmar">
					<br/><br/>
			</form>
			<?PHP
			//Conseguir datos
			$autor = $_REQUEST['F_Autor'];
			$email = $_REQUEST['F_Email'];
			$web = $_REQUEST['F_Web'];
			$mensaje = $_REQUEST['F_Mensaje'];
			$aux = gmdate("Y");
			$fecha = "$aux";
			$aux = gmdate("m");
			$fecha = $fecha . "-" . "$aux";
			$aux = gmdate("d");
			$fecha = $fecha . "-" . "$aux";
			$hora = gmdate("H:i:s");
			
			$firmar = $_REQUEST[‘F_Firmar’];
			
			//Introducir datos en bd
			$introducir = "INSERT INTO `visitas`(`id_visita`,`autor`,`email`,`web`,`fecha`,`hora`,`mensaje`) VALUES (";
			$introducir = $introducir ."'$nfilas+1','$autor','$email','$web','$fecha','$hora','$mensaje');";		
			
			//Introducir datos en bd
			if($autor != "" && $mensaje != ""){
				$insercion = mysql_query ($introducir, $conexion)		 		   
			 		or die ("Ha ocurrido un error al firmar el libro de visitas. Por favor, disculpe las molestias e intentelo de nuevo.");
			}
			else if ($firmar)
				echo "AVISO: Debe introducir un nombre y un comentario.";				
				
			// Cerrar conexión
   			mysql_close ($conexion);	
			?>
		</div>
  #4 (permalink)  
Antiguo 30/09/2008, 08:41
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

pero enviar datos a la bases de datos?
  #5 (permalink)  
Antiguo 30/09/2008, 08:45
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

Por lo que entiendo quieres hacer un formulario que el usuario vea sus datos y adicionalmente, llene los que le falta si es asi te recomiendo q uses input y que coloquen su codigo o en mi pais se usa la cedula que al verificar sus datos haga un update y actualic los datos
  #6 (permalink)  
Antiguo 30/09/2008, 08:56
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema con un formulario

lo que pretendo hacer es un simple libro de visitas. Yo muestro todas las firmas que estan en la base de datos y al final pongo un formulario para introducir una nueva firma(nombre, email, mensaje...) y queria que al dar al boton FIRMAR se actualizase la pagina mostrando todas las firmas de la BD(ahora, con la nueva firma insertada).
  #7 (permalink)  
Antiguo 30/09/2008, 09:09
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

prueba con este
Código PHP:
<!-- Inicio prin -->
    <div class="prin">
        <?PHP
            
// Conectar con el servidor de base de datos
            
$conexion mysql_connect ("**********")
                 or die (
"No se puede conectar con el servidor. Sentimos las molestias.");

              
// Seleccionar base de datos
                     
mysql_select_db ("*******")
                 or die (
"No se puede seleccionar la base de datos. Sentimos las molestias.");
        
?>
        <div class="centre">
            <!-- Inicio Contenedor Izquierdo -->
            <div class="contenedor_izq">                
                
<!-- Inicio Titular -->
                <div class="titular_seccion">
                    <div class="contenido_titular_seccion">
                        <h1 title="Libro de Visitas" style="color:#ffffff" style="margin-top:10px">
                            Libro de Visitas
                        </h1>
                    </div>
                </div>
                   <!-- Fin Titular -->
                
                <?PHP
                    
// Obtener los valores del tipo categoria
                    
$instruccion "SELECT * FROM visitas";
                      
$consulta mysql_query ($instruccion$conexion)            
                         or die (
"No se puede acceder a la base de datos. Sentimos las molestias.");
                
?>
                <div class="error_bd">
                    <?PHP
                        $instruccion 
$instruccion " order by fecha desc, hora desc";
                        
$consulta mysql_query ($instruccion$conexion)                    
                             or die (
"No hay ninguna visita.");
                    
?>
                </div><!--error bd-->
                
                <?PHP
                
// Mostrar resultados de la consulta
                  
$nfilas mysql_num_rows ($consulta);
                if (
$nfilas 0)
                  {
                     for (
$i=0$i<$nfilas$i++)
                     {
                            
$resultado mysql_fetch_array ($consulta);
                        
?>
                        <!--enlace--> 
                        <div class="visita">            
                            <div class="datos_visita">
                                <c style="font-size:17px"><? print  $resultado['autor'?></c>                                
                                <div class="time">
                                    <c>Hora: </c>
                                      <e><?  print($resultado['hora']); ?></e>
                                    <c>     </>
                                    <c>Fecha: </c>
                                      <e><?  print($resultado['fecha']); ?></e>
                                </div>
                                <br />
                                <? if($resultado['email'] != ''){?>
                                    <a href="mailto:<?  print($resultado['email']); ?>  ">Email</a>                    
                                <? ?>
                                <? if($resultado['web'] != ''){?>
                                    <a href="<?  print($resultado['web']); ?>" target="_blank">Web</a>
                                <? ?>
                            </div>
                            <div class="contenido_visita">                                
                                <img src="imgs/msg.gif" alt="Mensaje" title="Mensaje"/>
                                <d style="margin-left:15px"><?  print($resultado['mensaje']); ?></d>
                                <br />
                            </div>
                        </div><!--enlace-->                        
                        <?PHP
                     
}

              }
              else
            {
                     
?>
                   <div class="error_bd">
                   <? print ("No hay ninguna visita."); ?>
                  </div>
                     <?PHP
              
}
            
?>
            </div>
            <!-- Fin Contenedor Izquierdo -->
        </div>
        <!-- Fin Centre -->
<div class="firma_visita">
            <h1 title="Firmar el Libro de Visitas" style="text-align:center; color:#ffffff;margin-top:10px; border: solid 1px #666666">
                            Firmar el Libro de Visitas
            </h1>
            <h2 title="Libro de visitas" style="text-align:center; font-size:10px; margin-top:10px; border: solid 1px #666666">
                    El lugar donde pueden saludar, sugerir, o preguntar cualquier cuestión relacionada con Estéfano
            </h2>
            <form action="LibroVisitas.php" method="post" name="FirmaVisita">                    
                    <c>Tu nombre: </c>
                    <input type="text" name="F_Autor" onfocus="select()" size="35"/>
                    <br/>
                    <br/>
                    <c>Tu email: </c>
                    <input type="text" name="F_Email" onfocus="select()" size="35"/>
                    <c>Tu web: </c>
                    <input type="text" name="F_Web" onfocus="select()" size="35"/>
                    <br/><br/>
                    <c>Tu mensaje: </c><br/>
                    <TEXTAREA COLS="60" ROWS="10" NAME="F_Mensaje"></TEXTAREA>
                    <br/><br/>                
                    <INPUT TYPE="submit" NAME="F_Firmar" VALUE="Firmar">
                    <br/>
                    <?PHP
            
//Conseguir datos
            
$autor $_REQUEST['F_Autor'];
            
$email $_REQUEST['F_Email'];
            
$web $_REQUEST['F_Web'];
            
$mensaje $_REQUEST['F_Mensaje'];
            
$aux gmdate("Y");
            
$fecha "$aux";
            
$aux gmdate("m");
            
$fecha $fecha "-" "$aux";
            
$aux gmdate("d");
            
$fecha $fecha "-" "$aux";
            
$hora gmdate("H:i:s");
            
            
$firmar $_REQUEST[‘F_Firmar’];
            
            
//Introducir datos en bd
            
$introducir "INSERT INTO `visitas`(`id_visita`,`autor`,`email`,`web`,`fecha`,`hora`,`mensaje`) VALUES (";
            
$introducir $introducir ."'$nfilas+1','$autor','$email','$web','$fecha','$hora','$mensaje');";        
            
            
//Introducir datos en bd
            
if($autor != "" && $mensaje != ""){
                
$insercion mysql_query ($introducir$conexion)                    
                     or die (
"Ha ocurrido un error al firmar el libro de visitas. Por favor, disculpe las molestias e intentelo de nuevo.");
            }
            else if (
$firmar)
                echo 
"AVISO: Debe introducir un nombre y un comentario.";                
                
            
// Cerrar conexión
               
mysql_close ($conexion);    
            
?>
                    <br/>
            </form>
        </div>
  #8 (permalink)  
Antiguo 30/09/2008, 09:27
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema con un formulario

lo he probado y me sucede lo mismo. Relleno los datos para una nueva firma y doy al boton "Firmar" y recarga la pagina pero los resultados que muestra son sin la firma recien insertada. hay que dar otra vez al boton firmar para que aparezca la nueva firma ya junto a todas las existentes.
  #9 (permalink)  
Antiguo 30/09/2008, 09:53
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

has algo ingresas un dato y luego le das f5 y me dices que te sale
  #10 (permalink)  
Antiguo 30/09/2008, 09:57
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema con un formulario

Me sale bien, yo relleno el formulario y doy al botn "Firmar" recarga la pagina(sin mostrar la firma que acabo de insertar) y doy ahora a F5 y sale la firma que inserte correctamente(si en vez de dar F5 doy otra vez al boton "Firmar" sin rellenar ningun campo, tambien me sale la firma bien).
  #11 (permalink)  
Antiguo 30/09/2008, 10:02
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

bueno te recomiendo algo para qeue te salga mejor y automatico sacas el proceso de insert en otra paganias digamo pagina2.php y en el formulario haces el llamado a al pagina2.php y en la misma haces el llamado de la pagina q contenga el formulario para q el proceso vaya a ese formulario a al regresar se actualic esa ese es mi concejo debido a q no tienes ningun problema por q el te inclueye los registro y obvio q no t lo muestra por q el solo esta ingresando y no actualiza la pagina...
  #12 (permalink)  
Antiguo 30/09/2008, 10:09
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema con un formulario

llevas toda la razon, acabo de hacer una prueba sobre lo que dices. Despues del formulario puse otra consulta a la BD para que saque todas las firmas y al ingresar una y dar al boton "Firmar" inmediatamente te aparece la firma, actualiza bien.

Asi que voy hacer lo que tu me propones dentro de un par de horas (ahora tengo que marchar) y ya te cuento, espero que funcione bien.

Mil gracias por la ayuda Rockzilla !!
  #13 (permalink)  
Antiguo 30/09/2008, 10:22
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

ok tranquilo cualquiera cosas me avisas para ver en que te puedo ayudar y suerte
  #14 (permalink)  
Antiguo 30/09/2008, 13:11
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Pregunta Respuesta: Problema con un formulario

Aqui ando de nuevo, jeje
He intentado poner tu idea. Esto es llamar a otra pagina en la que inserto en la BD el nuevo registro y luego vuelve a la página original, pero no la actualiza. No se si llamo mal a la página que introduce el registro o si hay otra forma de hacerlo.

Adjunto el código:


Esta es la pagina principal, donde se muestran todos los registros y al final encontramos el formulario con la llamada a la otra pagina que introduce los datos en la BD:
Código PHP:


                <? //Antes de esto mostramos todos los registros de la BD ?>

            <form action="LibroVisitas.php" method="post" name="FirmaVisita">                    
                    <c>Tu nombre: </c>
                    <input type="text" name="F_Autor" onfocus="select()" size="35"/>
                    <br/>
                    <br/>
                    <c>Tu email: </c>
                    <input type="text" name="F_Email" onfocus="select()" size="35"/>
                    <c>Tu web: </c>
                    <input type="text" name="F_Web" onfocus="select()" size="35"/>
                    <br/><br/>
                    <c>Tu mensaje: </c><br/>
                    <TEXTAREA COLS="60" ROWS="10" NAME="F_Mensaje"></TEXTAREA>
                    <br/><br/>                
                    <INPUT TYPE="submit" NAME="F_Firmar" VALUE="Firmar">
                    <br/><br/>
            </form>
            <?PHP
            
//Conseguir datos
            
$autor $_REQUEST['F_Autor'];
            
$email $_REQUEST['F_Email'];
            
$web $_REQUEST['F_Web'];
            
$mensaje $_REQUEST['F_Mensaje'];            
            
            
$firmar $_REQUEST[‘F_Firmar’];
            
            
$_SESSION['autor'] = $autor;
            
$_SESSION['email'] = $email;
            
$_SESSION['web'] = $web;
            
$_SESSION['mensaje'] = $mensaje;
            
            
//Introducir datos en bd
            
include("FirmaLibro.php");            
            
            
// Cerrar conexión
               
mysql_close ($conexion);    
            
?>


Ahora el codigo de la pagina FirmaLibro.php que se ocupa de introducir los datos en la BD:
Código PHP:

<?PHP
    
//Iniciamos sesion
    
session_start ();
    
    
//Obetenemos la fecha y hora actual    
    
$aux=gmdate("Y");
    
$fecha="$aux";
    
$aux=gmdate("m");
    
$fecha=$fecha "-" "$aux";
    
$aux=gmdate("d");
    
$fecha=$fecha "-" "$aux";
    
$hora=gmdate("H:i:s");
    
    
//Obtenemos los demas datos del formulario
    
$autor $_SESSION['autor'];
    
$email $_SESSION['email'];
    
$web $_SESSION['web'];
    
$mensaje $_SESSION['mensaje'];
    
    if(
$autor != "" && $mensaje != ""){
    
        
//Generar instruccion
        
$introducir "INSERT INTO `visitas`(`id_visita`,`autor`,`email`,`web`,`fecha`,`hora`,`mensaje`) VALUES (";
                
$introducir $introducir ."'$nfilas+1','$autor','$email','$web','$fecha','$hora','$mensaje');";

        
//Introducir datos en la BD
        
$insercion mysql_query ($introducir$conexion)                    
            or die (
"Ha ocurrido un error al firmar el libro de visitas. Por favor, disculpe las molestias e intentelo de nuevo.");
    }
?>

Otra duda que tengo es si paso bien asi los parametros, con variables de session o es mejor otra alternativa?


Gracias!!
  #15 (permalink)  
Antiguo 30/09/2008, 13:51
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

hola estaba comiendo.. jejej en de FirmaLibro.php llamas a la otra pagina dejame ver si te lo arreglo
  #16 (permalink)  
Antiguo 30/09/2008, 14:01
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

si me dijiste q anteriormente te incluia registro entonc la manera q te lo digo es asi a este lo llamaremos FirmaLibro.php
Código PHP:
    <? //Antes de esto mostramos todos los registros de la BD ?> 

            <form action="LibroVisitas2.php" method="post" name="FirmaVisita">                     
                    <c>Tu nombre: </c> 
                    <input type="text" name="F_Autor" onfocus="select()" size="35"/> 
                    <br/> 
                    <br/> 
                    <c>Tu email: </c> 
                    <input type="text" name="F_Email" onfocus="select()" size="35"/> 
                    <c>Tu web: </c> 
                    <input type="text" name="F_Web" onfocus="select()" size="35"/> 
                    <br/><br/> 
                    <c>Tu mensaje: </c><br/> 
                    <TEXTAREA COLS="60" ROWS="10" NAME="F_Mensaje"></TEXTAREA> 
                    <br/><br/>                 
                    <INPUT TYPE="submit" NAME="F_Firmar" VALUE="Firmar"> 
                    <br/><br/> 
            </form> 
            <?PHP 
            
//Conseguir datos 
            
$autor $_REQUEST['F_Autor']; 
            
$email $_REQUEST['F_Email']; 
            
$web $_REQUEST['F_Web']; 
            
$mensaje $_REQUEST['F_Mensaje'];             
             
            
$firmar $_REQUEST[‘F_Firmar’]; 
             
            
$_SESSION['autor'] = $autor
            
$_SESSION['email'] = $email
            
$_SESSION['web'] = $web
            
$_SESSION['mensaje'] = $mensaje
             
            
//Introducir datos en bd 
            
include("FirmaLibro.php");             
             
            
// Cerrar conexión 
               
mysql_close ($conexion);     
            
?>
y a este lo vamos a llamar FirmaLibro2.php
Código PHP:
<?PHP 
    
//Iniciamos sesion 
    
session_start (); 
     
    
//Obetenemos la fecha y hora actual     
    
$aux=gmdate("Y"); 
    
$fecha="$aux"
    
$aux=gmdate("m"); 
    
$fecha=$fecha "-" "$aux"
    
$aux=gmdate("d"); 
    
$fecha=$fecha "-" "$aux"
    
$hora=gmdate("H:i:s"); 
     
    
//Obtenemos los demas datos del formulario 
    
$autor $_SESSION['autor']; 
    
$email $_SESSION['email']; 
    
$web $_SESSION['web']; 
    
$mensaje $_SESSION['mensaje']; 
     
    if(
$autor != "" && $mensaje != ""){ 
     
        
//Generar instruccion 
        
$introducir "INSERT INTO `visitas`(`id_visita`,`autor`,`email`,`web`,`fecha`,`hora`,`mensaje`) VALUES ("
                
$introducir $introducir ."'$nfilas+1','$autor','$email','$web','$fecha','$hora','$mensaje');"

        
//Introducir datos en la BD 
        
$insercion mysql_query ($introducir$conexion)                     
            or die (
"Ha ocurrido un error al firmar el libro de visitas. Por favor, disculpe las molestias e intentelo de nuevo."); 
    } 
   
header("Location: LibroVisitas2.php");

?>
debe darte l oq no entiendo q hace esto " include("FirmaLibro.php"); "
  #17 (permalink)  
Antiguo 30/09/2008, 14:20
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema con un formulario

el " include("FirmaLibro.php"); " lo que supuestamente hace es llamar a la pagina FirmaLibro.php donde se inserta en la base de datos el nuevo registro y despues volveria a la pagina desde la que se hizo la llamada, pero no la actualiza.

No entiendo como funciona, que hace exactamente "header("Location: LibroVisitas2.php");"
y cual es "LibroVisitas2.php"??
  #18 (permalink)  
Antiguo 30/09/2008, 14:35
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

disculpa ese asi header("Location: LibroVisitas.php"); sin el dos "2" eso sirve para redireccionar despues q se guarda se coloca eso para redireccionar nuevamente a la pagina del form y el LibroVisitas2.php es a donde hace el proceso de incluir es decir estoy dividiendo en dos pagina y entonc quita ese include
  #19 (permalink)  
Antiguo 30/09/2008, 15:16
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema con un formulario

Parece que debia de ir, pero ahora me surge otra duda:

Tengo la pagina del formulario: LibroVisitas.php
Tengo la pagina de inserccion de registro: FirmaLibro.php

Ahora bien, en el formulario de LibroVisitas.php se llama a la pagina FirmaLibro.php y mi pregunta es ¿Recibe FirmaLibro.php los datos insertados en el formulario directamente y vale con que haga $_REQUEST en FirmaLibro.php para cogerlos?¿o por el contrario tengo que hacer el $REQUEST y guardarlos como variables de sesion para cogerlas en la pagina FirmaLibro.php ?

Ahora lo tengo asi y no inserta bien en la BD, de ahi mis preguntas:



Pagina LibroVisitas.php:
Código PHP:

<form action="FirmaLibro.php" method="post" name="FirmaVisita">                    
                    <c>Tu nombre: </c>
                    <input type="text" name="F_Autor" onfocus="select()" size="35"/>
                    <br/>
                    <br/>
                    <c>Tu email: </c>
                    <input type="text" name="F_Email" onfocus="select()" size="35"/>
                    <c>Tu web: </c>
                    <input type="text" name="F_Web" onfocus="select()" size="35"/>
                    <br/><br/>
                    <c>Tu mensaje: </c><br/>
                    <TEXTAREA COLS="60" ROWS="10" NAME="F_Mensaje"></TEXTAREA>
                    <br/><br/>                
                    <INPUT TYPE="submit" NAME="F_Firmar" VALUE="Firmar">
                    <br/><br/>
                    
                    <? //Conseguir datos
                    
$autor $_REQUEST['F_Autor'];
                    
$email $_REQUEST['F_Email'];
                    
$web $_REQUEST['F_Web'];
                    
$mensaje $_REQUEST['F_Mensaje'];            
            
                    
$firmar $_REQUEST[‘F_Firmar’];
                    
                    
$_SESSION['autor'] = $autor;
                    
$_SESSION['email'] = $email;
                    
$_SESSION['web'] = $web;
                    
$_SESSION['mensaje'] = $mensaje;
                    
$_SESSION['nfilas'] = $nfilas+1;
                    
?>
                    
            </form>


Pagina FirmaLibro.php:
Código PHP:

<?PHP
    
//Iniciamos sesion
    
session_start ();
    
    
//Obetenemos la fecha y hora actual    
    
$aux=gmdate("Y");
    
$fecha="$aux";
    
$aux=gmdate("m");
    
$fecha=$fecha "-" "$aux";
    
$aux=gmdate("d");
    
$fecha=$fecha "-" "$aux";
    
$hora=gmdate("H:i:s");
    
    
//Obtenemos los demas datos del formulario
    
$autor $_SESSION['autor'];
    
$email $_SESSION['email'];
    
$web $_SESSION['web'];
    
$mensaje $_SESSION['mensaje'];
    
$nfilas $_SESSION['nfilas']+1;
    
    if(
$autor != "" && $mensaje != ""){    
        
//Generar instruccion
        
$introducir "INSERT INTO `visitas`(`id_visita`,`autor`,`email`,`web`,`fecha`,`hora`,`mensaje`) VALUES (";
                
$introducir $introducir ."'$nfilas','$autor','$email','$web','$fecha','$hora','$mensaje');";

        
//Introducir datos en la BD
        
$insercion mysql_query ($introducir$conexion)                    
            or die (
"Ha ocurrido un error al firmar el libro de visitas. Por favor, disculpe las molestias e intentelo de nuevo.");
    }
    
header("Location: LibroVisitas.php");
?>

Asi como esta ahora, no me inserta nada en la BD. :(
  #20 (permalink)  
Antiguo 30/09/2008, 16:28
 
Fecha de Ingreso: septiembre-2008
Ubicación: a medio camino, entre ninguna parte y el olvido
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema con un formulario

Asunto resuelto, ya funciona todo correctamente, dejo el codigo por si a alguien le sirve:


Pagina LibroVisitas.php
Código HTML:
<? //Antes de esto hacemos una consulta para mostrar todos los registros del libro de visitas, esto es, mostramos todas las firmas que hay en el libro ?>

<form action="FirmaLibro.php" method="post" name="FirmaVisita">					
	<c>Tu nombre: </c>
	<input type="text" name="F_Autor" onfocus="select()" size="35"/>
	<br/><br/>
	<c>Tu email: </c>
	<input type="text" name="F_Email" onfocus="select()" size="35"/>
	<c>Tu web: </c>
	<input type="text" name="F_Web" onfocus="select()" size="35"/>
	<br/><br/>
	<c>Tu mensaje: </c><br/>
	<TEXTAREA COLS="60" ROWS="10" NAME="F_Mensaje"></TEXTAREA>
	<br/><br/>				
	<INPUT TYPE="submit" NAME="F_Firmar" VALUE="Firmar">
	<br/><br/>		
</form> 


Pagina FirmaLibro.php
Código PHP:

<?PHP
     session_start
();
     
// Conectar con el servidor de base de datos
     
$conexion mysql_connect ("*************")
             or die (
"No se puede conectar con el servidor. Sentimos las molestias.");

      
// Seleccionar base de datos
       
mysql_select_db ("********")
          or die (
"No se puede seleccionar la base de datos. Sentimos las molestias.");
        
    
//Obetenemos la fecha y hora actual    
    
$aux=gmdate("Y");
    
$fecha="$aux";
    
$aux=gmdate("m");
    
$fecha=$fecha "-" "$aux";
    
$aux=gmdate("d");
    
$fecha=$fecha "-" "$aux";
    
$hora=gmdate("H:i:s");
    
    
//Obtenemos los demas datos del formulario
    
$autor $_REQUEST['F_Autor'];
    
$email $_REQUEST['F_Email'];
    
$web $_REQUEST['F_Web'];
    
$mensaje $_REQUEST['F_Mensaje'];
    
    
$nfilas $_SESSION['nfilas']+1;

    
    if(
$autor != "" && $mensaje != ""){    
        
//Generar instruccion
        
$introducir "INSERT INTO `visitas`(`id_visita`,`autor`,`email`,`web`,`fecha`,`hora`,`mensaje`) VALUES (";
                
$introducir $introducir ."'$nfilas','$autor','$email','$web','$fecha','$hora','$mensaje');";
        
//Introducir datos en la BD
        
$insercion mysql_query ($introducir$conexion)                    
            or die (
"Ha ocurrido un error al firmar el libro de visitas. Por favor, disculpe las molestias e intentelo de nuevo.");
    }
    
header("Location: LibroVisitas.php");
?>


Muchas gracias a Rockzilla por su interes y sus más que acertadas advertencias y sugerencias. Un saludo.


  #21 (permalink)  
Antiguo 30/09/2008, 20:38
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con un formulario

Bueno era asi mismo que te decia adicionalmente para q no se te haga tan incomodo puede hacer una funcion q solo llames la base de datos y en cualquier formulario, pagina y proceso solo haces el include para que te ahorres tanto trabajo suerte y saludos no es nada a lo mejor el dia de mañana usted es el que me ayude..
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 13:32.