Foros del Web » Programando para Internet » PHP »

Duda de formulario mas phpmyadmin

Estas en el tema de Duda de formulario mas phpmyadmin en el foro de PHP en Foros del Web. BUENAS A TODOS ESPERO KE NO OS RESULTE MUY COMPLICADO MI POST. Tengo en phpmyadmin un base datos "bodyandsoul" y me centro en la tabla ...
  #1 (permalink)  
Antiguo 21/01/2011, 07:14
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Duda de formulario mas phpmyadmin

BUENAS A TODOS ESPERO KE NO OS RESULTE MUY COMPLICADO MI POST.

Tengo en phpmyadmin un base datos "bodyandsoul" y me centro en la tabla "registro"
con los siguientes campos:
dni, nombre, apellidos, edad, telefono, direccion, provincia, localidad, cp, usuario, password, email, fecha.

Mi problema es que tengo 3 paginas y en 2 de ellas se envia distintos formularios a la misma tabla "registro"
y no los acepta.......

las paginas son:
registro.php (se registra los datos de caracter personal del usuario)
registrado.php (muestra por pantalla los datos de caracter personal al usuario)
registroperfil.php (se registra el usuario con su password y email)

Os explico lo ke he ido probando:::
!) he probado en la ultima pagina "registroperfil" en cambiar las consultas ke se envian a la base de datos con "INSERT INTO" y solo se registra el ultimo formulario con los datos del usuario,password, email......
!) tambien he probado en la misma pagina "registroperfil" en cambiar las consultas ke se envian a la base de datos con "ALTER TABLE" pero tampoco funciona.
!) he probado a meter las 3 paginas a lo burro en una sola pagina modificando lo necesario... pero aun asin no funciona..
__________________________________________________ _____________
REGISTRO.PHP
__________________________________________________ _____________
Código PHP:
<html>
    <
head>
        <
script language="JavaScript">
BLA BLA BLA BLA ETC... (nada importante solo hay codigo del estilo de mi pagina)
        
