Foros del Web » Programando para Internet » PHP »

Login.php insertar datos de registro

Estas en el tema de Login.php insertar datos de registro en el foro de PHP en Foros del Web. buen dia, Me gustaria me ayudaran a ver en donde tengo el error, en mi php, estoy haciendo un sistema de usuarios, pero me tope ...
  #1 (permalink)  
Antiguo 14/01/2011, 14:30
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Login.php insertar datos de registro

buen dia,

Me gustaria me ayudaran a ver en donde tengo el error, en mi php, estoy haciendo un sistema de usuarios, pero me tope con un error, es al hacer la busqueda en la base de datos y compararla con los datos que se introducieron, el error esta mas que todo en el codigo
Código PHP:
$row mysql_fetch_row($result); 
que realmente no entiendo porque me tira el error.

adjunto el codigo y gracias de antemano!.


Código PHP:
<?php    
//include("config.php");

//datos del form
$username=$_POST['username']; 
$pw=$_POST['pw'];
$pw1 $_POST['pw1'];
$mail $_POST['mail'];

    
$db_host "localhost";
    
$db_username "root";
    
$db_pw "jesua";
    
$db_name "users";

//connecta mysql
$link mysql_connect($db_host$db_username,$db_pw) or die ( mysql_error());
mysql_select_db($db_name$link);


/* Primero comprovamos que no existe un usuario con el mismo login ya registrado */
$sql="SELECT * FROM miembros WHERE username='$username'";
if (!
$link){ echo "noseconecta" mysql_error();}

$result mysql_query($sql);
if(!
$result){echo "no pudo haber query  " mysql_error(); exit;}
        
//aca es donde me tira el error    
$row mysql_fetch_row($result);

if(!
$row){ echo "no hubo fetch_row" mysql_error(); exit;}


