Avatar billede z1n Nybegynder
27. september 2004 - 13:28 Der er 30 kommentarer og
1 løsning

Header og location

den skifter ikke side når jeg logger ind... den skriver intet andet end at loginformen forsvinder og så skriver den enten admin eller client alt efter hvad secstatus er... så den kommer ind i if sætningen men skifter ikke til siden index3.php
hjælp venligst :D

if($row["secstatus"] == "admin") {
  echo "admin";
  $to = "../index3.php?cmd=admin";
}
else {
  echo "client";
  $to = "../index3.php";
}
header('Location: '. $to);
Avatar billede hmortensen Nybegynder
27. september 2004 - 13:36 #1
fjern dine echo kald, du må ikke udskrive noget til skærmen før et header kald
Avatar billede z1n Nybegynder
27. september 2004 - 13:38 #2
de er kun sat ind for at se om man kom ind i if sætningen da det ikke virkede uden... så det har ingen effekt :D
Avatar billede hmortensen Nybegynder
27. september 2004 - 13:42 #3
du burde få en fejl med den kode der. noget i retning af:
Warning: Cannot modify header information - headers already sent by....
Avatar billede z1n Nybegynder
27. september 2004 - 13:43 #4
jeg får ingen fejl... men har haft den fejl før... hvad betyder den ?
Avatar billede hmortensen Nybegynder
27. september 2004 - 13:46 #5
At du sender noget til skærmen før en header, derfor du også skal fjerne dine echo kald.

Jeg har lige pastet din kode ind, og der er ingen syntax fejl, og det virker her. Har du noget andet kode på siden ?
Avatar billede z1n Nybegynder
27. september 2004 - 13:48 #6
komplet kode: (den er dog included af index.php)

<?php
    include_once("db.inc");
   
    if($_SESSION["login"] == true) {
            if($_SESSION["secstatus"] == "admin") {
                $to = "../index3.php?cmd=admin";
            }
            else {
                $to = "../index3?cmd=client.php";
            }
            header('Location: '. $to);   
    }
    elseif(isset($_POST["login"])) {
        $brugernavn = $_POST["brugernavn"];
        $password = $_POST["password"];
       
        $sql =  "select * from users where navn = \"$brugernavn\" and password=\"$password\" ";
        $result = db_query($sql);
       
        if ( $row = mysql_fetch_array($result)) {
            $_SESSION["login"] = true;
            $_SESSION["brugernavn"] = $brugernavn;
            $_SESSION["secstatus"] = $row["secstatus"];
           
            if($row["secstatus"] == "admin") {
                $to = "../index3.php?cmd=admin";
            }
            else {
                $to = "../index3?cmd=client.php";
            }
            header('Location: '. $to);   
        }
        else {
            ?>
            <table cellpadding="0" cellspacing="0" border="0">
                <tr>
                    <td align="center">
                        Forkert brugernavn eller password
                    </td>
                </tr>
            </table>
            <?php
        }
    }
    else {
?>
    <form name="loginform" method="POST">
        <table cellpadding="0" cellspacing="5" border="0">
            <tr>
                <td>
                    <input name="brugernavn" class="input" type="text"><br>
                    <input name="password" class="input" type="password">
                </td>
            </tr>
            <tr>
                <td align="right">
                    <input name="login" class="button" type="submit" value="Login">
                </td>
            </tr>
        </table>
    </form>
<?php } ?>
Avatar billede hmortensen Nybegynder
27. september 2004 - 13:53 #7
Prøv lige og lav:
header('Location: '. $to);
om til:
echo $to;

Så kan du se om variablen blir sat
Avatar billede z1n Nybegynder
27. september 2004 - 13:54 #8
den bliver sat :D :/
Avatar billede hmortensen Nybegynder
27. september 2004 - 13:57 #9
hmm, det lyder underligt...

prøv at lave stien om til absolut sti:
$to = "/mappe/index3.php?cmd=admin";
Avatar billede riversen Nybegynder
27. september 2004 - 13:57 #10
komplet kode: (den er dog included af index.php) <-- hvis der er noget i index.php så er der også output før header... sååå... er der noget i index.php før du includer?
Avatar billede z1n Nybegynder
27. september 2004 - 14:00 #11
jamen hvad er klasificeret som output... er normal html kode det ? er en session_start(); det ? ellers er der intet i index.php andet en includen og index3.php er i en mappe højere end login.php som koden ovenfra er fra. (dvs login.php ligger i en inc mappe)
Avatar billede z1n Nybegynder
27. september 2004 - 14:01 #12
er der ikke andre måder jeg kan skifte side på  ?
Avatar billede riversen Nybegynder
27. september 2004 - 14:01 #13
<html> er fx output
Avatar billede riversen Nybegynder
27. september 2004 - 14:01 #14
<doctype bla bla> er output
Avatar billede riversen Nybegynder
27. september 2004 - 14:01 #15
alt hvad der kan ses i vis kilde så at sige
Avatar billede hmortensen Nybegynder
27. september 2004 - 14:02 #16
html er også output til skærmen, og det må der ikke være før headeren
Avatar billede z1n Nybegynder
27. september 2004 - 14:02 #17
hmm så kan man jo ikke skifte side :/ !?
Avatar billede hmortensen Nybegynder
27. september 2004 - 14:03 #18
Jo, du sender dataen til en ny side, hvor du laver dine tjek, sætter session, og så sender du brugeren hen hvor du vil
Avatar billede hmortensen Nybegynder
27. september 2004 - 14:04 #19
Det virker jo også dumt at sende et output til brugeren, når siden alligevel skifter
Avatar billede z1n Nybegynder
27. september 2004 - 14:07 #20
jeg skal ikke sende noget output... det var får at tjekke om if sætningen virkede ! så jeg sender intet output... jeg har en side delt op i tables og vil bare have min login form til at ligge i en td men det siger du er umuligt når man skal skifte side og det ikke skal komme frem i samme td !!!
Avatar billede riversen Nybegynder
27. september 2004 - 14:08 #21
jo, du sender jo output i form af html i index.php!!!!!
Avatar billede riversen Nybegynder
27. september 2004 - 14:08 #22
include skal jo forstås som ren tekstuel indsættelse
Avatar billede hmortensen Nybegynder
27. september 2004 - 14:08 #23
rene, kan du ikke ta over ?

min tålmodig er meget lille i dag ;)
Avatar billede riversen Nybegynder
27. september 2004 - 14:11 #24
tjoh, men jeg sidder her kun kort, fordi jeg lige tager en slapper... ellers plejer jeg pænt at holde mig fra eksperten :-).
Avatar billede riversen Nybegynder
27. september 2004 - 14:13 #25
z1n: er du ved at være med på, hvad der menes med output?
Avatar billede z1n Nybegynder
27. september 2004 - 14:16 #26
ahhh 1000 tak der... virker nu... flytte alt fra login.php til index.php så intet kommer før header... nu fatter jeg det :D thx :D
Avatar billede z1n Nybegynder
27. september 2004 - 14:16 #27
smid svar begge 2 så i kan deles
Avatar billede riversen Nybegynder
27. september 2004 - 14:16 #28
fino
Avatar billede riversen Nybegynder
27. september 2004 - 14:17 #29
gratis herfra. Point kan jeg ikke bruge til så meget.
Avatar billede z1n Nybegynder
27. september 2004 - 14:28 #30
hindu lig et svar ;D
Avatar billede hmortensen Nybegynder
27. september 2004 - 14:29 #31
Godt du fik det til at virke...
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