Avatar billede proman Nybegynder
10. marts 2006 - 19:40 Der er 14 kommentarer og
1 løsning

Fejl i login

Jeg har et login script uden DB eller andet.
Men der kommer fejl:

   
Warning: Cannot modify header information - headers already sent by (output started at /home/midtvestelhockey/html/nyside/admin_login.php:11) in /home/midtvestelhockey/html/nyside/admin_login.php on line 98

Jeg har prøvet at se om jeg kunne fixe det, men uden held!
Her kommer selve scriptet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Midtvestelhockey</title>
    <link rel=stylesheet type="text/css" href="style.css">
</head>

<body background="img/background.jpg" bottommargin="0" leftmargin="0" marginheight="0" marginwidth="0" rightmargin="0" topmargin="0">

<center><table width="765" height="100%" cellpadding="0" cellspacing="0" border="0" background="img/mainbackground.jpg"><tr valign="top"><td>

<table width="764" height="97" cellpadding="0" cellspacing="0" border="0">
    <tr valign="top">
<td width="248"><!-- logo image --><img src="img/templogo.jpg" width="248" height="97" border="0" alt=""><!-- end logo image --></td>
<td width="100%" background="img/toplogobg.jpg"><img src="img/toplogobg.jpg" width="22" height="97" border="0" alt=""></td>
    </tr>
</table>
<table width="764" height="42" cellpadding="0" cellspacing="0" border="0">
    <tr valign="top">
<td width="169"><img src="img/left1.jpg" width="169" height="42" border="0" alt=""></td>
<td width="100%" background="img/left1bg.jpg"><img src="img/left1bg.jpg" width="20" height="42" border="0" alt=""></td>
    </tr>
</table>

<table width="764" cellpadding="0" cellspacing="0" border="0">
    <tr valign="top">

<td width="150">
<!-- menu below, copy and paste the menudivider.jpg code as necessary -->
<!-- the &nbsp; is code for a one letter space -->
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/index.php">Forside</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/os.php">Omkring os</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/nyheder.php">Nyheder</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/kamp.php">Kampe</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/kontakt.php">Kontakt os</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/tagwall.php">Tagwall</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/hold.php">Holdet</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/galleri.php">Galleri</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/ledelse.php">Ledelse</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt=""><BR>
&nbsp; <a href="/admin_login.php">Admin</a><BR>
<img src="img/menudivider.jpg" width="150" height="6" border="0" alt="">
<!-- end menu -->
</td>
<td width="10">&nbsp;</td>
<td width="744">

<!-- add your content below -->
<?php


// Array med brugernavne og tilhørende passwords
// Fyld selv flere brugere og passwords på

$brugerpass = array('bruger1' => 'pass1',
                    'bruger2' => 'pass2',
                    'bruger3' => 'pass3',
                    'bruger4' => 'pass4',
                    'bruger5' => 'pass5');
                   
// Hvis der er trykket på login formen aktiveres scriptet
if($_POST['action'] == "login") {

  //username og password fra formular
  $bruger = $_POST['brugernavn'];
  $pass = $_POST['password'];

  //tjek om felter er udfyldt
  if(empty($_POST['brugernavn'])) {
    echo "Du har ikke indtastet et brugernavn!";
  } elseif(empty($_POST['password'])) {
    echo "Du har ikke indtastet et password!";
  } else {

    //tjekker om brugernavn og password passer sammen
    if(array_key_exists($bruger, $brugerpass) && $brugerpass[$bruger] == $pass) {
      $_SESSION['login']="ok";
      $_SESSION['snr'] = session_id();
      // sender brugeren videre til en side der hedder brugerens
      // brugernavn+side.php, f.eks bruger1side.php.
      // --------------------------------------------------------
      // i stedet for brugeren sendes til sin egen side, kan du
      // udskifte "header("location: ".$bruger."side.php");"
      // med "header("location: hemmeligside.php");" og brugeren
      // vil blive sendt til "hemmeligside.php" i alle tilfælde.
      // --------------------------------------------------------<?
      header("location: ".$bruger."side.php");
    } else {
      echo "Brugernavn eller Password er forkert!";
    }

  }

}
?>

<form method="post" action="<?echo $_SERVER['PHP_SELF'];?>">
<table>
  <tr>
    <td>Brugernavn:</td>
    <td><input type="text" name="brugernavn"></td>
  </tr>
  <tr>
    <td>Password:</td>
    <td><input type="password" name="password"></td>
  </tr>
  <tr>
    <td><input type="hidden" name="action" value="login"></td>
    <td><input type="submit" value="Login"></td>
  </tr>
</table>
</form>
<BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR>
<center>© Copyright - Midtvestelhockey.dk</center>
<!-- end content area -->



</td>
<td width="10">&nbsp;</td>
    </tr>
</table>
</td></tr></table></center>
</body>
</html>
Avatar billede udvikler Nybegynder
10. marts 2006 - 19:58 #1
det er fordi du har en header i linie 98:

header("location: ".$bruger."side.php");

headers skal stå før output
Avatar billede proman Nybegynder
10. marts 2006 - 20:00 #2
Altså hvor?
Avatar billede Slater Ekspert
10. marts 2006 - 20:01 #3
Før al tekst der bliver skrevet. Altså før alt HTML der ikke er i PHP-tags, og før alle echo eller print kommandoer i PHP-koden.
Avatar billede proman Nybegynder
10. marts 2006 - 20:05 #4
Altså lige før <html> ?
Avatar billede Slater Ekspert
10. marts 2006 - 20:08 #5
Også før din doctype.
Avatar billede udvikler Nybegynder
10. marts 2006 - 20:10 #6
lige præcis :-)
Avatar billede proman Nybegynder
10. marts 2006 - 20:10 #7
Ja det virker nu, men nu kokser det også :S

