Avatar billede yHec Novice
23. februar 2005 - 11:03 Der er 9 kommentarer og
1 løsning

Problemer med redirect vha header og location

Hvorfor får jeg en fejl med at headeren allerede er sendt i linje 1 med denne snas kode? (helt konkret får jeg følgende:
Warning: Cannot modify header information - headers already sent by (output started at C:\blabla\\sess.inc.php.php:1) in C:\blabla\sess.inc.php.php on line 30)

<?php
$_SESSION['bruger_navn'] = "null";

if(isset($_POST['brugernavn']) && isset($_POST['pw'])){


$hostname_rs = "xxxxxx";
$database_rs = "xxxxxx";
$username_rs = "xxxxxx";
$password_rs = "xxxxxx";
$rs = mysql_pconnect($hostname_rs, $username_rs, $password_rs_) or die(mysql_error());


mysql_select_db($database_rs, $rs);
$query_rs_login = sprintf("SELECT Brugernavn, pw FROM mailingliste WHERE Brugernavn = '%s' and pw ='%s'", $_POST['brugernavn'], $_POST['pw']);
$rs_login = mysql_query($query_rs_login, $rs_upgrade) or die(mysql_error());
$row_rs_login = mysql_fetch_assoc($rs_login);
$totalRows_rs_login = mysql_num_rows($rs_login);

if ($row_rs_login['Brugernavn']==$_POST['brugernavn'] and $row_rs_login['pw']==$_POST['pw']) {
mysql_free_result($rs_login);
$_SESSION['bruger_id'] = md5("$_POST[brugernavn]"."$_POST[pw]");
$_SESSION['bruger_navn'] = "$_POST[brugernavn]";
}
else {
header("Location:fejllogin.php");
exit;
}
}

?>

Jeg fatter det ikke.... Fejlen. Det virker uden session_start (det har jeg undersøgt og afprøvet, det er ikke der problemet ligger).

Fejlen opstår i header linjen
Avatar billede kimg Nybegynder
23. februar 2005 - 11:19 #1
Kan løses på denne måde:
<?php
ob_start();
$_SESSION['bruger_navn'] = "null";

if(isset($_POST['brugernavn']) && isset($_POST['pw'])){


$hostname_rs = "xxxxxx";
$database_rs = "xxxxxx";
$username_rs = "xxxxxx";
$password_rs = "xxxxxx";
$rs = mysql_pconnect($hostname_rs, $username_rs, $password_rs_) or die(mysql_error());


mysql_select_db($database_rs, $rs);
$query_rs_login = sprintf("SELECT Brugernavn, pw FROM mailingliste WHERE Brugernavn = '%s' and pw ='%s'", $_POST['brugernavn'], $_POST['pw']);
$rs_login = mysql_query($query_rs_login, $rs_upgrade) or die(mysql_error());
$row_rs_login = mysql_fetch_assoc($rs_login);
$totalRows_rs_login = mysql_num_rows($rs_login);

if ($row_rs_login['Brugernavn']==$_POST['brugernavn'] and $row_rs_login['pw']==$_POST['pw']) {
mysql_free_result($rs_login);
$_SESSION['bruger_id'] = md5("$_POST[brugernavn]"."$_POST[pw]");
$_SESSION['bruger_navn'] = "$_POST[brugernavn]";
}
else {
header("Location:fejllogin.php");
exit;
}
}

ob_end_flush();
?>

Men det optimale/korrekte er selvfølgelig ikke at sende noget inden "header()"

Kim
Avatar billede detox Nybegynder
23. februar 2005 - 12:27 #2
Har du nogle mellemrum eller lign. inden selve scriptet?
Avatar billede yHec Novice
23. februar 2005 - 12:33 #3
kimg> hvad gør ob_start() helt præcist??
Detox> Nej, det har jeg undersøgt. Jeg har heller ikke nogen inclusions eller lignende!

Det er underligt

/jan
Avatar billede detox Nybegynder
23. februar 2005 - 12:35 #4
Du mangler: session_start() i starten af scriptet, måske det giver en fejlmelding (altså output).
Avatar billede yHec Novice
23. februar 2005 - 12:36 #5
Det troede jeg også. Men session_start giver den samme fejlmedling - uden brug af hesder....

Variabler får deres værdi alligevel
Avatar billede detox Nybegynder
23. februar 2005 - 12:42 #6
header("Location:fejllogin.php"); er på linje 26 og iflg. fejlmelding er det linje 30, hvis du er helt sikker på at: <?php er det absolut første i dit script er det mystisk.
Avatar billede yHec Novice
23. februar 2005 - 12:47 #7
detox> det er fordi jeg har fjernet nogen echoes mv fra scriptet inden jeg sendte det hertil. Iglf DW er det i linje 30 hesder står.

Men det virker. Der har ligget noget skjult aller øverst i filen. En tur gennem notepad, så var den hjemme!

Tak for hjælpen

Vil du ha' pointene detox?

/jan
Avatar billede detox Nybegynder
23. februar 2005 - 13:08 #8
Jo, hvorfor ikke :O) Velbekommen
Avatar billede detox Nybegynder
23. februar 2005 - 13:08 #9
svar
Avatar billede yHec Novice
23. februar 2005 - 13:13 #10
c",)
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