if(
$row[0]=1){ echo " <br>Error Eliga otro Username"; }
 else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pw!=$pw1) {
echo 
"Los passwords deben coincidir<br>";
echo 
'Clica <a href="registra.php">aquí</a> para volver al formulario';
} else {
//$pw=crypt($pw, "password");
  
$pw md5($pw);
/* Encripatmos password*/

$query="INSERT INTO miebros (username, pw, mail) VALUES ('$username','$pw','$mail')";
if(!
$query){echo "No se pudo introducir los valores" mysql_error(); exit;}
$result=mysql_query($database,$query,$link);
if(
mysql_affected_rows($link)){
echo 
"Usuario introducido correctamente";
} else {
echo 
"Error introduciendo el usuario";
/* Cierre del else */
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */
/* Cierre del else que corresponde a if(mysql_num_rows...) */


?>
  #2 (permalink)  
Antiguo 14/01/2011, 14:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Login.php insertar datos de registro

a ver, ¿si eres tan amable de decirnos cual es el mensaje de error que obtienes?

caray... pues acaso pensaste que adivinaríamos con solo leer el código, si obtienes un error debes notificarlo, no esperes a que leamos tu mente...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/01/2011, 14:36
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Login.php insertar datos de registro

= claro perdon, lo que pasa es que yo tengo este codigo

Código PHP:
Ver original
  1. //aca es donde me tira el error    
  2. $row = mysql_fetch_row($result);
  3.  
  4. if(!$row){ echo "no hubo fetch_row" . mysql_error(); exit;}

entonces el error que me daria seria "No hubo fetch_row" ,

gracias!!!...
  #4 (permalink)  
Antiguo 14/01/2011, 14:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Login.php insertar datos de registro

hmmm... curioso, deberías habilitar el reporte de errores completo...

agrega estas lineas al inicio de tu script:
Código PHP:
error_reporting(E_ALL);
ini_set('display_errors'1); 
lo extraño es que mysql_error() no devuelve ningún error, ahora veamos que sucede... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/01/2011, 14:53
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Login.php insertar datos de registro

gracias.

ahora si ya me tira otro tipo de error.
Código PHP:
Ver original
  1. Notice: Undefined index: username in C:\xampp\htdocs\1\pages\registra.php on line 18
  2.  
  3. Notice: Undefined index: pw in C:\xampp\htdocs\1\pages\registra.php on line 19
  4.  
  5. Notice: Undefined index: pw1 in C:\xampp\htdocs\1\pages\registra.php on line 20
  6.  
  7. Notice: Undefined index: mail in C:\xampp\htdocs\1\pages\registra.php on line 21
  8. no hubo fetch_row

pero lo raro es que cuando pongo el username y lo repido con uno que ya puse en la base de datos, me dice que cambie el usuario, pero cuando trato de meter uno nuevo. me dice
"No hubo fetch_row",

estos errores con el codigo que me diste, los tira solo si me voy deunavez a la pagina esta registra.php , pero si introduzco los datos desde el formulario me dice "No hubo fetch_row" y no me muestra mas errores.

Gracias.
  #6 (permalink)  
Antiguo 14/01/2011, 15:11
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Login.php insertar datos de registro

imprime tu variable sql y has la consulta en tu cliente de base de datos de manera que veas si te devuelve resultados, ademas poidrias validar que si no hay resultados te de un mensaje de que no existe el usuario en vez de intentar buscar ese indice que no llega, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 14/01/2011, 15:17
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Login.php insertar datos de registro

Que tal Jesua, aparte de las recomendaciones que te dan, prueba de esta forma, arregle un poco tu código:
Código PHP:
<?php    
//include("config.php");
//datos del form
$username $_POST['username']; 
$pw $_POST['pw'];
$pw1 $_POST['pw1'];
$mail $_POST['mail'];

$db_host "localhost";
$db_username "root";
$db_pw "jesua";
$db_name "users";

//connecta mysql
$link mysql_connect($db_host$db_username,$db_pw) or die ( mysql_error());
mysql_select_db($db_name$link);

/* Primero comprovamos que no existe un usuario con el mismo login ya registrado */
$sql="SELECT * FROM miembros WHERE username = '$username'";
$result mysql_query($sql,$link) or die (mysql_error());

if (
mysql_num_rows($result) > 0){
echo 
" <br>Error Eliga otro Username";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pw != $pw1) {
echo 
"Los passwords deben coincidir<br>";
echo 
'Clica <a href="registra.php">aquí</a> para volver al formulario';
} else {
//$pw=crypt($pw, "password");
  
$pw md5($pw);
/* Encripatmos password*/

$query "INSERT INTO miembros (username, pw, mail) VALUES ('$username','$pw','$mail')";
$result mysql_query($query$link) or die (mysql_error());
if(
mysql_affected_rows($link)){
echo 
"Usuario introducido correctamente";
} else {
echo 
"Error introduciendo el usuario";
/* Cierre del else */
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */
/* Cierre del else que corresponde a if(mysql_num_rows...) */

?>

Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #8 (permalink)  
Antiguo 14/01/2011, 15:28
 
Fecha de Ingreso: septiembre-2004
Ubicación: León, Gto.
Mensajes: 80
Antigüedad: 19 años, 7 meses
Puntos: 6
Respuesta: Login.php insertar datos de registro

Hola,

Voy algo así como de paso, no me metí mucho a ver el código pero hay algo que podrías revisar...

Código PHP:
$sql="SELECT * FROM miembros WHERE username='$username'"
Cuando defines la variable de la consulta supongo que quieres pasarle el valor de $username, pero lo metes dentro de la cadena de texto (es decir entre dos ""), por lo que es probable que no la tome como variable.

Si es eso, el problema te lo debe dar el usuario y el codigo debería cambiarse por:

Código PHP:
$sql="SELECT * FROM miembros WHERE username='".$username."'"
Para concatenarle la variable.

Igual puede que esto no te genere ningún problema, pero para ir quitando posibilidades... Espero ayude en algo...
  #9 (permalink)  
Antiguo 14/01/2011, 15:39
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Login.php insertar datos de registro

Cita:
Iniciado por carlos_belisario Ver Mensaje
imprime tu variable sql y has la consulta en tu cliente de base de datos de manera que veas si te devuelve resultados, ademas poidrias validar que si no hay resultados te de un mensaje de que no existe el usuario en vez de intentar buscar ese indice que no llega, saludos
gracias por la ayuda, estube tratando, @carlojas me lo resolvio.
  #10 (permalink)  
Antiguo 14/01/2011, 15:42
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Login.php insertar datos de registro

Cita:
Iniciado por Carlojas Ver Mensaje
Que tal Jesua, aparte de las recomendaciones que te dan, prueba de esta forma, arregle un poco tu código:
Código PHP:
<?php    
//include("config.php");
//datos del form
$username $_POST['username']; 
$pw $_POST['pw'];
$pw1 $_POST['pw1'];
$mail $_POST['mail'];

$db_host "localhost";
$db_username "root";
$db_pw "jesua";
$db_name "users";

//connecta mysql
$link mysql_connect($db_host$db_username,$db_pw) or die ( mysql_error());
mysql_select_db($db_name$link);

/* Primero comprovamos que no existe un usuario con el mismo login ya registrado */
$sql="SELECT * FROM miembros WHERE username = '$username'";
$result mysql_query($sql,$link) or die (mysql_error());

if (
mysql_num_rows($result) > 0){
echo 
" <br>Error Eliga otro Username";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pw != $pw1) {
echo 
"Los passwords deben coincidir<br>";
echo 
'Clica <a href="registra.php">aquí</a> para volver al formulario';
} else {
//$pw=crypt($pw, "password");
  
$pw md5($pw);
/* Encripatmos password*/

$query "INSERT INTO miembros (username, pw, mail) VALUES ('$username','$pw','$mail')";
$result mysql_query($query$link) or die (mysql_error());
if(
mysql_affected_rows($link)){
echo 
"Usuario introducido correctamente";
} else {
echo 
"Error introduciendo el usuario";
/* Cierre del else */
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */
/* Cierre del else que corresponde a if(mysql_num_rows...) */

?>

Saludos.




@carlojas

GRACIAS MANO, SOS GRANDE!!!!!!! HAHAHA

DEBERAS ME FUNCIONO A CAVALIDAD, AHORA SOLO ME QUEDA ARREGLAR UN PAR DE COSITAS PERO ME SACASTE DE ESTE PROBLEMA QUE TENIA...

DEBERAS GRAICAS.

SI ALGO PUEDO HACER DIGAME MANO!... HAHA SALUDOS.
:apla uso::porr a:
  #11 (permalink)  
Antiguo 14/01/2011, 15:44
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Login.php insertar datos de registro

Cita:
Iniciado por idvaad Ver Mensaje
Hola,

Voy algo así como de paso, no me metí mucho a ver el código pero hay algo que podrías revisar...

Código PHP:
$sql="SELECT * FROM miembros WHERE username='$username'"
Cuando defines la variable de la consulta supongo que quieres pasarle el valor de $username, pero lo metes dentro de la cadena de texto (es decir entre dos ""), por lo que es probable que no la tome como variable.

Si es eso, el problema te lo debe dar el usuario y el codigo debería cambiarse por:

Código PHP:
$sql="SELECT * FROM miembros WHERE username='".$username."'"
Para concatenarle la variable.

Igual puede que esto no te genere ningún problema, pero para ir quitando posibilidades... Espero ayude en algo...


GRACIAS @idvaad , PROBLEMA RESUELTO EXITOS!.

Etiquetas: login, registro
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 19:40.