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
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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
23. februar 2005 - 12:27
#2
Har du nogle mellemrum eller lign. inden selve scriptet?
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
23. februar 2005 - 12:35
#4
Du mangler: session_start() i starten af scriptet, måske det giver en fejlmelding (altså output).
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
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.
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
23. februar 2005 - 13:08
#8
Jo, hvorfor ikke :O) Velbekommen
23. februar 2005 - 13:08
#9
svar
23. februar 2005 - 13:13
#10
c",)
Vi tilbyder markedets bedste kurser inden for webudvikling