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

eh estado buscando como solucionarlo y encontre que deberia declarar algunas variables como globales y superglobales algo asi

1. solucion
añadir al comienzo de mi script la linea
Código PHP:
<?
extract($_POST);
?>
Código 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);
?>

2. Solucion
seria en el mismo fichero de "action_verificar_users.php" añadir estas lineas
Código PHP:
<?
$usuario = $_POST['usuario'];
$contrasena = $_POST['contrasena'];
?>
Código 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);
?>

Contenido del fichero "panel.php":
Código PHP:
<? include ("seguridad.php");?>
<html>
<title>Panel de control</title>
<!-- aca va el contenido del panel -->
</body>
</html>
Código PHP:
<?php
session_start();
if ($_SESSION["logged"]!="ok") {
header("Location: index.php");
exit(); }
?>
Código 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;
}
?>
Código:
BUENO TRATE DE SER LO MAS CLARO POSIBLE CON MI PROBLEMA, ESPERO SUS RESPUESTAS... GRACIASCREATE 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');
