Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/06/2008, 06:35
sub7
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Sesiones, que pasa?

Cita:
Iniciado por elphaba Ver Mensaje
Hola, despues de haber leido mogollon de temas en el foro sobre las sesiones sigo sin poder resolver mi problema, por eso lo pongo aqui con la esperanza de que uds. me puedan ayudar.

aplicacion Cliente - servidor

1. (Cliente)Tengo una pagina que pide user y pass, llamada index.html
en ella pongo arriba del todo
<?php
session_start();
?>
despues el formulario para pedir los datos que dije.
Así no te va a funcionar en la vida, eso de primeras y luego... ya respondi a eso en otro post (POR MOTIVOS DE ANTI-SPAM NO PUEDO PONER EL LINK AL POST, ASI QUE TE DEJO EL CODIGO.)


LOGIN.HTML
Código HTML:
<form name="formu" action="login.php" method="post">
<table bgcolor="#DADADA" border="0" cellpadding="1" cellspacing="1" align="center">
	<tr>
		<td bgcolor="#CCCCCC" align="center" colspan="2">
			<b>LOGIN</b>
		</td>
	</tr>
	<tr>
		<td align="right">
			<b>Usuario:</b>&nbsp;
		</td>
		<td align="left">
		<input type="text" maxlength="10" name="usu_form">&nbsp;
		</td>
	</tr>
	<tr>
		<td align="right">
			&nbsp;<b>Pasword:</b>&nbsp;
		</td>
		<td align="left">
		<input type="password" maxlength="10" name="pass_form">&nbsp;
		</td>
	</tr>
	<tr>
		<td colspan="2" align="center">
		<input type="submit" value="L O G I N">
		</td>
	</tr>
	<tr>
		<td align="center" colspan="2">
			&nbsp;¿No estas registrado? <a href="registro.html"><font color="#000000"><b>REGISTRATE</b></font></a>&nbsp;
		</td>
	</tr>
</form>
</table> 
LOGIN.PHP
Código HTML:
<?
# INICIAMOS LA SESSION
session_start();
session_name('permiso');
# NOS CONECTAMOS AL SERVIDOR
$conexion=mysql_connect("localhost","root","")
					or die("Error en la lina: ".__LINE__." de tu codigo.<br>El motivo del error es: ".mysql_error()."<br>En conclusion: No se ha podido conectar al servidor.");

# USAMOS LA BDD
$use = mysql_select_db("free",$conexion)
	or die("Error en la linea: ".__LINE__." de tu codigo.<br>El motivo del error es: ".mysql_error()."<br>En conclusion: No se ha podidos usar la BDD free.");	

# HACEMOS LA CONSULTA
$sql = "SELECT permiso, alias, passwd, permitido
		FROM usuario
		WHERE alias = '".$_POST['usu_form']."'";

$valores=mysql_query($sql)
	or die("Error en la linea: ".__LINE__." de tu codigo.<br>El motivo del error es: ".mysql_error()."<br>En conclusion: No se ha realizado la consulta");			

$registro=mysql_fetch_array($valores);

# COMPROBAMOS DATOS
$nick=$registro['alias'];
$passwd=$registro['passwd'];
$nick_form=$_POST['usu_form'];
$passwd_form=$_POST['pass_form'];
$permitido=$registro['permitido'];

# SESSION
$_SESSION["permiso_s"] = $registro['permiso'];

if ($nick_form==$nick && $passwd_form==$passwd){
	if ($_SESSION["permiso_s"]=="1"){
?>
	<script language="JavaScript">
		location.href="zona2.php";
	</script>
<?
}
	if ($_SESSION["permiso_s"]=="3"){
?>
	<script language="JavaScript">
		location.href="zona2.php";
	</script>
<?
}
	if ($_SESSION["permiso_s"]=="2" && $permitido=="2"){
?>
	<script language="JavaScript">
		alert('A espensas de permisos del administrador')
		location.href="home.html";
	</script>
<?
	}
	if ($_SESSION["permiso_s"]=="2"){
	?>
	<script language="JavaScript">
		location.href="zona.php";
	</script>
<?
	}
}
if ($nick_form!=$nick || $passwd_form!=$passwd){
session_destroy();
$url="Location:login.html";
header($url);	
?>
	<script language="JavaScript">
		location.href="login.html";
	</script>
<?
}
if ($nick_form=="" || $passwd_form==""){
?>
	<script language="JavaScript">
		location.href="login.html";
	</script>
<?
}
?> 
Por cierto, tambien te dejo el LOGOUT.PHP
Código HTML:
<?
session_start();
$_SESSION["permiso_s"];
$_SESSION=array();
session_destroy();
$url="Location:home.html";
header($url);
?> 
PD: Con el maxlength="10" no sirve la inyeccion SQL, ya que son 11 caracteres.


Espero que te sirva de ayuda.
Un saludo