login.php (Donde ingresan sus datos por medio de un formulario... pero para eso antes verifican si esta conectado o no)
Código:
<?php
session_start();
if(isset($_SESSION["nick"]) && isset($_SESSION["pass"])){
header("Location: panel.php");
}else
{
}
?>
index.php (en la parte de menu principal donde me aparece el nombre del usuario)
Código:
<li> <b><?php
session_start();
if(isset($_SESSION["conectado"])){
echo "Bienvenido: ";
echo "<a href=panel.php>";
echo $_SESSION["nick"];} else{
echo " ";
session_destroy();
}
?></b></li>
Formulario de index.php (como uso el formulario para enviar)
Código:
<form action="loggin.php" method="post">
<label>
<div align="left">
<p class="Estilo4"><br />
<span class="Estilo5">*</span> Usuario:</p>
<p class="Estilo4"><br />
<input type="text" size="15" name="nick" onblur="this.id=''" title="Escribe tu usuario..." onkeypress="this.type='nick'" />
</p><br />
</div>
</label>
<p align="left">
<label><span class="Estilo4"><span class="Estilo5">* </span>Contraseña: <br />
<br />
<input type="password" size="15" name="pass" onkeypress="this.type='pass''password'" />
<br />
</span>
<!--label class="checkbox"
input type="checkbox" name="transporte" value="1">Recuerda mis datos /input>
/label-->
<br />
<input class="btn btn-large btn btn-info" type="submit" name="enviar" value="Iniciar Sesión" />
</label>
</form>
loggin.php (Como verifica el inicio de session si existe o no)
Código:
<?php
include("conexion.php");
//header("Location: index.php")
$user=$_SESSION["nick"]=$_POST["nick"];
$pass=$_SESSION["pass"]=$_POST["pass"];
$sql="SELECT id FROM usuarios WHERE nick='".$_SESSION["nick"]."'and pass='".$_SESSION["pass"]."'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
if ($row){
header("Location: panel.php");
}else{
header("Location: error.php");
}
?>
panel.php (En donde se encuentra el panel del administrador)
Código:
<?php
include ("conexion.php");
if(!$_SESSION["nick"] || !$_SESSION["pass"]){//vemos si está declarada la variable, pero no en el index.
header('Location: login.php');
}else{
$user = $_SESSION["nick"];
$pass = $_SESSION["pass"];
}
?>
error.php (En caso de que la contraseña se encuentren incorrectos)
Código:
<?php
session_start();
if(isset($_SESSION["nick"]) && isset($_SESSION["pass"])){
header("Location: panel.php");
}else
{
}
?>
No existen problemas con (Cuando no hago ningun intento de inicio de sesion):
*Cuando intento entrar a panel.php no me deja entrar y me redirecciona a login.php donde se encuentra el formulario para iniciar sesion
*Cuando estoy en index.php no me aparece ningun error y me comprueba que no existe ninguna conexion alguna
Problemas que quiero solucionar (Cuando hago un inicio de sesion fallido osea que no existe el usuario ni contraseña):
*En index.php me aparece el Bienvenido: "usuario que no existe"
*Cuando le doy click cuando solo me escribe el nombre me aparece: La página no se está redireccionando apropiadamente. Firefox detectó que el servidor está redirigiendo la solicitud para esta dirección en un modo que nunca se completará. Este problema puede estar pasando por haber deshabilitado las cookies. Esto es porque en el momento que la pagina lo envia a error.php este porque agarra los valores del formulario apesar de que sean incorrectos los toma como correctos lo que quiero es que tome los valores que realmente existen en mi base de datos
*Cuando le quito el ciclo para evitar el error de arriba, me toma el valor que le di en el formulario apesar de que el usuario ni si quiera exista, cuando lo que quiero es evitar eso, por que si ando en index.php este me aparece el mensaje de bienvenido "nombre de usuario inexistente" y me deja entrar al panel cuando no quiero que suceda esto.
Mi conexion es la siguiente:
conexion.php
Código:
<?php
session_start();
$conex = 0;
if ($conex == 0) {
$servidorc = 'localhost';
$basec = 'foraneo';
$usuarioc = 'root';
$contrasenac = '';
};
if ($conex == 1) {
$servidorc = "localhost";
$usuarioc = "usuario";
$contrasenac = "contraseña";
$basec = "base";
};
$con = mysql_connect($servidorc, $usuarioc, $contrasenac);
/* Hacemos condicion para saber si la conexion se ha realizado con exito */
if (!$con) {
echo('No se puede conectar' . mysql_error()); //con esto "cachamos el error" para no caer abruptamente.
} else {
// echo " Se Conecto correctamente";
}
$db_selected = mysql_select_db($basec, $con); //Aqui ponemos como primer parametro el nombre de la bd y el segundo parametro ponemos el nombre de la variable en donde guardamos la conexión
if (!$db_selected)
{
die ("No puede conectarse a la base de datos : " . mysql_error());//con esto "cachamos el error" para no caer abruptamente.
}
else{
//echo "Se ha conectado correctamente a la base de datossssssssssssssss";
}
?>