Foros del Web » Programando para Internet » PHP »

me mete lo que quiere en la db

Estas en el tema de me mete lo que quiere en la db en el foro de PHP en Foros del Web. Hola me esta ocurriendo algo muy raro al intentar ingresar los datos de un form en la base de datos mysql. el campo usuario pongo ...
  #1 (permalink)  
Antiguo 23/01/2003, 16:49
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
me mete lo que quiere en la db

Hola me esta ocurriendo algo muy raro al intentar ingresar los datos de un form en la base de datos mysql.


el campo usuario pongo el usuario q yo quiero tener y no se xq en la base de datos me aparece un usuario rarisimo

yo pongo q quiero este user:

lord

y esto es lo q me aparece en la base : Mjpsb3JkOjhmY2Q1N2E3YTA2MWJiNmUxNjdlZmQ4Y2NmODA3YT kzOjEwOjowOjA6MDowOjo0MDk2

el tipo de campo es normal uun char , como todos los demas asi q no le encuentro ninguna explicacion

para verlo lo podeis ver aki , luego os saldra el nombre d usuario q os ha "otorgado el sistema sin yo haberlo planeado"
aki lo podeis ver

la verdad q esto seria interesante para el pass peor no para el user jejeje

un saludo y gracias
  #2 (permalink)  
Antiguo 23/01/2003, 20:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y .. que tipo de campo es el "Usuario" en tu BD? ..
Como vuelcas el $usuario a la BD .. (el INSERT que haces) .. procesas esa variable antes? .. alguna validacion .. algo?

Tiene pinta de:
1) .. Estas usando un campo tipo ENCRYPT o .. MD5, Password ..etc (MD5 no tiene pinta pues genera menos caracteres .. )

2) .. Estas aplicando alguna funcion mcrypt() o similar a esa variable "usuario" antes de hacer el INSERT ..

3) .. Estas codificando el URL via algun base64_encode() .. y no has hecho el base64_decode() .. (aunque no creo q sea este ..)

Un saludo,
  #3 (permalink)  
Antiguo 24/01/2003, 03:30
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
Hola Cluster , gracias x ocntestar como siempre

