Comunidad de diseño web y desarrollo en internet online

Problemas para loguerme

Citar            
MensajeEscrito el 16 Mar 2011 09:44 pm
Hola, estoy con un trabajo de un carrito de compras de libros. La verdad no se mucho de PHP, o quizás nada seria lo correcto. He encontrado un código que funciona a la perfeccion para lo que necesito. Tiene una parte en donde se pueden ir viendo los libros, luego seleccionarlos para agregarlos al carrito; y tiene también una parte “administrativa”, en donde un usuario puede acceder por medio de clave y password, para hacer modificaciones de precio, agregar o sacar libros, etc. Todo esto funciona a las mil maravillas, bah o funcionaba.
El primer problema que me encontré fue que al subirlo al hosting donde va a estar alojado, no funcionaba nada. Yo lo probaba en mi pc en donde tengo instalado el servidor Apache, y funcionaba perfecto. No sabia porque pero después de consultas en varios foros, la solución estaba en que en el hosting el “register_globals” estaba en “Off”, mientras que yo lo tenia en configurado en mi pc en “On”por lo que empeze a cambar las variables a superglobales, y asi comenzó a funcionar todo nuevamente.
Iba probando parte a parte y haciendo los cambios que eran necesarios. Pero al llegar a la parte “administrativa”, el problema esta que ya no funciona mas, ni siquiera estando el “register_globals” en “On”. Probre con los archivos originales (sin las modificaciones que yo les había hecho) y con “register_globals” en “on”, y no funciona, o sea no me deja acceder a la parte administrativa, cuando antes si me dejaba.

Les paso el código
Aquí es en donde debo loguearme

Código PHP :

<?php
 require_once("book_sc_fns.php");
 do_html_header("Administración");
 
 display_login_form();
 
 function display_login_form()
{
  // dispaly form asking for name and password
?>
  <form method=post action="admin.php">
  <table bgcolor=#cccccc>
   <tr>
     <td>Nombre Usuario:</td>
     <td><input type=text name=username></td></tr>
   <tr>
     <td>Contraseña:</td>
     <td><input type=password name=passwd></td></tr>
   <tr>
     <td colspan=2 align=center>
     <input type=submit value="Logearte"></td></tr>
   <tr>
 </table></form>
<?php
}
 
 do_html_footer();
?>


Esta es la otra parte del código, esto seria el archivo admin.php

Código PHP :

<?php
 
// incluye los archivos de función para esta aplicación
require_once("book_sc_fns.php");
session_start();
 
if ($username && $passwd)
// están intentando hacer logging in
{
    if (login($username, $passwd))
    {
      // si se encuentran en la base de datos registrar la id de usuario
      $admin_user = $username;
      session_register("admin_user");
    }
    else
    {
      // login incorrecto
      do_html_header("Problema:");
      echo "No has podido logearte.
            Debes estar logueado para ver esta página.<br>";
      do_html_url("login.php", "Login");
      do_html_footer();
      exit;
    }
}
 
do_html_header("Administración");
if (check_admin_user())
  display_admin_menu();
else
  echo "No estás autorizado a entrar en el área de administración.";
 
do_html_footer();
 
?>



No entiendo porque cuando lo probe la primera vez, si podía acceder a la parte administrativa, y ahora no.
Habra que hacer algún cambio en el php.ini?

Cualquier cosa que no sea clara, díganme y trato de aportar mas info

Gracias

Por galloclaudio

3 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Mar 2011 02:51 am
las consecuencias de no estandarizar el codigo en esta parte

Código PHP :

if ($username && $passwd) 

segun tu formulario

Código HTML :

 <form method=post action="admin.php"> 

es por metodo post entonces
tu codigo deberia quedar asi

Código PHP :

if ($_POST['username'] && $_POST['passwd'])

y otra cosa tienes que hecharle un ojo al XHTML de la wc3
por ejemplo los atributos de un tag siempre es en minusculas, su valor va entre comillas y si el tag no tiene contenido entonces cerrarla
ejemplo

Código HTML :

<td><input type=text name=username></td></tr> 

deberia ser

Código HTML :

<td><input type="text" name="username" /></td></tr> 

esto te lo digo por que van a empezar a salir navegadores estrictos y para no tener problemas a futuro

y un consejo habilita en php de localhost que se visualize todos los errores
pon esto en tu archivo php principal

Código PHP :

<?php
error_reporting(E_ALL);
//resto del codigo


asi te marcara cualqueri cosa q de error como variables no declaradas y otras cosas utiles

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.