Tema destacado: Únete al Grupo Steam elhacker.NET
Autor
|
Tema: problemas con session_start() (CERRADO) (Leído 1,071 veces)
|
Zeroql
Desconectado
Mensajes: 940
Todo lo k sucede sucede por una razon
|
Buenas, muchachos como estan, bueno tengo este code: validacion de usuarios <?php session_start(); //datos para establecer la conexion con la base de mysql. mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error()); mysql_select_db('agsiscom')or die ('Error al seleccionar la Base de Datos: '.mysql_error()); //Caracteres no permitidos function quitar($mensaje) { $nopermitidos = array("'",'\\','<','>',"\""); $mensaje = str_replace($nopermitidos, "", $mensaje); return $mensaje; } if(trim($HTTP_POST_VARS["user"]) != "" && trim($HTTP_POST_VARS["pass"]) != "") { // Puedes utilizar la funcion para eliminar algun caracter en especifico //$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"])); //$password = $HTTP_POST_VARS["password"]; // o puedes convertir los a su entidad HTML aplicable con htmlentities $usuario = strtolower(htmlentities($HTTP_POST_VARS["user"], ENT_QUOTES)); $password = $HTTP_POST_VARS["pass"]; $resultado = mysql_query('SELECT nuser, pass FROM users WHERE nuser=\''.$usuario.'\''); if($row= mysql_fetch_array($resultado)){ if($row["pass"] == $password){ $_SESSION["k_username"] = $row['user']; $_SESSION["k_typeuser"]=$row['type']; ?> <script language="javascript"> alert("Usuario identificado correctamente"); location.href="admin.php"; </script> <?php }else{ ?> <script language="javascript"> alert("Contraseña incorrecta"); location.href="index.php"; </script> <?php } }else{ ?> <script language="javascript"> alert("Usuario inexistente."); location.href="index.php"; </script> <?php } mysql_free_result($result); }else{ ?> <script language="javascript"> alert("Debe espeficicar un usuario y una contraseña"); location.href="index.php"; </script> <?php } mysql_close(); ?> admin.php <?php session_start(); if ($_SESSION['k_username']) { if ($_SESSION["k_typeuser"]=='admin'){ $mcount="adm/counts.php"; $mproducts="adm/products.php"; $mlogout="logout.php"; $moferts="adm/oferts.php"; $mnews="adm/news.php"; $resultsession='<h2>Sesion:' .$_SESSION['k_username']. '!</h2> <p class=\"color1\">Por favor escoja una de las siguientes operaciones a realizar.</p> <p class=\"color1\"> </p> <p class=\"color1\"><a href="adm/news.php">Agregar novedades</a></p> <p class=\"color1\"><a href="adm/offerts.php">Modificar ofertas</a></p> <p class=\"color1\"><a href="adm/products.php">Administrar productos</a></p> <p class=\"color1\"><a href="adm/counts.php">Modificar cuentas</a></p> <p class=\"color1\"><a href="mail.agsiscom.com">Ver correo electronico</a></p>'; } else{ $mcount="mensaje();"; $mproducts="mensaje();"; $mlogout="mensaje();"; $moferts="mensaje();"; $mnews="mensaje();"; $resultsession="<h2>Sesion incorrecta!</h2> <p class=\"color1\">Lo sentimos, la sesion actual no tiene permisos para acceder a esta area de la pagina.</p> <p class=\"color1\">Por favor cierre la sesión actual y a continuación entre com una cuenta de administrador</p> <p class=\"color1\"> </p>"; } } else { $mcount="mensaje();"; $mproducts="mensaje();"; $mlogout="mensaje();"; $moferts="mensaje();"; $mnews="mensaje();"; $resultsession="<h2>Debe iniciar sesion primero!</h2> <p class=\"color1\">Para acceder a la administracion de productos,ofertas, cuentas y de la pagina en general debe iniciar sesion como administrador.</p> <p class=\"color1\">Para ello ingresa tu nombre de usuario y contraseña en el formulario de abajo.</p> <p class=\"color1\"> </p><article class=\"col2 pad_left1\"> <h2>Inicio de sesion</h2> <form id=\"ContactForm\" name= \"login\" action=\"valida.php\" method=\"post\"> <div> <div class=\"wrapper\"><br /> </div> <div class=\"bg\"> <input type=\"text\" name=\"user\" class=\"input3\"/> </div> Usuario:<br /> </div> <div class=\"wrapper\"> <div class=\"bg\"> <input type=\"password\" name=\"pass\" class=\"input3\" /> </div> Contraseña:<br /> </div> <div class=\"wrapper\"><br/> </div> <input type=\"submit\" name=\"submit\" class=\"button2\" value=\"Entrar\" > <input type=\"reset\" name=\"clean\" class=\"button2\" value=\"limpiar\" onClick=\"cleanform\"> </form> </article>"; } ?> Bueno resulta que en admin.php no me esta tomando los datos de session_start(); me sale siempre es la ultimap arte del else. me pueden decir que estoy haciendo mal???? o por que nome da??? saludos
|
|
|
|
« Última modificación: 12 Junio 2011, 15:17 por Zeroql »
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
Shell Root
Desconectado
Mensajes: 2.456
Alex Jurado
|
Que quieres decir con, if ($_SESSION['k_username']) {
|
|
|
|
|
En línea
|
 ---
|
|
|
WHK
吴阿卡
Ex-Staff
Desconectado
Mensajes: 4.113
The Hacktivism is not a crime
|
Hola, en ves de usar $HTTP_POST_VARS utiliza $_POST porque en algunas configuraciones de servidores dan problemas con superglobales antiguas. Después si aun no resulta prueba poniendo print_r($_SESSION) al principio del script después de session_start() para que puedas ver si es la sesión o tu script el que está fallando. Yo apuesto a que el problema está cuando declara el valor, lo mas probable es que no esté declarando bién el nombre de usuario. //Caracteres no permitidos function quitar($mensaje) { $nopermitidos = array("'",'\\','<','>',"\""); $mensaje = str_replace($nopermitidos, "", $mensaje); return $mensaje; } Que tal si mi nombre de usuario tiene una comilla como por ejemplo marco's para eso ya exste una función llamada mysql_real_escape_string(); además no necesitas escapar comillas dentro de la query, puedes usar comillas dobles: $resultado = mysql_query('SELECT nuser, pass FROM users WHERE nuser="'.mysql_real_escape_string($_POST['user']).'" limit 1');y htmlentities no te va a salvar de una inyección sql como los saltos de linea y retorno de carácter como el \x1a y el \x0d, para eso está el mysql real escape string, además mysql no es case sensitive asi que está demás el strtolower(). El limit 1 se pone siempre por costumbre para que el sistema funcione mejor debido a que te daría problemas si hay dos registros con el mismo nombre por algún motivo como por ejemplo migración de base de datos. mysql_free_result($result); Según tu script es "resultado" no "result" La próxima ves intenta por favor no escribir los títulos de mensajes con mayusculas porque casi me dejaste sordo. Saludos.
|
|
|
|
« Última modificación: 10 Junio 2011, 03:47 por WHK »
|
En línea
|
|
|
|
Zeroql
Desconectado
Mensajes: 940
Todo lo k sucede sucede por una razon
|
WHK gracias por tu aporte, mejore algunas cositas, pero te cuento que use esta misma funcion de session_start en otr proyecto y funciona de maravilla, realmente me extraña el saber por k no funciona bien en esta pagina.
esta tal cual el proyecto anterior. al igual mejore algunas de tus recomendaciones y no funciona bien.
PD: ya arregle el titulo, jeje que pena me pase con el grito. no me habia dado cuenta que estaba ne mayus xD
saludos
|
|
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
WHK
吴阿卡
Ex-Staff
Desconectado
Mensajes: 4.113
The Hacktivism is not a crime
|
A mi me ha pasado que en algunas veces te equibocas de codificación de archivo y aparece un pequeño carácter raro al comienzo de tu script y esto se debe a que este carácter define si tu script está escrito en utf-8 o no, en ese caso puede no estar haciendo efecto el session_start() ya que hay que recordar que envía un header al cliente cosa que no puede hacer si ya se ha enviado buffer antes.
Tienes los errores habilitados? error_reporting(all)
|
|
|
|
|
En línea
|
|
|
|
Zeroql
Desconectado
Mensajes: 940
Todo lo k sucede sucede por una razon
|
eso mismo estaba mirando yo en otros post. uso dreamweaver para esto pero mejor no me confio y lo paso a otro codificador a ver si es eso... gracias estare avisando que sucede
|
|
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
WHK
吴阿卡
Ex-Staff
Desconectado
Mensajes: 4.113
The Hacktivism is not a crime
|
Ya encontré el error: $_SESSION["k_typeuser"]=$row['type']; No hay columna type ya que en tu query de sql solamente seleccionaste user y pass: $resultado = mysql_query('SELECT nuser, pass FROM users WHERE nuser=\''.$usuario.'\'');Lo solucionas seleccionando todo con * y ya. Hize un par de arreglos en tu script porque le encontré como 3 errores mas como por ejemplo lo del free_result y un xss en : $resultsession='<h2>Sesion:' .$_SESSION['k_username']. '!</h2> En ese caso se usa htmlspecialchars. <?php session_start(); /* Login */ if(!$handle_sql = mysql_connect('localhost','root','')) die('Ha fallado la conexión'); if(!mysql_select_db('agsiscom')) die('Error al seleccionar la Base de Datos'); if(isset($_POST['user']) and isset($_POST['pass'])){ $resultado = mysql_query('select * from users where nuser = "'.mysql_real_escape_string($_POST['user']).'" limit 1'); if($row = mysql_fetch_array($resultado, MYSQL_ASSOC)){ @mysql_free_result($resultado); if($row['pass'] == $_POST['pass']){ $_SESSION['k_username'] = $row['user']; $_SESSION['k_typeuser'] = $row['type']; /* !!! select * entrega type */ header('location: '.str_replace(array("\x0d", "\x0a"), '', $_SERVER['PHP_SELF'])); }else $status['error'] = 'Contraseña incorrecta.'; }else $status['error'] = 'Usuario inexistente.'; } mysql_close(); /* Start content */ if($_SESSION['k_username']){ if($_SESSION["k_typeuser"] == 'admin'){ ?> <h2>Sesion: <?php echo htmlspecialchars($_SESSION['k_username'], ENT_QUOTES); ?>!</h2> <p class="color1">Por favor escoja una de las siguientes operaciones a realizar.</p> <p class="color1"> </p> <p class="color1"><a href="news.php">Agregar novedades</a></p> <p class="color1"><a href="offerts.php">Modificar ofertas</a></p> <p class="color1"><a href="products.php">Administrar productos</a></p> <p class="color1"><a href="counts.php">Modificar cuentas</a></p> <p class="color1"><a target="_blank" href="http://mail.agsiscom.com/">Ver correo electronico</a></p> <?php }else{ ?> <h2>Sesion incorrecta!</h2> <p class="color1">Lo sentimos, la sesion actual no tiene permisos para acceder a esta area de la pagina.</p> <p class="color1">Por favor cierre la sesión actual y a continuación entre com una cuenta de administrador</p> <?php } }else{ ?> <h2>Debe iniciar sesion primero!</h2> <p class="color1">Para acceder a la administracion de productos,ofertas, cuentas y de la pagina en general debe iniciar sesion como administrador.</p> <p class="color1">Para ello ingresa tu nombre de usuario y contraseña en el formulario de abajo.</p> <p class="color1"> </p><article class="col2 pad_left1"> <h2>Inicio de sesion</h2> <form id="ContactForm" name= "login" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post"> <div> <div class="wrapper"><br /></div> <div class="bg"> <input type="text" name="user" class="input3"/> </div> Usuario:<br /> </div> <div class="wrapper"> <div class="bg"> <input type="password" name="pass" class="input3" /> </div> Contraseña:<br /> </div> <div class="wrapper"><br/></div> <input type="submit" name="submit" class="button2" value="Entrar" > <input type="reset" name="clean" class="button2" value="limpiar" onClick="cleanform"> </form> <?php } ?> Saludos.
|
|
|
|
« Última modificación: 10 Junio 2011, 04:38 por WHK »
|
En línea
|
|
|
|
Zeroql
Desconectado
Mensajes: 940
Todo lo k sucede sucede por una razon
|
oye muchas gracias!!!!! xD estaba mirando lo del sistema utf-8 y aun asi no me daba, voy a probar con tu solucion, aun asi te agradezco enormemente...
|
|
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
Zeroql
Desconectado
Mensajes: 940
Todo lo k sucede sucede por una razon
|
WHK acabo de probar tu solucion y no me trajo ningun resultado!!!
el problema es que ahora estoy pensado que es el sistema de uso para probaro, uso appserv 2.5.5 con MySQL Database Version 5.0.16 y phpMyAdmin Database Manager Version 2.6.4-pl4
tiene que ver esto?
por que ya pase todos los archivos de la pagina a utf-8 muchos estaban en ANSI.
la verdad esto es ya molesto que no funcione, acabo de correr un archivo anterior donde use esto mismo y funciona de maravilla!!!!
AYUDA!!!!!!
|
|
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
WHK
吴阿卡
Ex-Staff
Desconectado
Mensajes: 4.113
The Hacktivism is not a crime
|
instala xampp
|
|
|
|
|
En línea
|
|
|
|
Zeroql
Desconectado
Mensajes: 940
Todo lo k sucede sucede por una razon
|
Buenas. bueno ya instale el xampp, gracias por este server, lo veo mas completo pero ahora tengo estos problemas: 1 cuando ejecuto el archivo pagina el que contiene lo del formulario y eso me dice esto: Notice: Undefined index: k_username in C:\xampp\htdocs\agsiscom\admin.php on line 2 y ahi tengo esto: <?php session_start(); if ($_SESSION['k_username']) { if ($_SESSION["k_typeuser"]=='admin'){ lo otro es que cuando salgo a validar los usuarios me salta el siguiente error: $_SESSION["k_username"] = $row['user']; que sucede???
|
|
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
Zeroql
Desconectado
Mensajes: 940
Todo lo k sucede sucede por una razon
|
YA arregle el problema!!! estaba mal definido lo siguiente:
$_SESSION["k_username"] = $row['user'];
deberia ser:
$_SESSION["k_username"] = $row['nuser'];
al igual tambien tenia errores de server ya tampoco me reconocia algunas lineas y no pasaba del sistema de conexion bien.
GRACIAS A TODOS POR SU COLABORACION!!!
|
|
|
|
|
En línea
|
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo. /.-ZEROQL.-\ ----- #937675#
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
session_start(): Cannot send session cache limiter - headers already sent
PHP
|
Casidiablo
|
7
|
6,326
|
6 Noviembre 2007, 22:22
por SirLanceCC
|
|
|
¡¡El gobierno reconoce que hay crisis!! cerrado el cerrado? xD
« 1 2 »
Foro Libre
|
BenRu
|
20
|
2,058
|
22 Julio 2008, 17:09
por -HadeS-
|
|
|
Problemas con SMTP, Puerto Cerrado.
Hacking Básico
|
elpiratalous
|
8
|
1,697
|
1 Junio 2009, 02:31
por TRICKY
|
|
|
session_start() [php]
PHP
|
Ari Slash
|
2
|
2,128
|
17 Diciembre 2009, 21:29
por Ari Slash
|
|
|
php - session_start , problemillas
Desarrollo Web
|
Neibar
|
4
|
147
|
3 Mayo 2012, 20:02
por Neibar
|
|