Avatar billede cocakaj Nybegynder
16. april 2002 - 22:50 Der er 9 kommentarer og
1 løsning

login header fejl

Hey!

Jeg får denne fejl når jeg prøver at logge ind:

Warning: Cannot add header information - headers already sent by (output started at D:\www\login.php:18) in D:\www\login.php on line 42

Jeg har sat: <? session_start(); ?> øverst, og linje 42 = header("Location: index.php");

Tænkte på om der er en anden kode som redirecter?
Avatar billede cocakaj Nybegynder
16. april 2002 - 22:51 #1
hmmm den har fjernet mine skråstreger her:
D:www/login.php:18) in D:www/login.php on line 42
Avatar billede snigermunken Nybegynder
16. april 2002 - 22:53 #2
header(); må ikke stå før noget output til brugeren, så som echo ""; print ""; og divs html tags.

Du skal flytte den op i toppen af din side.
Avatar billede mikl-dk Nybegynder
16. april 2002 - 23:00 #3
Jeg mener også, at du skal huske, at den skal være i samme php-sektion:

FORKERT:
<? session_start(); ?>
<? header("Location: index.php"); ?>

RIGTIG:
<?
session_start();

if ($bla == "XX") { header("Location: index.php"); }
?>
Avatar billede snigermunken Nybegynder
16. april 2002 - 23:05 #4
det er ikke nødvendigt.

Du kan sagtens sige:

<?
session_start();
if($erbrugerenloggetpå){ ?>

Her er der en masse html

<?
} else {
header("location: ljnlfds.php");
?>

uden det giver fejl.
Avatar billede snigermunken Nybegynder
16. april 2002 - 23:05 #5
også skal der jo være en } tilsidst :)
Avatar billede cocakaj Nybegynder
16. april 2002 - 23:16 #6
Forstår det ikke helt.

<?php
if($ok){
  mysql_connect('Localhost','root','');
  mysql_select_db("db");
  $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on' ");
  $row = mysql_fetch_array($result);
  $Alder = $row[alder];
  $Alias = $row[alias];
  if($Passw == "$row[kode]") {
    session_Register("Alias");
    session_register("Alder");
    header("Location: index.php");
    exit;
  } else {
    echo "Du har ikke adgang!";
  }
}

Hvor skal den flyttes hen?

?>
Avatar billede cocakaj Nybegynder
16. april 2002 - 23:17 #7
og har session_start() øverst
Avatar billede filip_b_l Nybegynder
17. april 2002 - 08:15 #8
Når du får fejlen med headers already sent, er det fordi du har en ulovlig php-sætning før din header. Denne kunne f.eks. være en setcookie. Du kan rette det med den simpleste html
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=index.php">
Så er det ikke sværere... :)
Det ser ikke så nørdet ud, så hvis du går efter at få et script som ingen html n00bs kan finde ud af må du selvfrølgeligt bruge din header... ellers er denne lige så go... !!!
//fille
Avatar billede binderup Nybegynder
17. april 2002 - 11:15 #9
Kig lidt nærmere på ob_start() og ob_end_flush() http://dk.php.net/manual/en/function.ob-start.php

hvis du placerer disse i henholdvis starten og slutningen af scriptet så kan du skrive til headeren lige så tosset du vil uden at det giver fejl.
Avatar billede cocakaj Nybegynder
17. april 2002 - 11:32 #10
binderup synes ikke at jeg kunne bruge det lige i midt stykke kode

Så derfor får fillip points :)
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