Problema con un login

Iniciado por Zhuikov, 22 Marzo 2013, 20:26 PM

0 Miembros y 1 Visitante están viendo este tema.

Zhuikov

Este es el codigo en cuestion

<?php

               $usuario     
=   $_POST["user"];
               
$contrasena  =   $_POST["pase"];


//conecto con la base de datos
$conn mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("americo",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql "select * from login where user='$usuario' and clave_usuario='$contrasena'";

//Ejecuto la sentencia
$rs mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){
    
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    
session_start();
    
session_register("autentificado");
    
$autentificado "SI";
    echo 
"funciona";
}else {
    
//si no existe le mando otra vez a la portada
   
echo "nofunciona";
}
mysql_free_result($rs);
mysql_close($conn);

?>







Y estoy seguro que envio los datos correctamente y me salen los siguientes errores

Call Stack
# Time Memory Function Location
1 0.0035 372336 {main}( ) ..\Administracion.php:0
2 0.0120 378632 mysql_num_rows ( ) ..\Administracion.php:21
nofunciona
( ! ) Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\Programa Americo\Administracion.php on line 32
Call Stack
# Time Memory Function Location
1 0.0035 372336 {main}( ) ..\Administracion.php:0
2 0.0127 378800 mysql_free_result ( ) ..\Administracion.php:32


Cualquier ayuda es bien agradecida

encontre la solucion y era un problema mio de base de datos  :P sin embargo de este problema si que no tengo idea que podria significar ¿hay que modificar las variables globales de off a on?

CitarWarning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0

1mpuls0

Aun así deberías validar si las variables existen y si no están vacias, además de que con js valides del lado del cliente (longitud, caracteres permitidos, etc)

Saludos
abc

Wofo

Por otro lado, para la parte de programación en PHP, es importante saber que las funciones que usas al conectarte a la base de datos están obsoletas.

Te recomiendo investigar sobre las funciones Mysqli, que por lo demás pueden ser usadas con orientación a objetos. Te dejo un link de php.net

Saludos,
Wofo.

antraXactive

mysql_free_result es obsoleto, de todas formas tu estás seguro de que la sentencia
"select * from login where user='$usuario' and clave_usuario='$contrasena'"

Te devuelve resultados? Si la ejecutas en phpmyadmin que te da? Pq mysql_free_result() te dará ese warning en caso de que no encuentre recursos, si no encuentra recursos te dará un null y por tanto fallará y tu sentencia if (mysql_num_rows($rs)!=0) se cumplirá.

Ah y revisa los sql injection