PHP - PROBLEMA CON SECIONES Y EL "register_globals = Off

 
Vista:

PROBLEMA CON SECIONES Y EL "register_globals = Off

Publicado por p4bl1t0 (1 intervención) el 02/03/2006 19:38:11
HOLA que tal amigos necesito de su ayuda URGENTE!!!!!,
haber yo no soy muy diestro en el manejo del codigo en php, pero algo me defiendo, el caso es que eh conseguido un codigo que me sirve para validar usuarios que entran a un panel donde administran unas noticias...
el problema va en el momento en que uno va a ingresar al panel con el usuario y contraseña que estan almacenadas en una BD de MySQL, en ese momento cuando la directiva del php.ini esta en "register_globals = Off", y se ingresa el usuario y contraseña correcto me envia al "index.php?errorusuario=si" cuando en realidad esta correcto, para probar la cambie a "register_globals = On", y en ese momento si sirvio como debe ser. El caso es que a mi no me sirve dejarla "register_globals = On" por que en el servidor donde pienso subir el site esta en "Off", y :no: no pienso hacer que la cambien....

eh estado buscando como solucionarlo y encontre que deberia declarar algunas variables como globales y superglobales algo asi:-(... pero como les habia dicho no soy muy diestro con el codigo asi que con "register_globals = Off" aplique 2 posibles soluciones que encontre por ahi en otros foros:

1. solucion
añadir al comienzo de mi script la linea
[PHP]extract($_POST);[/PHP]
asi que quedaria asi el archivo "action_verificar_users.php"
[PHP]<?

extract($_POST); //aca esta la linea nueva

include("../conex.php"); //"conex.php" contiene la conexion a la Base de Datos
$link=Conectarse();
$sql = "SELECT * FROM usuarios WHERE usuario='$usuario' and clave='$contrasena'";
$result = mysql_query($sql,$link);
if (mysql_num_rows($result)!=0){
session_start();
session_register("logged");
$logged = "ok";
header("Location: panel.php");
}else {
header("Location: index.php?errorusuario=si");
}
mysql_free_result($resultado);
mysql_close($link);
?> [/PHP]
pero cuando hago esto y ingreso los datos en el formulario ya no me devuelve el error, si no que me envia al formulario tal y como estaba sin que lo hubiera llenado con el usuario y contraseña al "index.php" :'(

2. Solucion
seria en el mismo fichero de "action_verificar_users.php" añadir estas lineas [PHP]$usuario = $_POST['usuario'];
$contrasena = $_POST['contrasena'];[/PHP]
todo el codigo del fichero quedaria asi:
[PHP]<?

$usuario = $_POST['usuario']; //estas son las
$contrasena = $_POST['contrasena']; //nuevas lineas

include("../conex.php"); //"conex.php" contiene la conexion a la Base de Datos
$link=Conectarse();
$sql = "SELECT * FROM usuarios WHERE usuario='$usuario' and clave='$contrasena'";
$result = mysql_query($sql,$link);
if (mysql_num_rows($result)!=0){
session_start();
session_register("logged");
$logged = "ok";
header("Location: panel.php");
}else {
header("Location: index.php?errorusuario=si");
}
mysql_free_result($resultado);
mysql_close($link);
?> [/PHP]
Igual que la anterior Solucion me devuelve lo mismo que cuando ingreso los datos, el "index.php" :'(

Contenido del fichero "panel.php":
[PHP]<? include ("seguridad.php");?>
<html>
<title>Panel de control</title>
<!-- aca va el contenido del panel -->
</body>
</html>[/PHP]

Contenido del fichero "seguridad.php":
[PHP]<?php
session_start();
if ($_SESSION["logged"]!="ok") {
header("Location: index.php");
exit(); }
?>
[/PHP]

Contenido del fichero "conex.php":
[PHP]<?php
function Conectarse()
{
//aqui va el nombre de usuario y contraseña
if (!($link=mysql_connect("localhost","usuario","contraseña")))
{
echo "Error conectando a la base de datos.";
exit();
}
// nombre de la base de datos
if (!mysql_select_db("noticias",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
?>
[/PHP]

script de la creacion de tablas:
[CODE]CREATE TABLE usuarios (
ID_user int(11) NOT NULL auto_increment,
usuario TEXT NULL,
clave TEXT NULL,
mail TEXT NULL,
PRIMARY KEY (ID_user),
UNIQUE ID (ID_user)
);

INSERT INTO usuarios (usuario,clave) values
('admin','admin');
[/CODE]

BUENO TRATE DE SER LO MAS CLARO POSIBLE CON MI PROBLEMA, ESPERO SUS RESPUESTAS... GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

mucho codigo

Publicado por xxx (5 intervenciones) el 02/03/2006 20:12:22
ni loco que voy a leer todo esto.
si quieres ser mas conciso. quiza te ayude
xxx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar