Foros del Web » Programando para Internet » PHP »

Enviar formulario action sobre la misma página PHP y HTML

Estas en el tema de Enviar formulario action sobre la misma página PHP y HTML en el foro de PHP en Foros del Web. Tengo una página llamada registrar.php que combina HTML y PHP y el form action se realiza sobre la misma página: Código HTML: <form id= "registro" ...
  #1 (permalink)  
Antiguo 17/08/2006, 00:38
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Enviar formulario action sobre la misma página PHP y HTML

Tengo una página llamada registrar.php que combina HTML y PHP y el form action se realiza sobre la misma página:

Código HTML:
<form id="registro" name="registro" method="post" action="registrar.php"> 
El problema es que cuando un usuario entra en la página registrar.php ya le aparece como si el formulario se hubiera enviado con sus errores incluidos en los IF.

Incluyo código PHP más abajo.
¿Alguna idea?

Muchas gracias por adelantado.
Alejandro Pérez.

Código PHP:
<?php //Incluir cabecera y conexión a base de datos
                  
include("header.php"); include ("conexdb.php");?>
                      
                      <?php //Variables extra
                  
?>
                      
                      <?php //Capturar campos del formulario de registro REGISTRO.PHP 
                  
$username $_POST['username'];
                  
$password md5($_POST['password']); 
                  
$password2 md5($_POST['password2']);
                  
$email $_POST['email'];
                  
$name $_POST['name'];
                  
$lastname $_POST['lastname'];
                  
$dnitype $_POST['dnitype'];
                  
$dninumber $_POST['dninumber'];
                  
$sex $_POST['sex'];
                  
$birth_day $_POST['birth_day'];
                  
$month_day $_POST['month_day'];
                  
$year_day $_POST['year_day'];
                  
$reg_address $_POST['reg_address'];
                  
$reg_city $_POST['reg_city'];
                  
$reg_bigcity $_POST['reg_bigcity'];
                  
$reg_zip $_POST['reg_zip'];
                  
$reg_mobile $_POST['reg_mobile'];
                  
$ipcliente $_SERVER['remote_addr'];
                  
?>
                      
                      <?php // Comprobar si el usuario introducido existe  
                  
$error.=  "POR FAVOR COMPRUEBA LAS CASILLAS MARCADAS EN ROJO EN EL FORMULARIO:<br /><br />
"
;
                  
$checkuser mysql_query("SELECT users_username FROM quevalor_users WHERE users_username='$username'");  
                  
$username_exist mysql_num_rows($checkuser);  
                  if(
$username_exist 0){
                  
$error.= "- El nombre de usuario introducido ya existe, escoge otro diferente.<br />"
;}
                  
?>   
                      <?php //Comprobar campos vacios del formulario  
                  
                  //Comprueba si el campo NOMBRE está vacio
                  
if(empty($name)){
                  
$error.=  "- Campo Vacio: NOMBRE (Por favor, rellena esta casilla).<br />"
                  
;}
                  
                  
//Comprueba si el campo APELLIDOS está vacio
                  
if(empty($lastname)){
                  
$error.=  "- Campo Vacio: APELLIDOS (Por favor, rellena esta casilla).<br />"
                  
;}
                  
                  
//Comprueba si el campo CONTRASEÑA está vacio
                  
if(empty($_POST['password'])){
                  
$error.=  "- Campo Vacio: CONTRASEÑA (Por favor, rellena esta casilla).<br />"
                  
;}
                  
                  
//Comprueba si el campo CONFIRMACIÓN CONTRASEÑA está vacio
                  
if(empty($_POST['password2'])){
                  
$error.=  "- Campo Vacio: CONFIRMACIÓN CONTRASEÑA (Por favor, rellena esta casilla).<br />"
                  
;}
                  
                  
//Comprueba si el campo NÚMERO IDENTIFICACIÓN está vacio
                  
if(empty($dninumber)){
                  
$error.=  "- Campo Vacio: NUMERO DE IDENTIFICACIÓN (Por favor, rellena esta casilla).<br />"
                  
;}
                  
                  
//Comprueba si la CONTRASEÑA coincide
                  
if ($password!=$password2)
                  
$error.= "- La CONTRASEÑA no coincide con su confirmación.<br />";
                  
                  
//Comprobar si la dirección de EMAIL es correcta
                  
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$email)) {  echo "";}else {  $error.= "- La dirección de EMAIL que has introducido es incorrecta. ";}

                  
//Si existe errores los escribe, de otra manera no muestra nada
                  
if ($error==  "POR FAVOR REVISA LA SIGUIENTE INFORMACIÓN EN EL FORMULARIO:<br />"){
                  unset (
$error);}
                  else
                  {echo 
"<span class=\"rojoclaropeque\"> $error </span><br /><br />

"
;}
                  
?>
  #2 (permalink)  
Antiguo 17/08/2006, 01:03
Avatar de Gerardoaguirre  
Fecha de Ingreso: junio-2004
Mensajes: 68
Antigüedad: 19 años, 9 meses
Puntos: 0
Y tu formulario?¿, en donde esta¿?
__________________
Entre mas nos ayudemos, mas aprenderemos!!
  #3 (permalink)  
Antiguo 17/08/2006, 01:08
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 7 meses
Puntos: 0
El formulario está en la misma página PHP, tal y como comento más arriba. No incluyo el código de toda la página porque no coge en este mensaje.

¿Alguien sabe lo que pasa?

Muchas gracias por adelantado.
ALEJANDRO PEREZ
  #4 (permalink)  
Antiguo 17/08/2006, 01:15
Avatar de Gerardoaguirre  
Fecha de Ingreso: junio-2004
Mensajes: 68
Antigüedad: 19 años, 9 meses
Puntos: 0
Mandame tu codigo a mi mail, ya te lo mande
__________________
Entre mas nos ayudemos, mas aprenderemos!!
  #5 (permalink)  
Antiguo 17/08/2006, 04:36
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 8 meses
Puntos: 0
Para asegurarte de que el formulario ha sido enviado debes hacer uso de la función isset.
if (isset ($_POST['username']) && isset ($_POST['password']) ... etc.

Eso delante de donde recoges las variables y realizas las validaciones. Recuerda cerrar ese if al final de las validaciones.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #6 (permalink)  
Antiguo 17/08/2006, 06:45
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 7 meses
Puntos: 0
Gracias por tu respuesta. Al final Gerardo Aguirre se le ocurrió poner todo el código PHP que expongo más arriba entre el siguiente IF:

Código PHP:
if (isset($_POST['submit'])) {  ........... } 
Ha funcionado a la perfección y es bastante simple.
Muchas gracias.

Un saludo,
Alejandro.
  #7 (permalink)  
Antiguo 27/09/2006, 03:56
Avatar de dayer  
Fecha de Ingreso: febrero-2004
Mensajes: 142
Antigüedad: 20 años, 1 mes
Puntos: 0
Hola! Ya sé que el tema está un pelín pasado, pero acabo de leerlo y por si acaso me gustaría aconsejarte que te crees una función que compruebe los campos vacíos. Te lo digo porque con empty te lo detecta si hay incluso un espacio en blanco, creo, pero si a empty le mandan: " " (unos espacios en blanco) creo que lo interpreta como que no está vacío

Se me ocurre algo así...
Código PHP:
function comprobar($c){
    if(empty(
$c)) return true;
        else if(
trim($c) == "") return true;
            else return 
false;

Sabes a qué me refiero? Si seguro que es algo en lo que ya has caido, pero por si acaso...
__________________
No Ðejes Para Mañana Monte Que Puedas Escalar Hoy
Cartagena
El Historias
  #8 (permalink)  
Antiguo 27/09/2006, 04:10
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 7 meses
Puntos: 0
Lo acabo de comprobar y tienes razón. Cambiaré empty por "".
Muchas gracias por tu puntualización.


Cita:
Iniciado por dayer Ver Mensaje
Hola! Ya sé que el tema está un pelín pasado, pero acabo de leerlo y por si acaso me gustaría aconsejarte que te crees una función que compruebe los campos vacíos. Te lo digo porque con empty te lo detecta si hay incluso un espacio en blanco, creo, pero si a empty le mandan: " " (unos espacios en blanco) creo que lo interpreta como que no está vacío

Se me ocurre algo así...
Código PHP:
function comprobar($c){
    if(empty(
$c)) return true;
        else if(
trim($c) == "") return true;
            else return 
false;

Sabes a qué me refiero? Si seguro que es algo en lo que ya has caido, pero por si acaso...
  #9 (permalink)  
Antiguo 27/09/2006, 04:33
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 7 meses
Puntos: 0
Mejor he hecho lo siguiente, tal y como sugieres:

if(trim($name) == ""){$error.= "- NOMBRE (Has olvidado completar dicha casilla).<br />";}

Gracias.
  #10 (permalink)  
Antiguo 27/09/2006, 09:17
Avatar de dayer  
Fecha de Ingreso: febrero-2004
Mensajes: 142
Antigüedad: 20 años, 1 mes
Puntos: 0
De nada hombre. Si eso ya es cuestión de que lo pongas a prueba y también de a qué vaya ir destinado. No es lo mismo si es para una página abierta al público que cualquiera puede rellenar que si es para miembros de una empresa jeje.

Un saludo
__________________
No Ðejes Para Mañana Monte Que Puedas Escalar Hoy
Cartagena
El Historias
  #11 (permalink)  
Antiguo 24/11/2007, 22:52
 
Fecha de Ingreso: octubre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Enviar formulario action sobre la misma página PHP y HTML

perdon no entiendo muy bien lo que estan haciendo aqui, estoy intentando hacer un formulario y al querer hacerlo me da casi el mismo error, intente usar el isset que uso alex pero no se como cerrar el if alguien me puede ayudar
gracias
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 07:00.