Foros del Web » Programando para Internet » PHP »

Form action en la misma pagina

Estas en el tema de Form action en la misma pagina en el foro de PHP en Foros del Web. Hola, me gustaria saber como puedo hacer para que la pagina que yo cree haga las funciones que yo le mande desde el formulario. Supongamos ...
  #1 (permalink)  
Antiguo 15/02/2012, 14:24
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Form action en la misma pagina

Hola, me gustaria saber como puedo hacer para que la pagina que yo cree haga las funciones que yo le mande desde el formulario. Supongamos que tengo alta_usuario.php

Y en esa pagina tengo el formulario para el registro de usuarios... Me gustaria que sin tener que enviar los datos a otra pagina <form action"registro.php"> las haga en la misma pagina donde este el form.. No se si me explico...
  #2 (permalink)  
Antiguo 15/02/2012, 14:29
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Form action en la misma pagina

facil:

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['enviar'])){
  3. // aca mas codigo PHP
  4. }
  5. ?>
  6. <form>
  7. <input type="submit" name="enviar" value="enviar" />
  8. </form>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 15/02/2012, 14:46
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Form action en la misma pagina

Ok.... Me interesa jejeje Dentro de if(isset($_POST['enviar'])){
// aqui tendria que poner...
}

Quiero hacer... Que compruebe si el usuario ya esta registrado, si los dos campos de la contraseña son iguales y eso... Eso lo tendria que hacer ahi, no?
  #4 (permalink)  
Antiguo 15/02/2012, 14:53
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Form action en la misma pagina

sip dentro del IF
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 15/02/2012, 15:58
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Form action en la misma pagina

El isset ese lo que hace es compobar si el boton enviar se ha pulsado o no, no? Si se ha pulsado comprobaria las variables que yo le pasase por $_POST, no?
  #6 (permalink)  
Antiguo 15/02/2012, 18:03
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Form action en la misma pagina

sip tambien podrias comprobar doblemente si además de que se ha pulsado que no venga vacio con empty.
  #7 (permalink)  
Antiguo 16/02/2012, 06:07
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Form action en la misma pagina

Aja... y... Lo podria hacer con spry ? Tendria la misma funcion ? Porque claro si no pones nada se supone que el formulario no se envia, no ?

Otra cosa... El DW (esto es solo por saber, no voy a utilizar el codigo del DW) cuando crea un formulario hace esto:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {


A que se refiere con MM_insert ?
  #8 (permalink)  
Antiguo 16/02/2012, 06:14
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Form action en la misma pagina

Cita:
Iniciado por memoadian Ver Mensaje
sip tambien podrias comprobar doblemente si además de que se ha pulsado que no venga vacio con empty.
Hola buenas, creo que no tiene mucho sentido comprobar si el botón de envío viene lleno o no.. además, también podéis comprobar si el formulario se ha enviado con isset($_POST) para no depender de un botón. También sería conveniente comprobar la url que llama a nuestro formulario para que no hagan peticiones desde fuera si ese es el objetivo.
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #9 (permalink)  
Antiguo 16/02/2012, 07:29
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Form action en la misma pagina

Como se comprueba la url ?

Entonces solo isset($_POST) ?

if isset($_POST) {

$username = $_POST["username"]; }

Por ejemplo ?

Y lo de la URL tambien me interesa...
  #10 (permalink)  
Antiguo 16/02/2012, 08:30
 
Fecha de Ingreso: mayo-2005
Mensajes: 94
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Form action en la misma pagina

Por ejemplo, si queres comprobar la url desde la que se llama, podes hacer:

if (isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://www.prueba.com/archivo.php'){

....

}

Que estamos haciendo? 3 cosas:

1. Comprobar si existen datos enviados por POST.
2. Comprobar si existe la variable $_SERVER['HTTP_REFEREF']. Esta variable nos dice la pagina desde la que se llamo al actual script. Comprobamos si existe ya que si entras en esa pagina directamente, sin entrar desde otra, esta variable no va a existir y según la configuración de php, puede dar error si la intentas utilizar y no existe.
3. Comprobamos que esa variable, sea igual a la pagina que adimitis para realizar la peticion, es decir, la de tu formulario.

Que sucede? que esto no es 100% fiable, ya que las cabeceras de la página que realiza la petición pueden alterarse fácilmente y simular que se llama desde otra, por ejemplo, la que tu admites.
  #11 (permalink)  
Antiguo 16/02/2012, 12:52
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Form action en la misma pagina

Cita:
Iniciado por miktrv Ver Mensaje
Hola buenas, creo que no tiene mucho sentido comprobar si el botón de envío viene lleno o no.. además, también podéis comprobar si el formulario se ha enviado con isset($_POST) para no depender de un botón. También sería conveniente comprobar la url que llama a nuestro formulario para que no hagan peticiones desde fuera si ese es el objetivo.
a veces $_POST existe sin que hayas dado submit a un form, me ha pasado en serio.

es mejor si comprubas que $_POST no este vacio pro que asi te aseguras que hayan dado algun valor al form de este modo si haces submit con el form vacio o existe POST de alguna forma no se ejecuta la parte de procesamiento, aunque también es tema de validación, recomiendo no usar tanto isset y si más empty.

además hay veces que puedes encesitar dos forms en la misma página y ahi te ahorras el reescribir la validación para uno y para otro.
  #12 (permalink)  
Antiguo 16/02/2012, 15:42
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Form action en la misma pagina

Pero me parece bien lo de la URL me gusta... Se puede combinar con empty ?

if (isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://www.prueba.com/alta_usuario.php'){

$username = $_POST["username"];
}

Asi estaria bien ?

if (isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] && !empty($_POST) == 'http://www.elzulo***/alta_usuario.php'){

$username = $_POST["username"];

}

Esto estaria comprobando que $_POST no este vacio ? o habria que poner form1 o el nombre del form ?

Última edición por nobo; 16/02/2012 a las 15:55
  #13 (permalink)  
Antiguo 16/02/2012, 16:28
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Form action en la misma pagina

Código PHP:
Ver original
  1. if (isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://www.elzulo***/alta_usuario.php' && !empty($_POST)){
  2.  
  3. $username = $_POST["username"];
  4.  
  5. }

lo escribiste mal, es así.
  #14 (permalink)  
Antiguo 16/02/2012, 17:03
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Form action en la misma pagina

Esto estaria bien?

Código PHP:
Ver original
  1. if (isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://www.elzulo***/alta_usuario.php' && !empty($_POST)) {
  2.  
  3. $nombre = $_POST["strNombre"];
  4. $username = $_POST["strNick"];
  5. $pass = $_POST["strPassword"];
  6. $password = $_POST["password"];
  7. $email = $_POST["strEmail"];
  8. $mail = $_POST["mail"];
  9. $direccion = $_POST["strDireccion"];
  10. $cpostal = $_POST["intCpostal"];
  11. $poblacion = $_POST["strPoblacion"];
  12. $provincia = $_POST["strPovincia"];
  13. $telefono = $_POST["intNtelf"];
  14. $telefono2 = $_POST["telefono"];
  15.  
  16. $checkuser = comprobaruser($_POST["strNick"]);
  17. $checkmail = comprobaruser($_POST["strEmail"]);
  18.  
  19.       if($pass!=$password) {
  20.          echo "Las contraseñas no coinciden"; }
  21.             if($email!=$mail) {
  22.          echo "El email no coincide"; }
  23.      
  24.          if($telefono!=$telefono2) {
  25.          echo "Los telefonos no coinciden";
  26.       }else {
  27.          if ($checkuser !=0) {
  28.              echo "El usuario" .$username. "ya existe"; }
  29.              
  30.              if ($checkmail !=0){
  31.                  echo "El mail" .$email. "ya existe"; }
  32.      
  33.       }
  34. }else {
  35.  
  36. if (isset($_POST["form1"])) {
  37.   $insertSQL = sprintf("INSERT INTO tblusuario (strNombre, strEmail, intActivo, strPassword, strDireccion) VALUES (%s, %s, %s, %s, %s)",
  38.                        GetSQLValueString($_POST['strNombre'], "text"),
  39.                        GetSQLValueString($_POST['strEmail'], "text"),
  40.                        GetSQLValueString($_POST['intActivo'], "int"),
  41.                        GetSQLValueString($_POST['strPassword'], "text"),
  42.                        GetSQLValueString($_POST['strDireccion'], "text"));
  43.  
  44.   mysql_select_db($database_conexionzulo, $conexionzulo);}}
  #15 (permalink)  
Antiguo 17/02/2012, 02:50
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Form action en la misma pagina

Creo que no hace falta decinir todas las variables, solo las que vaya a compara, no??

Etiquetas: formulario, registro, acciones, usuarios
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 01:20.