Avatar billede scooterDK Nybegynder
28. april 2010 - 00:03 Der er 10 kommentarer og
1 løsning

header("Location: members1.php");

Hej

jeg har følgende kode og vil gerne have at :header("Location: members1.php"); henter en streng fra min db. altså members1.php kommer til at hede noget ala $link... fra min DB

nogle gode forslag til hvordan dette kan lade sig gøre ?

Det skal bruges så hver bruger i mit login system har en bestemt side med de rettigheder som vedkommende har adgang til.

her er koden :

<?
include_once("config.php");
checkLoggedIn("no");
$title="Member Login Page";
if(isset($_POST["submit"])) {
    field_validator("login name", $_POST["login"], "alphanumeric", 4, 15);
    field_validator("password", $_POST["password"], "string", 4, 15);
    if($messages){
        doIndex();
        exit;
    }

        if( !($row = checkPass($_POST["login"], $_POST["password"])) ) {
        $messages[]="Incorrect login/password, try again";
    }

        if($messages){
        doIndex();
        exit;
    }

    cleanMemberSession($row["login"], $row["password"]);
    header("Location: members1.php");
} else {
    doIndex();
}
function doIndex() {
    global $messages;
    global $messages, $title;
    global $title;
    ?>
Avatar billede repox Seniormester
28. april 2010 - 09:22 #1
Det er noget besynderligt kode; er det taget ud fra et system som du ikke selv har lavet?
Avatar billede public2 Nybegynder
28. april 2010 - 09:23 #2
Altså skal jeg forstå det sådan, at du gerne vil have en side der hedder "member1.php", men hvor indholdet af den side afhænger af hvilken bruger der er logget ind? Så siden f.eks. kommer til at hedde noget i stil med members.php?uid=13 ??

Eller er det en fysisk php side der bliver oprettet til hver bruger, så i stedet for members1.php så bliver det f.eks. user13.php ???
Avatar billede scooterDK Nybegynder
28. april 2010 - 10:17 #3
Jeg havde tænkt mig noget i denne stil

<?
include_once("config.php");
checkLoggedIn("no");
$title="Member Login Page";
if(isset($_POST["submit"])) {
    field_validator("login name", $_POST["login"], "alphanumeric", 4, 15);
    field_validator("password", $_POST["password"], "string", 4, 15);
    if($messages){
        doIndex();
        exit;
    }
$query = mysql_query("SELECT link1 FROM leder WHERE login=$_POST["login"] and password=$_POST["password"]");
while ($row3 = mysql_fetch_array($query)) {
$link=$row3["link1"];}
............blaaa blaa ............

og så :

cleanMemberSession($row["login"], $row["password"]);
    header("Location: $link");
............ blaaa blaaa.........

Men jeg kan ikke helt få denne løsning til at virke, får en http 500 fejl....

dvs. at jeg udfra hver medlem i databasen henviser til den side som indeholder de rettigheder vedkommende har adgang til...

fx. 3 niveauer : administrator, superbruger og bruger.... alt efter hvad vedkommende har lov til at foretage sig....
Avatar billede scooterDK Nybegynder
28. april 2010 - 10:21 #4
Ja det er en del at st større loginsystem som jeg er ved at tilpasse mine "behov" og det er ikke en kode jeg selv har lavet...

her her jeg hentet koden :

http://gscripts.net/free-php-scripts/Login_Management/Simple_Auth/details.html
Avatar billede public2 Nybegynder
28. april 2010 - 10:41 #5
Hvis du får en http 500 fejl, så må du lave lidt debugging.

Hvis siden virker når du hardcoder "members1.php", men ikke med $link, så ligger fejlen nok der.

Jeg ved ikke hvordan du henter $link eller om den bliver taget fra databasen og hvordan du udtrækker den og lægger den over i variablen $link.

Prøv evt. at udskrive med en echo $link for at se hvad indholdet er.
Avatar billede scooterDK Nybegynder
28. april 2010 - 10:59 #6
public2 :

$query = mysql_query("SELECT link1 FROM leder WHERE login=$_POST["login"] and password=$_POST["password"]");
while ($row3 = mysql_fetch_array($query)) {
$link=$row3["link1"];}
............blaaa blaa ............

Og systemet virker hvis jeg skriver : members1.php men ikke når jeg skriver $link.. jeg tror at det har noget at gøre med den måde jeg hiver linket ud af databasen....
Avatar billede public2 Nybegynder
28. april 2010 - 11:18 #7
Har du prøvet at udskrive i en echo hvad og om der står noget i $link?

Man kunne tænkes at den var tom og du derfor får en http 500 error.
Avatar billede scooterDK Nybegynder
28. april 2010 - 11:55 #8
Da login siden smider siden videre efter korrekt login, da vil jeg ikke kunne se hvad echo vil gavne.. men jeg har måske en ny plan som jeg vil prøve, på min members side der kunne jeg lave en redirect, hvis brugeren ikke har rettigheder da kan brugeren sendes videre med det samme til den side hvor brugeren har rettigheder til ! ! ! Da jeg har fuld adgang til databasen på members siden og kan udtrække alle tabeller ect... skal bare lige have fundet frem til hvordan :=), normalt laver jeg kun DTP arbejde, og programmering af hjemmesider det er et par år siden jeg gjorde det sidst og dengang var det i ASP. men jeg har lovet de lokale KFUM spejdere at lave deres hjemmeside... så alt den hjælp jeg kan få er prisværdig...
Avatar billede public2 Nybegynder
28. april 2010 - 13:02 #9
Der er mange muligheder for at lave det du ønsker, og den måde det scripts gør det på er ikke en vej jeg personligt selv ville gå.

Men du kan tjekke din $link variable ved at udkommentere din redirect og så bare echo $link.
Avatar billede scooterDK Nybegynder
28. april 2010 - 13:34 #10
ok har prøvet denne model, og jeg kan også echo værdierne ud og de passer i forhold til personen som logger ind, men den redirecter ikke siden til fx. members1.php eller members2.php

er der nogen som kan forklarer mig hvorfor ?


<?php
include_once("config.php");
checkLoggedIn("yes");
doCSS();

$login_1=$_SESSION["login"];
$login_2=$_SESSION["password"];
$query = mysql_query("SELECT * FROM hold WHERE styr='start'") or die(mysql_error());
while ($row3 = mysql_fetch_array($query)) {
$query = mysql_query("SELECT * FROM leder WHERE login='$login_1' AND password='$login_2'") or die(mysql_error());
while ($row4 = mysql_fetch_array($query)) {
$l=$row4["link1"];
$la = 1;
$lb = 2;
if ($l = $la) {header("Location: members1.php");}
elseif ($l = $lb) { header("Location: members2.php");}
else{header("Location: members.php");}
?>
---- rest af kode -------  blaa blaaa -------
Avatar billede scooterDK Nybegynder
11. maj 2010 - 12:33 #11
lukker for svar....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester