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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  problemas con session_start() (CERRADO)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: problemas con session_start() (CERRADO)  (Leído 5,582 veces)
Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
problemas con session_start() (CERRADO)
« en: 10 Junio 2011, 01:02 am »

Buenas, muchachos como estan,
bueno tengo este code:

validacion de usuarios

Código
  1. <?php session_start();
  2.  
  3. //datos para establecer la conexion con la base de mysql.
  4. mysql_connect('localhost','root','')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
  5. mysql_select_db('agsiscom')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  6.  
  7. //Caracteres no permitidos
  8. function quitar($mensaje)
  9. {
  10.    $nopermitidos = array("'",'\\','<','>',"\"");
  11.    $mensaje = str_replace($nopermitidos, "", $mensaje);
  12.    return $mensaje;
  13. }    
  14.  
  15.  
  16. if(trim($HTTP_POST_VARS["user"]) != "" && trim($HTTP_POST_VARS["pass"]) != "")
  17. {
  18.    // Puedes utilizar la funcion para eliminar algun caracter en especifico
  19.    //$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
  20.    //$password = $HTTP_POST_VARS["password"];
  21.  
  22.    // o puedes convertir los a su entidad HTML aplicable con htmlentities
  23.    $usuario = strtolower(htmlentities($HTTP_POST_VARS["user"], ENT_QUOTES));  
  24.    $password = $HTTP_POST_VARS["pass"];
  25.  
  26.    $resultado = mysql_query('SELECT nuser, pass FROM users WHERE nuser=\''.$usuario.'\'');
  27.    if($row= mysql_fetch_array($resultado)){
  28.        if($row["pass"] == $password){
  29. $_SESSION["k_username"] = $row['user'];
  30. $_SESSION["k_typeuser"]=$row['type'];
  31. ?>
  32.            <script language="javascript">
  33. alert("Usuario identificado correctamente");
  34. location.href="admin.php";
  35. </script>
  36.            <?php
  37.        }else{
  38.            ?>
  39.            <script language="javascript">
  40. alert("Contraseña incorrecta");
  41. location.href="index.php";
  42. </script>
  43.            <?php
  44.        }
  45.    }else{
  46.        ?>
  47.            <script language="javascript">
  48. alert("Usuario inexistente.");
  49. location.href="index.php";
  50. </script>
  51.            <?php
  52.    }
  53.    mysql_free_result($result);
  54. }else{
  55.    ?>
  56.            <script language="javascript">
  57. alert("Debe espeficicar un usuario y una contraseña");
  58. location.href="index.php";
  59. </script>
  60.            <?php
  61. }
  62. ?>
  63.  

admin.php

