Algo de php

jueves, junio 18, 2009

Es esto es solo algo basico con respecto al uso de sesiones, consultas en a bases de datos (MySQL), el codigo es una recopilacion de lo que encontre en Internet, no es totalmente mio, salvo algunas modificaciones, por lo que si alguien reconoce parte del codigo como suya, mi correo esta disponible para asi entonces respetar la fuente mail: azhagthott@gmail.com

Empesamos con el codigo:

/*
Este es el archivo de configuracion que estable la conexion hacia la base de datos de
creada en mysql,
*/
<?php
$db_host='localhost'; //para conexion local
$db_user='root'; //administrador de mysql
$db_passwd='**********'; //password del administrador de mysql
$db='db_users'; //nombre de la base de datos
$conn = mysql_connect($db_host, $db_user, $db_passwd) or die(mysql_error()); //conexion
mysql_select_db($db) or die(mysql_error());
?>

/*
el inicio de sesion: todas las paginas que estan a continuacion del login en las que es
necesario validar la sesion deben ir con este codigo
*/

<?php session_start(); ?>
<?php
include('config/config.php');
mysql_connect($db_host, $db_user, $db_passwd);
mysql_select_db($db) or die (mysql_error());
if (!(isset($_SESSION['s_username']))) {
echo '<HEAD>
<SCRIPT language="JavaScript1.1">
location.replace("login.php");
</SCRIPT>
</HEAD>';
}
?>

/*
basicamente lo que hace es que si no sea ha inicioado la sesion, se redirecciona al
usuario a login.php.
En la linea 1º: aparece escrito de esta manera para solucionar
este problema: Warning: session_start() [function.session-start]: Cannot send
session cache limiter - headers already sent

Pero para que alguien pueda iniciar sesion se necesita lo mas importante: el "login", por defecto el servidor mostrará siempre primero el documento que se llame index, ya sea .htm, html, php etc... por lo tanto en este ejemplo para poder llegar a login.php la sesion no debio ser iniciada
*/
<?php
if ($_POST['username']){
$username= $_POST['username'];
$password= $_POST['password'];
if ($password == NULL){
echo '<script>alert("password en blanco, no permitido")</script>';
}else{
$query= mysql_query("SELECT * FROM tbl_users WHERE username = '$username'") or die(mysql_error());
$data= mysql_fetch_array($query);
if (($data['password'])!= md5($password)){
echo '<script>alert("login incorrecto")</script>';
}else{
$query= mysql_query("SELECT * FROM tbl_users WHERE username = '$username'") or die(mysql_error());
$row= mysql_fetch_array($query);
$_SESSION['s_username']=$row['username'];
$_SESSION['s_level']=$row['level'];
echo '<HEAD>
<SCRIPT language="JavaScript1.1">
location.replace("index.php");
</SCRIPT>
</HEAD>';
}
}
}
?>

/*
que es lo que esto hace:
1º valida que la variable "username" haya sido enviada
2º valida que el campo de password no este en blanco al momento de enviar las variables
3º luego ejecuta la consulta sql y busca la coinsidencia con "username"
4º compara que la password enviada coinsida con la password que esta encriptada en la db
*/

para descargar el codigo completo: click aqui (rapidshare)