Avatar billede oldnick Nybegynder
23. juli 2006 - 11:51 Der er 8 kommentarer og
1 løsning

Login : header (location:) problem

Hej

Jeg har lavet et simpelt login hvor der kun er en bruger. Jeg vil gerne have at hvis session er = ok så skal brugeren sendes videre til en bestemt side. Jeg har benyttet header til dette formål, men får denne her fejl:

Warning: Cannot modify header information - headers already sent by (output started at /customers/xxxxxx.dk/xxxxxx.dk/httpd.www/xxx/admin/index.php:17) in /customers/xxxxxx.dk/xxxxxx.dk/httpd.www/xxx/admin/index.php on line 43

Her er min kode:

<?php
    Session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>xxxxxx | LOGIN</title>
<link href="../css/Admin_style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="main">
<?php
include 'koder.inc.php';
    if(empty($_POST['forsoeg'])){
$forsoeg = 0;
    } else {
$forsoeg = $_POST['forsoeg'];
}
if($_POST['brugernavn'] != $username || $_POST['password'] != $password)
{
if($forsoeg >3){
echo '<p>Du har tastet forkert 4 gange...</p>';
}
$forsoeg ++;
?>
<FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label>Bruger: </label>
<input tabindex="1" type="text" name="brugernavn" id="brugernavn"/>
<label>Kodeord: </label>
<input tabindex="2" type="password" name="password" id="password" />
<input tabindex="3" type="submit" name="Submit" value="Send" id="Send" />
<input type="hidden" name="forsoeg" value="<?php echo $forsoeg; ?>" />
</FORM>
<?php
} else {
$_SESSION['logon'] = "ok";
    header ("Location: http://xxxxxx.dk/xxx/admin/start.php?indhold=cms_start.php");
exit;
}
?>
</div>
</body>
</html>

Jeg har selv været ude i at header delen skal ligge øverst samme med session, men jeg ved bare ikke hvordan man så skal trigge den når man har logget ind.

På forhånd tak... :)
Avatar billede jaw Nybegynder
23. juli 2006 - 11:53 #1
Du kan vel bare lave dit tjek øverst, og så sende videre, hvis betingelserne ikke er opfyldt og ellers viser du siden?!
Avatar billede leif Seniormester
23. juli 2006 - 11:54 #2
Når du skal sende header("Location:xxx"); må der ikke være sendt noget HTML til først
Avatar billede oldnick Nybegynder
23. juli 2006 - 13:02 #3
Hvordan skal sådan et tjek øverst se ud?? Hvis du kunne sætte det ind i koden, ville det hjælpe rigtigt meget.. :)
Avatar billede jaw Nybegynder
23. juli 2006 - 13:06 #4
Sådan her vil jeg næsten mene:

<?php
    Session_start();
  if($_POST['brugernavn'] == $username || $_POST['password'] == $password) {
        $_SESSION['logon'] = "ok";
      header("Location: http://xxxxxx.dk/xxx/admin/start.php?indhold=cms_start.php");
      exit;
  } else {
      ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>xxxxxx | LOGIN</title>
<link href="../css/Admin_style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="main">
<?php
include 'koder.inc.php';
    if(empty($_POST['forsoeg'])){
$forsoeg = 0;
    } else {
$forsoeg = $_POST['forsoeg'];
}
if($forsoeg >3){
echo '<p>Du har tastet forkert 4 gange...</p>';
}
$forsoeg ++;
?>
<FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label>Bruger: </label>
<input tabindex="1" type="text" name="brugernavn" id="brugernavn"/>
<label>Kodeord: </label>
<input tabindex="2" type="password" name="password" id="password" />
<input tabindex="3" type="submit" name="Submit" value="Send" id="Send" />
<input type="hidden" name="forsoeg" value="<?php echo $forsoeg; ?>" />
</FORM>
</div>
</body>
</html>
<?php
}
?>

Men hvor kommer $username og $password fra?
Avatar billede jaw Nybegynder
23. juli 2006 - 13:08 #5
Oh, de kommer fra den inkluderede koder.inc.php selvfølgelig. Så skal den lige inkluderes oppe ved session_start().
Avatar billede oldnick Nybegynder
23. juli 2006 - 13:33 #6
Super, kast et svar, hvis du samler point, ellers tak for hjælpen. :)
Avatar billede jaw Nybegynder
23. juli 2006 - 13:38 #7
Tjoh, lidt sjove er de vel alligevel, så jeg napper dem :) Selv tak ! :)
Avatar billede oldnick Nybegynder
23. juli 2006 - 13:48 #8
Lukket og tak..
Avatar billede jaw Nybegynder
23. juli 2006 - 14:01 #9
Ikke for at presse, men accepterer du så ikke også lige ? :)
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

IT-JOB