al meter $user en la db hago una simple validacion para comprobar que ese usuario no existe en la db, aki te pongo el codigo:
Código PHP:
if (($user == "") || ($user == "?????"))
{
    echo 
"Especifique un nombre de usuario por favor.<br>";
    echo 
"<input type=hidden name='user2' value='?????'>";
    
$valido false;
}
Else
{
    
$dbh mysql_connect("localhost""musikaid_user""pass");
    
mysql_select_db ("musikaid_altas"$dbh);
    
$sql "SELECT * FROM users WHERE user='".$user."'";
    
$result mysql_query($sql);
    if (
$row mysql_fetch_array($result))
        {
            echo 
"El usuario ya existe, por favor, seleccione otro.<br>";
            echo 
"<input type=hidden name='user2' value='?????'>";
            
$valido false;
        }
    Else
        {
            echo 
"<input type=hidden name='user2' value='" $user ."'>";
        } 

lo de user 2 lo uso par que sino lueog me devuelva al form incial con el user q puso antes.



este tipo de validacion lo he usado antes sin problemas asi que no entiendo cual puede ser el problema ahora mismo.

gracias
  #4 (permalink)  
Antiguo 24/01/2003, 03:32
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
se meolvidsba con eso solo compruebo , una vez he validado el resto de campos meto en la db todos los campos de la siguiente forma:

Código PHP:
if ($valido == true){
$dbh mysql_connect("localhost""musikaid_user""pass");
     
mysql_select_db ("musikaid_altas"$dbh);
     
$sql "INSERT INTO users (nombre, apellidos, user, pass, direccion, c_postal, provincia, pais, email, telefono, c_conocido, comentarios)";
     
$sql .= "VALUES ('$nombre', '$apellidos', '$user', '$pass', '$direccion', '$c_postal', '$provincia', '$pais', '$email', '$telefono', '$c_conocido', '$comentarios')";
     
$result mysql_query($sql); 
gracias de nuevo
  #5 (permalink)  
Antiguo 24/01/2003, 16:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, .. tambien te pregunté .. que tipo de dato es el campo "user" de tu tabla "users" ...

Un saludo,
  #6 (permalink)  
Antiguo 24/01/2003, 16:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

No acabo de ver bien la logica del script. Lo que me mosquea es que durante tus validaciones estas haciendo echo de campo oculto llamado 'user2' y en tu insert insertas el campo 'user' (supongo). Como no has puesto el codigo completo, no se si el insert se ejecuta dentro del mismo script que realiza la validacion, o se ejecuta en otro script al que se le envia los campos ocultos generados en la validacion. Si es esto ultimo, ¿no deberias hacer el insert con el valor de 'user2'?

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 24/01/2003, 20:47
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
Hola josemi , mira lo de user2 lo utilizo para si ha habido algun error en algun campo del form este me envie de nuevo al form y me guarda user2 en el campo usuario.

La verdad es un codigo q ya hice hacetiempo peor nunca me dioproblema y me dio pereza volver a hacer uno.


Cluster , el campo lo digo en el post es un campo tipo char en la db como todos los demas.



lo curioso es q utilizo esyte mismo codigo en otro form de la pagina y me lo mete todo bien , me esta volviendo loko.

Un saludo
  #8 (permalink)  
Antiguo 25/01/2003, 08:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podrias poner ambos formularios q usas .. el q "va bien" y el que hace eso ... (y mas si dices q los dos apuntan a la misma BD?) ..

En el formulario (el q no va) estas usando alguna codificion especial? me refiero a:

enctype (si es q lo usas en tu <form ....>)

Un saludo,
  #9 (permalink)  
Antiguo 25/01/2003, 14:41
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
Hola ahora ya si que no lo entiendo , me he decidido a hacer el form de nuevo y el que ue antes me metia los datos bien ahora me los mete otra vez mal y encima no entiendo porq cuando voy a comprobar si en la bd esta ya el email para no dejar usarlo me dice q ese mail ya esta en la bd al no ser que la vacie .

aki van los codigos:

primero el form:

Cita:
<form name="form1" method="post" action="formgrupos2.php">
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000" size="2"><br>
El representante legal del artista o grupo afirma que ha le&iacute;do
el contrato arriba expuesto y que se adhiere a los t&eacute;rminos
del mismo.</font></b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
</font> <b><font color="#FF0000">Acepto</font></b>
<input type="checkbox" name="checkbox" value="checkbox">
</p>
<p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Nombre
del Artista:
<input type="text" name="nombre_grupo">
<br>
</b> <font size="1" color="#FF0000">( Nombre del grupo o artista en
solitario, con este nombre es con el que se le promocionar&aacute;)</font></font></p>
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Usuario:
<input type="text" name="user">
</font></b><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
<font color="#FF0000">(Este es el user que se utilizar&aacute; para
la administarcion del grupo cuando se le solicite)</font></font></p>
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Contrase&ntilde;a:
<input type="password" name="pass">
Repita contrase&ntilde;a:
<input type="password" name="pass2">
</font></b></p>
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">E-mail:
<input type="text" name="email">
Repita E-mail:
<input type="text" name="email2">
<br>
</font></b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0000">(El
email introducido debe ser v&aacute;lido ya q se le mandaran las instrucciones
para completar el alta al mismo)</font></p>
<p><font color="#333333"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Si
ha aceptado el contrato , ya puede formar parte de MUSIKAID<br>
<input type="submit" name="submit" value="Registro">
</font></b></font></p>
</form>

y ahora el codigo q me comprueba y me mete lso datos en la bd
Código PHP:
<?php
$valido 
true;
if ((
$nombre_grupo == "") || ($nombre_grupo == "?????"))
{
    echo 
"Por favor indica el nombre del grupo.<br>";
    
$valido false;
}


if ((
$user == ""))
{
    echo 
"Especifique un nombre de usuario por favor.<br>";
    
$valido false;
}
Else
{
    
$dbh mysql_connect("localhost""musikaid_user""pass");
    
mysql_select_db ("musikaid_altas"$dbh);
    
$sql "SELECT * FROM grupos WHERE user='".$user."'";
    
$result mysql_query($sql);
    if (
$row mysql_fetch_array($result))
        {
            echo 
"El nombre de usuario que ha seleccionado ya existe , seleccione otro por favor..<br>";
            
$valido false;
        }
    
}

if ((
$pass == "") || ($pass2 == "") || ($pass <> $pass2))
{
echo 
"Ha introducido incorrectamente las contraseñas .<br>";
$valido false;
}




if (!(
ereg("^.+@.+\\..+$"$email)) || ($email <> $email2)){
echo 
"El e-mail ingresado no es valido, por favor reviselo.<br>";
$valido false;
}
Else
{
    
$dbh mysql_connect("localhost""musikaid_user""pass");
    
mysql_select_db ("musikaid_altas"$dbh);
    
$sql "SELECT * FROM grupos WHERE email='".$email."'";
    
$result mysql_query($sql);
    if (
$row mysql_fetch_array($result))
        {
            echo 
"El e-mail que ha intruducido ya está en nuestra base de datos .<br>";
    
$valido false;
        }


}

if (
$valido == true){
$dbh mysql_connect("localhost""musikaid_user""pass");
     
mysql_select_db ("musikaid_altas"$dbh);
     
$sql "INSERT INTO grupos (nombre_grupo, user, pass, email)";
     
$sql .= "VALUES ('$nombre_grupo', '$user', '$pass', '$email')";
     
$result mysql_query($sql);
echo 
mysql_error();
     echo 
"<h4><font face='Georgia, Times New Roman, Times, serif'>$nombre ¡Gracias! Los siguientes datos han sido recibidos.En unos instantes recibira un e-mail con los datos paar continuar con el alta de su grupo.\n<br><br>";
     echo 
"Nombre del grupo:$nombre_grupo<br>";
     echo 
"Nombre de usuario:$user<br>";
     echo 
"Contraseña:$pass<br>";
echo 
"E-mail:$email<br>";



mail($sdestinatario,$ssubject,$shtml,$sheader);




     }
Else
{
echo 
"<br><br><center><input type='button' style='cursor:hand' value='Volver' name='volver' onclick='javascript=history.back()'></center>";
}

     
?>
El usuario q me da es el siguiente: Mjpsb3JkOjhmY2Q1N2E3YTA2MWJiNmUxNjdlZmQ4Y2NmODA3YT kzOjEwOjowOjA6MDowOjo0MDk2

lo que me hace lo podeis ver AQUI


saludos
  #10 (permalink)  
Antiguo 25/01/2003, 15:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Haz un echo $user; al principio del script, si ahi ya tiene un valor incorrecto, ya sabes que no es del script. Si ahi tiene un valor correcto, haz el echo antes del insert. Si ahi a cambiado de valor, repasa linea a linea donde has usado $user.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 25/01/2003, 19:38
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
Pues si , he hecho eso josemi , he puesto q printase la variable user y me ha pintado ya , mal , es al principio, asi q ahora ya si que no puedo entender como me puede pasar esto si es un simple form q pasa ese dato $user y reviuso el codigo y sigo son ver el problema

he quitado el check box a ver si daba problema y nada

alguien ve algo raro aki?


Cita:
<form name="form1" method="post" action="formgrupos2.php">
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000" size="2"><br>
El representante legal del artista o grupo afirma que ha le&iacute;do
el contrato arriba expuesto y que se adhiere a los t&eacute;rminos
del mismo.</font></b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
</font> <b><font color="#FF0000">Acepto</font></b>

</p>
<p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Nombre
del Artista:
<input type="text" name="nombre_grupo">
<br>
</b> <font size="1" color="#FF0000">( Nombre del grupo o artista en
solitario, con este nombre es con el que se le promocionar&aacute;)</font></font></p>
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Usuario:
<input type="text" name="user">
</font></b><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
<font color="#FF0000">(Este es el user que se utilizar&aacute; para
la administarcion del grupo cuando se le solicite)</font></font></p>
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Contrase&ntilde;a:
<input type="password" name="pass">
Repita contrase&ntilde;a:
<input type="password" name="pass2">
</font></b></p>
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">E-mail:
<input type="text" name="email">
Repita E-mail:
<input type="text" name="email2">
<br>
</font></b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0000">(El
email introducido debe ser v&aacute;lido ya q se le mandaran las instrucciones
para completar el alta al mismo)</font></p>
<p><font color="#333333"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Si
ha aceptado el contrato , ya puede formar parte de MUSIKAID<br>
<input type="submit" name="submit" value="Registro">
</font></b></font></p>
</form>
yo yo no veo nada raro


saludos
  #12 (permalink)  
Antiguo 26/01/2003, 13:50
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
por favor que alguien le heche un vistazo a esto o me voy a volver loko

gracias
  #13 (permalink)  
Antiguo 26/01/2003, 14:22
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Solucion drastica: cambia el nombre del campo. En lugar de 'user' llamalo 'identificador_de_usuario'. Si con esto funciona, es que por ahi estas usando cookies o variables de sesion con el nombre de 'user' (si estas con register_globals a on).

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 1 personas




La zona horaria es GMT -6. Ahora son las 09:30.