Gå til innhold

[Løst] php redirect etter brukernavn - header('Location: ... script funker ikke


Anbefalte innlegg

Hei!
 
Jeg bruker scriptet "Web Page Password Protect" til Zubrag.com. Der fins det et script som gjør at hvis du er logget inn med et brukernavn kan du bli videresendt til en bestemt side. Er du logget inn med et annet brukernavn blir du sendt til en annen. Scriptet i seg selv fungerer, men jeg får ikke plottet inn resultatet inn i header('Location: boksen.

 

Her er scriptet:

<?php

// request login? true - show login and password boxes, false - password box only
define('USE_USERNAME', true);

##################################################################
#  SETTINGS START
##################################################################

// Add login/password pairs below, like described above
// NOTE: all rows except last must have comma "," at the end of line
$LOGIN_INFORMATION = array(
  'Per' => 'PerPassord',
  'Ole' => 'OlePassord'
);

$SUBDOMAINS = array(
  'Per' => 'per',
  'Ole' => 'ole'
);

// request login? true - show login and password boxes, false - password box only
define('USE_USERNAME', true);

##################################################################
#  SETTINGS END
##################################################################

header('Location: '.$SUBDOMAINS[$login].'.php'); die();
?>

Er det noe feil i scriptet? Siden kommer frem som:

Not Found

The requested URL /.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Som tyder på at den får plottet inn ".php", men ikke det som står i ".$SUBDOMAINS[$login]." koden.

 

Noen som vet råd?

 

EDIT: Etter et godt tips fikk jeg det til slutt til å fungere. Poster den endelige koden her, i tilfelle andre skal ha et lignende problem.

<?php

###############################################################
# Page Password Protect 2.13
###############################################################
# Visit http://www.zubrag.com/scripts/ for updates
############################################################### 
#
#
###############################################################

##################################################################
#  SETTINGS START
##################################################################

include_once('settings.php');

// Add login/password pairs below, like described above
// NOTE: all rows except last must have comma "," at the end of line
$LOGIN_INFORMATION = array(
  'Per' => 'PerPassord',
  'Ole' => 'OlePassord'
);

$SUBDOMAINS = array(
  'Per' => 'per',
  'Ole' => 'ole'
);

##################################################################
#  SETTINGS END
##################################################################


///////////////////////////////////////////////////////
// do not change code below
///////////////////////////////////////////////////////

// user provided password
if (isset($_POST['access_password'])) {

  $login = isset($_POST['access_login']) ? $_POST['access_login'] : '';
  $pass = $_POST['access_password'];
  if (!USE_USERNAME_ADMIN && !in_array($pass, $LOGIN_INFORMATION)
  || (USE_USERNAME_ADMIN && ( !array_key_exists($login, $LOGIN_INFORMATION) || $LOGIN_INFORMATION[$login] != $pass ) ) 
  ) {
    showLoginPasswordProtect("Feil passord.");
  }
  else {
    // set cookie if password was validated
    setcookie("verify", md5($login.'%'.$pass), $timeout, '/');
    
    // Some programs (like Form1 Bilder) check $_POST array to see if parameters passed
    // So need to clear password protector variables
    unset($_POST['access_login']);
    unset($_POST['access_password']);
    unset($_POST['Submit']);
  }

}

else {

  // check if password cookie is set
  if (!isset($_COOKIE['verify'])) {
    showLoginPasswordProtect("");
  }

  // check if cookie is good
  $found = false;
  foreach($LOGIN_INFORMATION as $key=>$val) {
    $lp = (USE_USERNAME_ADMIN ? $key : '') .'%'.$val;
    if ($_COOKIE['verify'] == md5($lp)) {
	  $login = $key;
      // prolong timeout
      if (TIMEOUT_CHECK_ACTIVITY_ADMIN) {
        setcookie("verify", md5($lp), $timeout, '/');
      }
      break;
    }
  }

}

header('Location: '.$SUBDOMAINS[$login].); die();
?>

Endret av MartyRot
Lenke til kommentar
Videoannonse
Annonse

Tja, man kan jo begynne med å spørre hvor resten av koden er? :)
Etter en kjapp kikk på siden du refererer til, så kan det se ut som du har kopiert ut en konfigurerings-snutt av en større fil som det er ment du skal bruke. Jeg tipper at det også et sted i denne filen er definert $login, slik at $SUBDOMAINS[$login] blir noe annet enn tom tekst.

 

Jeg ser også at du har dette 2 ganger:

define('USE_USERNAME', true);

Som det nesten er rart at PHP ikke klager over.

  • Liker 1
Lenke til kommentar

Tja, man kan jo begynne med å spørre hvor resten av koden er? :)

Etter en kjapp kikk på siden du refererer til, så kan det se ut som du har kopiert ut en konfigurerings-snutt av en større fil som det er ment du skal bruke. Jeg tipper at det også et sted i denne filen er definert $login, slik at $SUBDOMAINS[$login] blir noe annet enn tom tekst.

 

Jeg ser også at du har dette 2 ganger:

define('USE_USERNAME', true);

Som det nesten er rart at PHP ikke klager over.

 

Selvfølgelig...! Jeg tok bare utgangspunkt i at den ikke trengte mer en påloggings-infoen, men stusset også over at det ikke var noe som het $login. Da skal jeg få plottet inn resten av koden.

 

Når det gjelder 2x define(USE_USERNAME') var det slik den var skrevet på nevnte nettside, men skal fikse det.

 

Kan godt kopiere inn hele koden, men jeg tipper det fins en refererings-kode som jeg kan plotte inn istedenfor? slik at jeg kun trenger å ha med det fra "$SUBDOMAINS = array(" og nedover. Vet du om noe jeg kan bruke?

 

Tusen takk for rask hjelp!

 

EDIT:

 

Kan selvfølgelig bruke:

include_once('settings.php');

Takk igjen.

Endret av MartyRot
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...