Código
  1. <?php session_start();
  2. if ($_SESSION['k_username']) {
  3. if ($_SESSION["k_typeuser"]=='admin'){
  4. $mcount="adm/counts.php";
  5. $mproducts="adm/products.php";
  6. $mlogout="logout.php";
  7. $moferts="adm/oferts.php";
  8. $mnews="adm/news.php";
  9. $resultsession='<h2>Sesion:' .$_SESSION['k_username']. '!</h2>
  10.       <p class=\"color1\">Por favor escoja una de las siguientes operaciones a realizar.</p>
  11.       <p class=\"color1\">&nbsp;</p>
  12. <p class=\"color1\"><a href="adm/news.php">Agregar novedades</a></p>
  13. <p class=\"color1\"><a href="adm/offerts.php">Modificar ofertas</a></p>
  14. <p class=\"color1\"><a href="adm/products.php">Administrar productos</a></p>
  15. <p class=\"color1\"><a href="adm/counts.php">Modificar cuentas</a></p>
  16. <p class=\"color1\"><a href="mail.agsiscom.com">Ver correo electronico</a></p>';
  17. } else{
  18. $mcount="mensaje();";
  19. $mproducts="mensaje();";
  20. $mlogout="mensaje();";
  21. $moferts="mensaje();";
  22. $mnews="mensaje();";
  23. $resultsession="<h2>Sesion incorrecta!</h2>
  24.       <p class=\"color1\">Lo sentimos, la sesion actual no tiene permisos para acceder a esta area de la pagina.</p>
  25.       <p class=\"color1\">Por favor cierre la sesi&oacute;n actual y a continuaci&oacute;n entre com una cuenta de administrador</p>
  26.       <p class=\"color1\">&nbsp;</p>";
  27. }
  28. } else {
  29. $mcount="mensaje();";
  30. $mproducts="mensaje();";
  31. $mlogout="mensaje();";
  32. $moferts="mensaje();";
  33. $mnews="mensaje();";
  34. $resultsession="<h2>Debe iniciar sesion primero!</h2>
  35.       <p class=\"color1\">Para acceder a la administracion de productos,ofertas, cuentas y de la pagina en general debe iniciar sesion como administrador.</p>
  36.       <p class=\"color1\">Para ello ingresa tu nombre de usuario y contraseña en el formulario de abajo.</p>
  37.       <p class=\"color1\">&nbsp;</p><article class=\"col2 pad_left1\">
  38.       <h2>Inicio de sesion</h2>
  39.       <form id=\"ContactForm\"  name= \"login\" action=\"valida.php\" method=\"post\">
  40.         <div>
  41.             <div class=\"wrapper\"><br />
  42.           </div>
  43.             <div class=\"bg\">
  44.               <input type=\"text\" name=\"user\" class=\"input3\"/>
  45.             </div>
  46.             Usuario:<br />
  47.         </div>
  48.           <div class=\"wrapper\">
  49.             <div class=\"bg\">
  50.               <input type=\"password\" name=\"pass\" class=\"input3\" />
  51.             </div>
  52.             Contrase&ntilde;a:<br />
  53.           </div>
  54.           <div class=\"wrapper\"><br/>
  55.           </div>
  56.           <input type=\"submit\" name=\"submit\" class=\"button2\" value=\"Entrar\" >
  57.           <input type=\"reset\" name=\"clean\" class=\"button2\" value=\"limpiar\" onClick=\"cleanform\">
  58.       </form>
  59.     </article>";
  60. }
  61. ?>
  62.  

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 pm por Zeroql » En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: PROBLEMAS CON SESSION_START()
« Respuesta #1 en: 10 Junio 2011, 02:25 am »

Que quieres decir con,
Código
  1. if ($_SESSION['k_username']) {


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: PROBLEMAS CON SESSION_START()
« Respuesta #2 en: 10 Junio 2011, 03:45 am »

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.

Código
  1. //Caracteres no permitidos
  2. function quitar($mensaje)
  3. {
  4.    $nopermitidos = array("'",'\\','<','>',"\"");
  5.    $mensaje = str_replace($nopermitidos, "", $mensaje);
  6.    return $mensaje;
  7. }  

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:
Código
  1. $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.

Código
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 am por WHK » En línea

Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: problemas con session_start()
« Respuesta #3 en: 10 Junio 2011, 03:56 am »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: problemas con session_start()
« Respuesta #4 en: 10 Junio 2011, 04:06 am »

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 Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: problemas con session_start()
« Respuesta #5 en: 10 Junio 2011, 04:11 am »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: problemas con session_start()
« Respuesta #6 en: 10 Junio 2011, 04:29 am »

Ya encontré el error:
Código
  1. $_SESSION["k_typeuser"]=$row['type'];

No hay columna type ya que en tu query de sql solamente seleccionaste user y pass:
Código
  1. $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 :
Código
  1. $resultsession='<h2>Sesion:' .$_SESSION['k_username']. '!</h2>

En ese caso se usa htmlspecialchars.

Código
  1. <?php
  2.  
  3. /* Login */
  4. if(!$handle_sql = mysql_connect('localhost','root',''))
  5. die('Ha fallado la conexi&oacute;n');
  6. if(!mysql_select_db('agsiscom'))
  7. die('Error al seleccionar la Base de Datos');
  8.  
  9. if(isset($_POST['user']) and isset($_POST['pass'])){
  10. $resultado = mysql_query('select * from users where nuser = "'.mysql_real_escape_string($_POST['user']).'" limit 1');
  11. if($row = mysql_fetch_array($resultado, MYSQL_ASSOC)){
  12. @mysql_free_result($resultado);
  13. if($row['pass'] == $_POST['pass']){
  14. $_SESSION['k_username'] = $row['user'];
  15. $_SESSION['k_typeuser'] = $row['type']; /* !!! select * entrega type */
  16. header('location: '.str_replace(array("\x0d", "\x0a"), '', $_SERVER['PHP_SELF']));
  17. }else
  18. $status['error'] = 'Contrase&ntilde;a incorrecta.';
  19. }else
  20. $status['error'] = 'Usuario inexistente.';
  21. }
  22.  
  23. /* Start content */
  24. if($_SESSION['k_username']){
  25. if($_SESSION["k_typeuser"] == 'admin'){
  26. ?>
  27. <h2>Sesion: <?php echo htmlspecialchars($_SESSION['k_username'], ENT_QUOTES); ?>!</h2>
  28. <p class="color1">Por favor escoja una de las siguientes operaciones a realizar.</p>
  29. <p class="color1">&nbsp;</p>
  30. <p class="color1"><a href="news.php">Agregar novedades</a></p>
  31. <p class="color1"><a href="offerts.php">Modificar ofertas</a></p>
  32. <p class="color1"><a href="products.php">Administrar productos</a></p>
  33. <p class="color1"><a href="counts.php">Modificar cuentas</a></p>
  34. <p class="color1"><a target="_blank" href="http://mail.agsiscom.com/">Ver correo electronico</a></p>
  35. <?php
  36. }else{
  37. ?>
  38. <h2>Sesion incorrecta!</h2>
  39. <p class="color1">Lo sentimos, la sesion actual no tiene permisos para acceder a esta area de la pagina.</p>
  40. <p class="color1">Por favor cierre la sesi&oacute;n actual y a continuaci&oacute;n entre com una cuenta de administrador</p>
  41. <?php
  42. }
  43. }else{
  44. ?>
  45. <h2>Debe iniciar sesion primero!</h2>
  46. <p class="color1">Para acceder a la administracion de productos,ofertas, cuentas y de la pagina en general debe iniciar sesion como administrador.</p>
  47. <p class="color1">Para ello ingresa tu nombre de usuario y contrase&ntilde;a en el formulario de abajo.</p>
  48. <p class="color1">&nbsp;</p><article class="col2 pad_left1">
  49. <h2>Inicio de sesion</h2>
  50. <form id="ContactForm" name= "login" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
  51. <div>
  52. <div class="wrapper"><br /></div>
  53. <div class="bg">
  54. <input type="text" name="user" class="input3"/>
  55. </div>
  56. Usuario:<br />
  57. </div>
  58. <div class="wrapper">
  59. <div class="bg">
  60. <input type="password" name="pass" class="input3" />
  61. </div>
  62. Contrase&ntilde;a:<br />
  63. </div>
  64. <div class="wrapper"><br/></div>
  65. <input type="submit" name="submit" class="button2" value="Entrar" >
  66. <input type="reset" name="clean" class="button2" value="limpiar" onClick="cleanform">
  67. </form>
  68. <?php
  69. }
  70. ?>

Saludos.
« Última modificación: 10 Junio 2011, 04:38 am por WHK » En línea

Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: problemas con session_start()
« Respuesta #7 en: 10 Junio 2011, 18:34 pm »

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 Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: problemas con session_start()
« Respuesta #8 en: 10 Junio 2011, 20:30 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: problemas con session_start()
« Respuesta #9 en: 10 Junio 2011, 21:28 pm »

instala xampp
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
session_start(): Cannot send session cache limiter - headers already sent
PHP
Casidiablo 7 10,191 Último mensaje 6 Noviembre 2007, 22:22 pm
por SirLanceCC
session_start() [php]
PHP
Ari Slash 2 3,578 Último mensaje 17 Diciembre 2009, 21:29 pm
por Ari Slash
php - session_start , problemillas
Desarrollo Web
Neibar 4 2,308 Último mensaje 3 Mayo 2012, 20:02 pm
por Neibar
session_start(); Me cicla la pagina
Desarrollo Web
L0Ko 3 2,304 Último mensaje 22 Mayo 2012, 23:11 pm
por [u]nsigned
Error con $session_start()
PHP
basickdagger 6 2,744 Último mensaje 9 Marzo 2015, 13:36 pm
por Pablo Videla
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines