Foros del Web » Programando para Internet » PHP »

error en este codigo

Estas en el tema de error en este codigo en el foro de PHP en Foros del Web. hola muchachos como andan?? espero que re bien......quisiera mostrarles un codigo al cual no le encuentro errores pero no funciona como yo quiero. 1) el ...
  #1 (permalink)  
Antiguo 22/04/2004, 20:50
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
error en este codigo

hola muchachos como andan?? espero que re bien......quisiera mostrarles un codigo al cual no le encuentro errores pero no funciona como yo quiero.

1) el primer problema es no me valida si el usuario o el mail ya existen en mi base de datos

2) segundo problema no pasa la variable de session con el valor ID del registro para poder grabarlo en la otra tabla

Cualquier ayuda por pequeña que sea sera bienvenida. Desde ya muchas gracias

Código PHP:
<?php
include("conexion.php");
include(
"fecha.php");
session_start();
switch (
$_GET['accion']) {
    case 
"paso1":

        
$email $_POST['email'];
        
$username $_POST['username'];

        
/* Chequeamos que el nombre de usuario y la contraseña no existan previamente en la base de datos */
        
$sql_email_check mysql_query("SELECT username FROM usuarios WHERE username='$username'");
        
$sql_usuario_check mysql_query("SELECT email FROM datospersonales WHERE email='$email'");
        
$email_check mysql_num_rows($sql_email_check);
        
$usuario_check mysql_num_rows($sql_usuario_check);
        if ((
$email_check 0) || ($usuario_check 0)) {
            if (
$email_check 0) {
                unset(
$email);
                
header("location: regpaso1.php?error=1");
                exit;
            } 
            if (
$usuario_check 0) {
                unset(
$usuario);
                
header("location: regpaso1.php?error=0");
                exit;
            } 
        }
            
$consulta mysql_query("INSERT INTO usuarios (username) VALUES('$username')") or die (mysql_error()); 
            
// Obtienes el ID autoincremental generado por tu INSERT:
            
$userid mysql_insert_id($consulta);
            
// Y lo llevas a una variable de sesión de nombre "USERID"
            
$_SESSION['USERID'] = $userid;
            
$_SESSION['EMAIL'] = $email;
            
// Y redireccionas a tu formulario2
            
header("location: regpaso2.php");
            exit;
            break;

    case 
"paso2":
        
// Tomas el valor de tu variable de sesión "USERID" para usarla en tus relaciones de tus tablas.
        
$userid $_SESSION['USERID'];
        
$email $_SESSION['EMAIL'];
        
$nombre $_POST['nombre'];
        
$apellido $_POST['apellido'];
        
$telefono $_POST['telefono'];
        
$direccion $_POST['direccion'];
        
$res $_POST['res']; ////fecha de nacimiento 
        
        
$nombre stripslashes($nombre);
        
$apellido stripslashes($apellido);
        
$email stripslashes($email);
        
$telefono stripslashes($telefono);
        
$direccion stripslashes($direccion);

        
mysql_query("INSERT INTO datospersonales (userid, nombre, apellido, email, telefono, direccion, fecha_registracion, fecha_nacimiento) VALUES('$userid', '$nombre', '$apellido', '$email', '$telefono', '$direccion', '$fecha2', '$res')") or die (mysql_error());
        
// //liberar memoria y $_SESSION['EMAIL']
        // Y redireccionas a tu formulario3
        
header("location: regpaso3.php");
        exit;

        break;
    case 
"paso3":
        
// lo mismo que el paso2 para tomar la variable de sesión USERID
        
$userid $_SESSION['USERID'];

        
mysql_query("INSERT INTO datosadicionales (userid, nombre, apellido, email, telefono, direccion, fecha_registracion, fecha_nacimiento) VALUES('$userid', '$nombre', '$apellido', '$email', '$telefono', '$direccion', '$fecha2', '$res')") or die (mysql_error());
        
// procesos para el paso 3
        // En este punto ya no te hará falta esa variable de sesión .. así que puedes borrar dicha variable de sesión o incluso la sesión entera si no la necesitas con unset($_SESSION['USERID') para borrar la variable de sesión o bien session_destroy() para toda la sesión.
        // Y redireccionas a tu otro sitio donde digas que el proceso se ha finalizado con exito ..
        
header("location: nose.php");
        exit;

        break;
    default:
        echo 
"secuencia incorrecta de proceso ...";


?>
__________________
Lo que se hace por AMOR esta mas allá del BIEN y del MAL - Friedrich Nietzsche
http://www.hispanogeek.com.ar
Desarrollador IT -
  #2 (permalink)  
Antiguo 22/04/2004, 22:44
 
Fecha de Ingreso: marzo-2004
Ubicación: $_SERVER['DOCUMENT_ROOT'] :-)
Mensajes: 100
Antigüedad: 13 años, 8 meses
Puntos: 0
Problema 1.-
Todo parece OK, por que no metes un " or die (mysql_error());" despues de cada query, a ver si no es un problema de sintaxis de campos o algo similar?



Problema 2.- solucionalo con esto:

$userid = mysql_insert_id();

(O bien ponle de parametro el resource de la conexion, no el del query)
__________________
-- girls.code.better --
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 11:01.