Foros del Web » Programando para Internet » PHP »

El método Location no redirige en mi hosting

Estas en el tema de El método Location no redirige en mi hosting en el foro de PHP en Foros del Web. Hola. Tengo el código que vais a ver a continuación. Se trata de que si el usuario y contraseña coinciden en la base de datos, ...
  #1 (permalink)  
Antiguo 28/08/2010, 06:20
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta El método Location no redirige en mi hosting

Hola.

Tengo el código que vais a ver a continuación. Se trata de que si el usuario y contraseña coinciden en la base de datos, están en la misma fila, entonces la variable quede registrada y la página se redirija automáticamente.

En mi ordenador, mi localhost, me iba perfecto. Para colmo me doy cuenta de que estaba usando "register_session" y "register_is_session" y luego he visto que eso está obsoleto y ha cambiado por $_SESSIONO y la función "isset".

He probado a poner en Location una web normal (http://www.forosdelweb.com) y tampoco iba. ¿Qué puede ser?


Código PHP:
<?php 

include("conexion.php"); 

session_start();
if (
$usuario && $contrasena)
{
$resultado mysql_query("SELECT * FROM administrar WHERE usuario='$usuario' AND contrasena='$contrasena'");
if (
mysql_num_rows($resultado)>0)
    {
    
//Si encuentra coincidencias asigna $usuario a la variable "usuario_valido" y registra ésta última.
    
$_SESSION["usuario_valido"]=$usuario;
    }
}

//Si "usuario_vaido ha quedado registrado, porque se ha encontrado el usuario y contraseña, entonces redirige a la página privada
if (isset($usuario_valido))
{
header("Location: admin.php");
exit;
// ese exit lo ponemos para asegurar que no se ejucatará más código después de él
}

echo (
"<form method='post' action='$PHP_SELF'>
      Usuario</br><input type='text' name='usuario'></br>
      Clave</br><input type='text' name='contrasena'></br></br>
      <input type='submit' name='Submit' value='Entrar'>
    </form>"
);
 

?>

Aprovecho para preguntar también, si no es molestia. ¿Cómo en la siguiente página, en admin.php, podría recoger la variable de la sesión ("usuario_valido")? Estaba usando este código en admin.php, para que se viera sólo si "usuario_valido" quedaba registrado, pero me temo que no me va a servir en mi hosting web por lo del register_globals off.

Código PHP:
?php 
include("conexion.php"); 

session_start();

if (
session_is_registered("usuario_valido"))
{

$busquedamysql_query("SELECT copia, color, encuadernacion FROM precios WHERE ID=1");
$row mysql_fetch_array($busqueda);

echo (
"<form name='form1' method='post' action='admin.php'>
      Precio copia</br><input type='text' value='$row[copia]' name='copia'></br>
      Precio color</br><input type='text' value='$row[color]' name='color'></br>
      Precio encuadernacion</br><input type='text' value='$row[encuadernacion]' name='encuadernacion'></br></br>
      <input type='submit' name='Submit' value='Editar'>
    </form>"
);

echo (
"<a href=\"admin.php\">Volver</a>");

}
else
{
echo(
"No estas logueado");
}



?> 

Muchas gracias ^^
  #2 (permalink)  
Antiguo 28/08/2010, 06:48
 
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires
Mensajes: 31
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: El método Location no redirige en mi hosting

las variables $usuario y $contrasena donde toman valor?
no uses la caracteristica REGISTER_GLOBALS, que básicamente es que lo que las variables que vengan por URL se hagan globales, esto es una falla de seguridad.

lo mejor es que tomes los valores desde la variable $_POST

$usuario = $_POST['nombre_del_campo_usuario'] ;

y para leerlo luego en admin.php usa

$_SESSION['usuario_valido'] = true;

if (isset($_SESSION['usuario_valido']) && $_SESSION['usuario_valido']) {
codigo
}

saludos
  #3 (permalink)  
Antiguo 28/08/2010, 06:51
 
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires
Mensajes: 31
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: El método Location no redirige en mi hosting

ah, otra cosa:

antes de meter en una consulta mysql (select, insert, delete o update) cualquier cosa que venga de afuera, siempre tiene que ser pasada por:
"mysql_realescape_string"

buscá información por google y vas a encontrar a montones.
la idea es que no te inserten consultas y consigan desde loggearse con conocer ni pass y usuario hasta borrarte tablas.

ahora si, saludos y hasta luego
Fernando
  #4 (permalink)  
Antiguo 28/08/2010, 06:52
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: El método Location no redirige en mi hosting

Muchas gracias ^^

Última edición por varuk; 28/08/2010 a las 06:56 Razón: No leí bien la respuesta que me dieron y me confundí al contestar

Etiquetas: hosting, location
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:44.