Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] no se donde esta el problema

Estas en el tema de no se donde esta el problema en el foro de PHP en Foros del Web. Je, hola. Estoy un poco mareado con esto, debe ser que estoy muchas horas trabajando... en fin... Estoy tratando de resolver un problema. El tema ...
  #1 (permalink)  
Antiguo 09/10/2013, 17:12
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Pregunta no se donde esta el problema

Je, hola. Estoy un poco mareado con esto, debe ser que estoy muchas horas trabajando... en fin... Estoy tratando de resolver un problema.
El tema es asi, tengo una tabla llamada usuarios y otra notas. Como ya sabran las notas corresponde a cada usuario. Entoces mi cliente me pide que en una pagina sola se pueda loguear y al mismo tiempo ver los listados. Pondria el pas de cada usuario y chequea sus notas.

Bien, donde esta el problema? el problema es cuando pongo hola "pepe" y pepe no aparece y tampoco el listado, pero al poner el pass del usuario entra prerfectamente.

Código PHP:
<?php 

include('../connn.php'); 
session_start();

if(
$_POST['enviar'])
{
    if(
$_POST['user'])
    {
        
$sql "SELECT * FROM usuarios WHERE pass='".$_POST['user']."'";
        
$res mysql_query($sql$con) or die(mysql_error());
        
$tot mysql_num_rows($res);
            if(
$tot 0)
            {
                
$_SESSION['logueado'] = "SI";
                
$_SESSION['usuario']  = $_POST['nombre'];
            } else 
            {
                echo 
"Usuario incorrecto";
            }
    }
}
?>
<?php 
if($_SESSION['logueado'] == "SI"){ ?>

<?php
$sql 
"SELECT * FROM notas WHERE users='".$_SESSION['usuario']."'";
$res mysql_query($sql$con) or die(mysql_error());
//$tot = mysql_num_rows($res);
?>
<a href="cerrar.php">Cerrar sesion</a><br /><br />
Hola <?=$_SESSION['usuario']?>

<?php
while ($fila mysql_fetch_array($res)){ 

?>
<?=$fila
['pr_id']?><?php echo $fila['titulo']; ?><
<?php
}
mysql_close();
?>


<?php } else { ?>
<form method="post" action="" >
<br/><br/>
Nombre de usuario:<br/>
<input type="text" name="user"/><br/><br/>
<input type="submit" name="enviar" value="Loguearse"/>
</form>
<?php ?>
__________________
Zreep
  #2 (permalink)  
Antiguo 09/10/2013, 19:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: no se donde esta el problema

Me parece que no estás eligiendo el campo adecuado para la consulta:

Cita:
$sql = "SELECT * FROM usuarios WHERE pass='".$_POST['user']."'";
Aparte, te cuento que la librería mysql ya es obsoleta y deberías cambiar lo más pronto posible a mysqli o, mejor aún, PDO, con lo que también solucionarías muchos de los riesgos de seguridad por falta de validación y preparación de datos, claro, si programas correctamente.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 10/10/2013, 17:00
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: no se donde esta el problema

Gracias triby, pero esa el la idea.... por otro lado pude hacer que diga "Hola usuario", solo tenia que hacer un "mysql_fetch_array"

Código PHP:
$fila mysql_fetch_array($res);...... y despues

$_SESSION
['usuario']  = $fila['nombre']; 
Y como resultado digo

Código PHP:
Hola <?=$_SESSION['usuario']?>
Y me da, hola pepe.

Pero no logro que me traiga los datos del usuario todabia. Ah, si se que mysql esta obsoleta.... despues cambio todo. Gracias
__________________
Zreep
  #4 (permalink)  
Antiguo 10/10/2013, 18:39
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: no se donde esta el problema

Y acá donde esta el error?


Código PHP:
if($_SESSION['logueado'] == "SI"){
?>
<a href="cerrar.php">Cerrar sesion</a><br /><br />
Hola <?=$_SESSION['usuario']?>
Código PHP:
$users $_SESSION['usuario'];
$cons  "SELECT * FROM notas WHERE users='".$users."'";
$resul mysql_query($cons);

while (
$filas mysql_fetch_array($resul)){ 
Código:
titulo: <?php echo $filas['titulo']; ?>
Código PHP:
<?php
}
mysql_close();
?>
__________________
Zreep
  #5 (permalink)  
Antiguo 10/10/2013, 18:57
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: no se donde esta el problema

Hola, te recomiendo siempre hacer una revision de errores en tu codigo, avanzaras más rápido.

http://www.php.net/manual/es/languag...structures.php
http://php.net/manual/es/function.mysql-error.php

Usa
if(...){
....
}else{
echo 'NO SE CUMPLIO LA CONDICION';
}

Saludos
  #6 (permalink)  
Antiguo 10/10/2013, 19:21
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: no se donde esta el problema

Pero ni el error me dice:

Código PHP:

<?php
if($_SESSION['logueado'] == "SI"){
?>
<a href="cerrar.php">Cerrar sesion</a><br /><br />
Hola <?=$_SESSION['usuario']?>

<?php

$users 
$_SESSION['usuario'];
$cons  "SELECT * FROM notas WHERE users='".$users."'";
$resul mysql_query($cons,$con) or die(mysql_error());

while (
$filas mysql_fetch_array($resul)){

$titulo $filas['titulo'];
?>

titulo: <?php echo $titulo?>
<?php
}
mysql_close();
?>

<?php } else { ?>
<form method="post" action="" >
<br/><br/>
Nombre de usuario:<br/>
<input type="text" name="user"/><br/><br/>
<input type="submit" name="enviar" value="Loguearse"/>
</form>
__________________
Zreep
  #7 (permalink)  
Antiguo 10/10/2013, 19:29
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: no se donde esta el problema

Hola.

Ojo.
Aqui tú asumes que obtendras por lo menos un resultado.

Código PHP:
Ver original
  1. $resul = mysql_query($cons,$con) or die(mysql_error());
  2. //aquí debes revisar si tienes algun resltado.
  3. while ($filas = mysql_fetch_array($resul)){
  4.  
  5. }

Revisa esto.
http://www.php.net/manual/es/functio...l-num-rows.php

Saludos.
  #8 (permalink)  
Antiguo 10/10/2013, 19:46
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: no se donde esta el problema

Si pongo mysql_num_rows me dice 0 filas... osea que hay algo que no esta llamando. Tambien lo probe con mysqli y pasa lo mismo, no tengo resultados...

Ya estoy muy mareado y no veo el error
__________________
Zreep
  #9 (permalink)  
Antiguo 11/10/2013, 02:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: no se donde esta el problema

Cita:
Iniciado por Triby Ver Mensaje
Me parece que no estás eligiendo el campo adecuado para la consulta:

Cita:
$sql = "SELECT * FROM usuarios WHERE pass='".$_POST['user']."'";
Nota: El cambio en el tamaño de fuente (aparte de los colores) es para tratar de hacer aún más evidente mi comentario.
Cita:
Iniciado por zreep Ver Mensaje
Gracias triby, pero esa es la idea...
Estás seguro que esa es la idea?

Yo creo que crear un campo user en el formulario para compararlo con pass en la consulta ya se presta a errores o, cuando menos, a malinterpretaciones.

Aparte, si dices que la cosa funciona correctamente cuando pones la contraseña en vez del nombre de usuario hace que algo huela mal ahí... o tú qué opinas?
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 11/10/2013, 14:21
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: no se donde esta el problema

Gracias Triby, pero eso no me da error... la idea del cliente es poner la contraseña de uno de sus empleados y ver sus notas o evoluciones. Por eso es que pass tiene que ser igual a $_post....

Por otro lado el sistema esta andando bien, ya solucione el problema que era que no habia cerrado bien los paréntisis en lugar correcto... No me habia dado cuenta de eso.

Gracias Triby y Erick_MD9....
__________________
Zreep

Etiquetas: mysql, select, sql, tabla, 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 18:54.