</script>
<script language="javascript"> 
function verifica(){ 
BLA BLA BLA BLA ETC... (nada importante solo verifico los datos que introduce el usuario)
    etc
    etc
    etc
    POR ULTIMO VERIFICO ESTE CAMPO Y LO ENVIO
    if(document.form.cp.value.length < 5){ 
        alert("Debes ingresar tu codigo postal"); 
        document.form.cp.focus(); 
        return 0; 
    }else{ 
        document.form.submit();  
    }

</script> 
        <style type="text/css">
BLA BLA BLA BLA ETC... (nada importante solo hay codigo del estilo de mi pagina)
    </head>
    <body id="fondo"> 
        <script language="JavaScript">
            estilo();
        </script>
        <ul id="menu2">
            <li class="menu_horizontal"><a href="novedades.php"><h3>Volver al inicio</h3></a></li>            
        </ul>
        <br><br><br><br><br><br>
        <center><h2><b><u>Registro de datos personales</u></b></h2></center><br>
    

        <form method="post" name="form" id="form" action="registrado.php">
BLA BLA BLA BLA ETC... (nada importante solo hay codigo del registro)
                            DNI
                            Nombre
                            Apellidos
                            Edad
                            Teléfono
                            Direccion
                            Provincia
                            Localidad
                            Código Postal
            <center><p><input type="button" value="Aceptar" onClick="javascript:verifica()"/><a href="novedades.php"><input type="reset" value="Cancelar" /></a></p></center>
        </form>
    </body>
</html> 
__________________________________________________ ______
REGISTRADO.PHP
__________________________________________________ _____________
Código PHP:
<html>
    <head>
    <script language="JavaScript">
BLA BLA BLA BLA ETC... (nada importante solo hay codigo del estilo de mi pagina)
        <style type="text/css">
BLA BLA BLA BLA ETC... (nada importante solo hay codigo del estilo de mi pagina)
        </style>
    </head>

    <body id="fondo"> 
        <script language="JavaScript">
            estilo();
        </script>
        <?php
            $dni
$_POST['dni'];
            
$nombre$_POST['nombre'];
            
$apellidos$_POST['apellidos'];
            
$edad$_POST['edad'];
            
$telefono$_POST['telefono'];
            
$direccion$_POST['direccion'];
            
$provincia$_POST['provincia'];
            
$localidad$_POST['localidad'];
            
$cp$_POST['cp'];
            

            include(
"datosconexion.php");
            
            
$conexionmysql_connect("localhost""root""") or die ("No se pudo realizar la conexion");
            
mysql_select_db('bodyandsoul'$conexion) or die ("No se pudo conectar con la BD");
            
$sql"INSERT INTO registro VALUES ('".$dni."','".$nombre."','".$apellidos."','".$edad."','".$telefono."','".$direccion."','".$provincia."','".$localidad."','".$cp."')";
            
$peticionmysql_query($sql$conexion);
        
?>
        <center><table border="2"><br><b>La información introducida por el usuario:</b><br>
BLA BLA BLA BLA ETC... (aki va la tabla con los campos vacios) nada importante
        <?php
BLA BLA BLA BLA ETC
... (aki va los datos ke metemos en la tabla de arribanada importante
            mysql_close
($conexion);
        
?>
            </table></center>
            <br>
            <form method="post" action="registroperfil.php">
            <p class="center">Ahora seguiremos con el registro del perfil del usuario.</p>
            <center><p>Pasar al registro del perfil</p><p><input type="submit" value="Siguiente" /></p>
            </center>
            </form>
            
</body>
</html>
__________________________________________________ _____________
REGISTROPERFIL.PHP
__________________________________________________ _____________
Código PHP:
<html>
    <head>
        <script language="JavaScript">
BLA BLA BLA BLA ETC... (nada importante solo hay codigo del estilo de mi pagina)
        </script>
        <style type="text/css">
BLA BLA BLA BLA ETC... (nada importante solo hay codigo del estilo de mi pagina)
        </style>
    </head>
    <body id="fondo"> 
        <script language="JavaScript">
            estilo();
        </script>
        <br><br><br><br><br><br>
        <center><h2><b><u>Registro del perfil</u></b></h2></center><br>
<?php
session_start
();

mysql_connect('localhost','root')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('bodyandsoul')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function 
mostrar(){
echo
'<form action="registroperfil.php" method="post" name="1">
        <table id="contorno">
            <tr>
            <td>
            <fieldset class="field">
                    <legend class="legend"></legend>
                        <table class="tabla">
                        <tr>
                        <td>Nick o Alias:</td>
                        <td><input type="text" name="username" size="25" maxlength="50" /></td><br />
                        </tr>
                        <tr>
                        <td>Password:</td>
                        <td><input type="password" name="password" size="25" maxlength="50" /></td>
                        <tr>
                        </tr>
                        <td>Confirmar Password:</td>
                        <td><input type="password" name="password2" size="25" maxlength="50" /></td><br />
                        </tr>
                        <tr>
                        <td>Email:</td>
                        <td><input type="text" name="email" size="25" maxlength="50" /></td><br />
                        </tr>
                        </table>
            </fieldset>
        </table>
            <center><input type="submit" value="Registrar" /></center>
    </form>'
;
}
function 
mostrar1(){
echo
'<FORM ACTION="validar_usuario.php" METHOD="post">
        <table id="contorno">
                    <tr>
                    <td>
                    <fieldset class="field">
                            <legend class="legend"></legend>
                                <table class="tabla">
                                <tr>
                                <td>Usuario :</td> <td><INPUT TYPE="text" NAME="usuario" SIZE=25 MAXLENGTH=50></td><br />
                                </tr>
                                <tr>
                                <td>Password:</td> <td><INPUT TYPE="password" NAME="password" SIZE=25 MAXLENGTH=50></td><br />
                                </tr>
                                </table>
                                
                    </fieldset>
        </table>
        <CENTER><INPUT TYPE="submit" VALUE="Iniciar Sesión"><a href="novedades.php"><input type="reset" value="Cancelar" />
            </a></CENTER>
    </FORM>'
;
}
?>

<?php

// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
    
$username $_POST["username"];
    
$password $_POST["password"];
    
$password2 $_POST["password2"];
    
$email $_POST["email"];
    
// Hay campos en blanco
    
if($username==NULL||$password==NULL||$password2==NULL||$email==NULL) {
        echo 
"<CENTER>un campo está vacio.</CENTER>";
    
mostrar();
    }else{
        
// ¿Coinciden las contraseñas?
        
if($password!=$password2) {
            echo 
"<CENTER>Las contraseñas no coinciden</CENTER>";
            
mostrar();
        }else{
            
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
            
$checkuser mysql_query("SELECT usuario FROM registro WHERE usuario='$username'");
            
$username_exist mysql_num_rows($checkuser);
            
$checkemail mysql_query("SELECT email FROM registro WHERE email='$email'");
            
$email_exist mysql_num_rows($checkemail);
            if (
$email_exist>0||$username_exist>0) {
                echo 
"<CENTER>El nombre de usuario o la cuenta de correo estan ya en uso</CENTER>";
                
mostrar();
            }else{
                
$query 'INSERT INTO registro (usuario, password, email, fecha)
                VALUES (\''
.$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\')';
                
mysql_query($query);
                echo 
'<center>El usuario<b> '.$username.'</b> ha sido registrado de manera satisfactoria.</center><br />';
                echo 
'<center>Ahora puede entrar ingresando su usuario y su password </center><br />';
                
mostrar1();
                
?>
                
                <?php //abro php y cargo mostrar
            
}
        }
    }
}else{
mostrar();
}
?>
    </body>
</html>

Última edición por eneol; 21/01/2011 a las 07:22
  #2 (permalink)  
Antiguo 21/01/2011, 07:57
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 3 meses
Puntos: 416
Respuesta: Duda de formulario mas phpmyadmin

Bueno, no se porque lo haces de esa manera pero la solucion estaria en en vez de hacer un INSERT INTO en el ultimo script, hacer un UPDATE.

Pero necesitas algun dato que te diga cual es el usuario a editar para que no edite todos los registros, como un ID.

O bien podrias guardar los datos en una SESSION para luego hacer un INSERT de todos una vez que se complete el formulario con todos los datos, seria mas prudente.
  #3 (permalink)  
Antiguo 22/01/2011, 05:39
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Duda de formulario mas phpmyadmin

no consigo hacerlo con el update :/
provare con meterlo en la "session"

Editado : 22 Enero 2011

$SESSION
$HTTP_SESSION_VARS

Las he provado y ninguna de las 2 me funciona (Ni $session , ni $http_session_vars)
yo trabajo con el notepad++ v5.5.1 (no se si tendra algo ke ver)

REGISTRADO.PHP (en esta pagina SI me muestra la variable de session)
Código PHP:
              <body>
        <?php
        $_SESSION
["VARdni"] = $_POST['dni'];
        echo (
"DNI session: ".$_SESSION["VARdni"]."<br>");
        
?>


REGISTROPERFIL.PHP(en esta pagina NO me muestra la variable de session)
Código PHP:
ESTA PUESTO ANTES QUE EL <HTML> ...Y TAMBIEN  LO HE PROVADO JUSTO DESPUES DEL <BODY> Y ME SALE EL MISMO ERROR
KE NO ENCUENTRA LA VARIABLE
INCLUSO LO HE PROVADO CON UN <INPUT> OCULTO DIRIGIDO A REGISTROPERFIL.PHP Y NO SALE #.#
<?php
    session_start
();
    echo (
"DNI session: ".$_SESSION["VARdni"]."<br>");
?>


Y SALE ESTE ERROR:
Notice: Undefined index: VARdni in C:\wamp\www\registroperfil.php on line 53
La linea 53 es la session de este "registroperfil.php"

Última edición por eneol; 22/01/2011 a las 07:39
  #4 (permalink)  
Antiguo 22/01/2011, 14:32
Avatar de ecarlevaro  
Fecha de Ingreso: octubre-2010
Ubicación: Paraná, Argentina
Mensajes: 80
Antigüedad: 9 años
Puntos: 13
Respuesta: Duda de formulario mas phpmyadmin

El manejo de sesiones hace uso de cookies en el navegador o pasar el ID de sesión por la URI (la dirección web) ¿tienes habilitado el uso de cookies en el navegador que pruebas?.

De todas formas te debería tirar otro error si no estan habilitadas las cookies, siempre recuerda que debes usar session_start() antes de enviar cualquier salida al navegador como cualquier cosa con echo() ya que session_start() necesita enviar cabeceras HTML (y justamente se llaman cabecera porque van a la cabeza, al principio).

Prueba esto, en ambos scripts, luego de session_start(); coloca
Código PHP:
Ver original
  1. echo "<p>Id sesion: ".session_id();
Te debería dar el mismo número (id) en ambos scripts.
  #5 (permalink)  
Antiguo 23/01/2011, 11:02
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Duda de formulario mas phpmyadmin

si. tengo las cookies habilitadas con el navegador firefox
el lunes 24 probare lo ke dices
ya os comentare =)
  #6 (permalink)  
Antiguo 27/01/2011, 06:49
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Duda de formulario mas phpmyadmin

ya lo solucione
gracias
tenia la tabla de mysql como Myisam en vez de innodb

Etiquetas: phpmyadmin, formulario
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 14:01.