elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problemas con verificacion de inicio de session (PHP)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con verificacion de inicio de session (PHP)  (Leído 3,879 veces)
¡Micronet!

Desconectado Desconectado

Mensajes: 159



Ver Perfil
Problemas con verificacion de inicio de session (PHP)
« en: 22 Abril 2012, 05:20 am »

Tengo siguientes clausualas de php en su correspondiente archivo:

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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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";
}

?>


« Última modificación: 22 Abril 2012, 05:23 am por ¡Micronet! » En línea


"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problemas con verificacion de inicio de session (PHP)
« Respuesta #1 en: 29 Abril 2012, 04:11 am »

no entendi mucho XD el post es como que un poco largo y se me hizo un pelo dificl entender el problema...

pero 1 en loggin primero chequea si existen con isset a los posts, te recomiendo nunca usar directamente las variables de usr y pass sobre la base de datos XD es la forma mas facil para inyectar codigo XD

pide solo el usuario, y en vez de ver si $row existe comprueba si para ese usuario esa contraseña es correcta, tambien podrias dar echo a mysql_error() para ver si hubo un error en la db

si no te sirve, sintetiza el error en una idea clara XD y vuelvo a revisar a ver si te puedo ayudar


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
2 problemas, header y session
PHP
Ferсhu 3 2,056 Último mensaje 27 Diciembre 2007, 06:20 am
por Ferсhu
[DUDA]Como inicio session segura en el foro?
Sugerencias y dudas sobre el Foro
wACtOr 6 4,152 Último mensaje 1 Diciembre 2010, 02:42 am
por Carloswaldo
Problemas con la función session en php
PHP
ramon123099 6 4,062 Último mensaje 27 Agosto 2017, 18:52 pm
por ramon123099
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines