Ver Mensaje Individual
  #15 (permalink)  
Antiguo 03/09/2009, 21:23
samu22
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 10 meses
Puntos: 16
Respuesta: redireccionar con contraseña

Cita:
Iniciado por Josemi16 Ver Mensaje
Ya he leido dos manuales,

pero mi pregunta es:

en una página "loquesea.html" pongo el código:
<?php
$login = true;

$logins[0]["pass"] = "password1";
$logins[0]["redirect"] = "carlos.php";

$logins[1]["pass"] = "password2";
$logins[1]["redirect"] = "cristian.php";
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Contraseña:<br />
<input type="password" name="pass" /><br />
<input type="submit" name="submit" value="Entrar" />
</form>



y en otra pagina pongo:
<?
$p = $_POST['pass'];
$claves = array();

$claves['mi_clave1'] = 'lugar/archivo.html';
$claves['mi_clave2'] = 'lugar/otro.html';
$claves['mi_clave3'] = 'lugar/mas.html';
$claves['mi_clave4'] = 'lugar/etc.html';

header("location: {$claves[$p]}");
?>

no es así???

pero, como se debe llamar la página en la que pongo el segundo código?

y Gracias por estar como dijistes más arriba, para ayudar.
para que el apache reconozca el codigo en php vas a tener que utilizar la extencion correcta en el archivo, loquesea.html solo va a leer codigo html, para que funcione necesitas renombrar loquesea.php, entonces va a interpretar el codigo

en cuanto a la pregunta que haces eso depende de a donde apunta el formulario, en el caso anterior esta apuntando al mismo documento en el que esta corriendo
en esta linea se puede observar a donde apunta

Código php:
Ver original
  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  2. // donde $_SERVER['PHP_SELF'] devuelve la direccion actual

por lo tanto en este caso la comprobacion de la respuesta se hace en el mismo archivo, el mismo podria quedar de la siguiente manera:

Código php:
Ver original
  1. <?php
  2. $claves = array();
  3.  
  4. $claves['mi_clave1'] = 'lugar/archivo.html';
  5. $claves['mi_clave2'] = 'lugar/otro.html';
  6. $claves['mi_clave3'] = 'lugar/mas.html';
  7. $claves['mi_clave4'] = 'lugar/etc.html';
  8.  
  9. $form = '<form action=" '.$_SERVER['PHP_SELF'].' " method="post">
  10.             Contraseña:<br />
  11.             <input type="password" name="pass" /><br />
  12.             <input type="submit" name="submit" value="Entrar" />
  13.             </form>';
  14.  
  15.  
  16. if($_POST['pass']){
  17.         $p = $_POST['pass'];
  18.         //se podria comprobar que exista el array con la clave para no reenviar a una direccion invalida de la siguiente forma
  19.        if(isset($claves[$p])){
  20.               header("location: {$claves[$p]}");
  21.        }else{
  22.         // si el array no existe con esa clave carga el formulario
  23.                echo 'la clave no existe<br/>';
  24.                echo $form;
  25.         }
  26. }else{
  27.         // si no se envio el formulario
  28.         echo $form;
  29. }