Jeg skal FØRST logge ind inden jeg bliver smidt på den anden side,
nu smider den mig på den anden side LIGE når jeg kommer på på login siden :/

Koden:

<?
header("location: ".$bruger."side.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Midtvestelhockey</title>
    <link rel=stylesheet type="text/css" href="style.css">
</head>

<body background="img/background.jpg" bottommargin="0" leftmargin="0" marginheight="0" marginwidth="0" rightmargin="0" topmargin="0">

<center><table width="765" height="100%" cellpadding="0" cellspacing="0" border="0" background="img/mainbackground.jpg"><tr valign="top"><td>

<table width="764" height="97" cellpadding="0" cellspacing="0" border="0">
    <tr valign="top">
<td width="248"><!-- logo image --><img src="img/templogo.jpg" width="248" height="97" border="0" alt=""><!-- end logo image --></td>
<td width="100%" background="img/toplogobg.jpg"><img src="img/toplogobg.jpg" width="22" height="97" border="0" alt=""></td>
    </tr>
</table>
<table width="764" height="42" cellpadding="0" cellspacing="0" border="0">
    <tr valign="top">
<td width="169"><img src="img/left1.jpg" width="169" height="42" border="0" alt=""></td>
<td width="100%" background="img/left1bg.jpg"><img src="img/left1bg.jpg" width="20" height="42" border="0" alt=""></td>
    </tr>
</table>

<table width="764" cellpadding="0" cellspacing="0" border="0">
    <tr valign="top">

<td width="150">
<!-- menu below, copy and paste the menudivider.jpg code as necessary -->
<?include("menu.php");?>
<!-- end menu -->
</td>
<td width="10">&nbsp;</td>
<td width="744">

<!-- add your content below -->
<?php


// Array med brugernavne og tilhørende passwords
// Fyld selv flere brugere og passwords på

$brugerpass = array('bruger1' => 'pass1',
                    'bruger2' => 'pass2',
                    'bruger3' => 'pass3',
                    'bruger4' => 'pass4',
                    'bruger5' => 'pass5');
                   
// Hvis der er trykket på login formen aktiveres scriptet
if($_POST['action'] == "login") {

  //username og password fra formular
  $bruger = $_POST['brugernavn'];
  $pass = $_POST['password'];

  //tjek om felter er udfyldt
  if(empty($_POST['brugernavn'])) {
    echo "Du har ikke indtastet et brugernavn!";
  } elseif(empty($_POST['password'])) {
    echo "Du har ikke indtastet et password!";
  } else {

    //tjekker om brugernavn og password passer sammen
    if(array_key_exists($bruger, $brugerpass) && $brugerpass[$bruger] == $pass) {
      $_SESSION['login']="ok";
      $_SESSION['snr'] = session_id();
      // sender brugeren videre til en side der hedder brugerens
      // brugernavn+side.php, f.eks bruger1side.php.
      // --------------------------------------------------------
      // i stedet for brugeren sendes til sin egen side, kan du
      // udskifte "header("location: ".$bruger."side.php");"
      // med "header("location: hemmeligside.php");" og brugeren
      // vil blive sendt til "hemmeligside.php" i alle tilfælde.
      // --------------------------------------------------------<?
     
    } else {
      echo "Brugernavn eller Password er forkert!";
    }

  }

}
?>

<form method="post" action="<?echo $_SERVER['PHP_SELF'];?>">
<table>
  <tr>
    <td>Brugernavn:</td>
    <td><input type="text" name="brugernavn"></td>
  </tr>
  <tr>
    <td>Password:</td>
    <td><input type="password" name="password"></td>
  </tr>
  <tr>
    <td><input type="hidden" name="action" value="login"></td>
    <td><input type="submit" value="Login"></td>
  </tr>
</table>
</form>
<BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR>
<center>© Copyright - Midtvestelhockey.dk</center>
<!-- end content area -->



</td>
<td width="10">&nbsp;</td>
    </tr>
</table>
</td></tr></table></center>
</body>
</html>
Avatar billede proman Nybegynder
10. marts 2006 - 20:11 #8
Kan jeg ikke få en af jer til at gøre så det vil virke?
Avatar billede udvikler Nybegynder
10. marts 2006 - 20:13 #9
det er fordi du skal smide php delen med.. også alle if og else sætningerne osv.

ellers er det jo indlysene.. filen starter jo med at du redirecter til en side.
Avatar billede proman Nybegynder
10. marts 2006 - 20:14 #10
Jamen, hvis ikke <? og ?> er med står det bare i toppen af siden :S
Avatar billede proman Nybegynder
10. marts 2006 - 20:15 #11
Hov, læste forkert
Avatar billede proman Nybegynder
10. marts 2006 - 20:19 #12
Ja okay, nu virker det finno :D

Men, hvis jeg nu skriver forkert kodeord/password så står der i toppen at jeg har gjordt det forkert..

Det vil jeg gerne have nedenunder loginboksene
Kan jeg få det?
Avatar billede udvikler Nybegynder
10. marts 2006 - 20:24 #13
Nej desværre, for loginboksene er jo også output !
Avatar billede proman Nybegynder
10. marts 2006 - 20:25 #14
Nå :/, nå men tak for svar og tillykke med point :)
Avatar billede udvikler Nybegynder
10. marts 2006 - 20:30 #15
Jo tak :-)
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