14. november 2003 - 17:29
Der er
31 kommentarer og 1 løsning
Fejl med header
Hejsa Har et lille fikst smart login script, det virker fint, men ligeså snart jeg sætter det her ind: // admins kommer herhen if ($s_brugertype == 'admin') { header("Location:admin.htm"); // brugerne kommer herhen } else { header("Location:bruger.htm"); } kommer den her fejl: Warning: Cannot modify header information - headers already sent by (output started at /usr/home/steffen/public_html/db_con.php4:8) in /usr/home/steffen/public_html/login.htm on line 36 eller 31 line 31 = header("Location:admin.htm"); line 36 = header("Location:bruger.htm"); nogle der ka hjælpe mig så jeg ik får fejl?
Annonceindlæg fra Jysk IT
Sikkerhed skal være en del af driften
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
14. november 2003 - 17:31
#1
header skal sendes før der udskrives noget til siden...du må have noget output længere oppe på siden.
14. november 2003 - 17:31
#2
hvis du ikke har mulighed for at flytte det længere op, kan du bruge javascript location.href=admin.htm
14. november 2003 - 17:35
#3
ik noget header øverst på siden. jeg har include("db_con.php4"); som fejlen også referer til, men jeg burde da kunne gøre det jeg gør ?
14. november 2003 - 17:37
#4
ikke hvis der er noget output i db_con.php4 hvad mener du med " ik noget header øverst på siden. " ? tror du misforstår
14. november 2003 - 17:38
#5
nu får du altså hele koden.. <?php session_start(); if(isset($knap)) { include("db_con.php4"); $query = $db->SendSQL("SELECT * FROM `login` WHERE `brugernavn`='$brugernavn' AND `password`='$password'"); if(count($query) > 0) { $s_brugernavn = $query[0][0]; $s_password = $query[0][1]; $s_brugertype = $query[0][2]; $s_id = $query[0][3]; //echo count($query); session_start(); session_register ($s_brugernavn); session_register ($s_password); session_register ($s_brugertype); session_register ($s_id); } // count query else { echo "Forkert brugernavn eller/og password"; } // admins kommer herhen if ($s_brugertype == 'admin') { header("Location:admin.htm"); // brugerne kommer herhen } else { header("Location:bruger.htm"); } }// stop if knap ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <p> </p><center> Login </center><form method="post"> <table width="37%" border="0" cellpadding="3"> <tr> <td width="27%"><p>Brugernavn:</p> </td> <td width="73%"><input type="text" name="brugernavn" id="brugernavn"></td> </tr> <tr> <td>Password:</td> <td><input type="text" name="password" id="password"></td> </tr> <tr> <td height="27"> </td> <td><input name="knap" type="submit" id="knap" value="Login"></td> </tr> </table> </form> </body> </html>
14. november 2003 - 17:42
#6
else { echo "Forkert brugernavn eller/og password"; } output før header
14. november 2003 - 17:43
#7
forstår ikke, vis venligst
14. november 2003 - 17:45
#8
prøv at udkommentere linien, så skulle du ikke få fejlen, med mindre der er noget i din include fil
14. november 2003 - 17:49
#9
forstår ikke hvad du mener
exp
Juniormester
14. november 2003 - 18:25
#10
skriv dette: // echo "Forkert brugernavn eller/og password"; istedet for echo "Forkert brugernavn eller/og password"; Giver det fejl?
14. november 2003 - 19:15
#11
sådan.. ja det giver samme fejl bare i linje 32 og 37
14. november 2003 - 19:17
#12
output started at /usr/home/steffen/public_html/db_con.php4 hvordan ser din db_con.php4 ud ? prøv at udkommentere den linie også ved at sætte // foran
14. november 2003 - 19:25
#13
hvis jeg udkommenterer virker det jo ik da det er den der styrer db'erne. men db_con ser såen her ud: <?php include("include/db.php4"); $db = new DB('mineoplysninger', 'mineoplysninger', 'mineoplysninger', 'mineoplysninger'); ?>
14. november 2003 - 19:31
#14
men prøv alligevel og seo m du får samme fejl...
14. november 2003 - 19:32
#15
hvordan ser db.php4 så ud?
14. november 2003 - 19:33
#16
jeg får fejl db.php4 er en lang fil med forsk. commands der skal gøre hvis der sker dit og dat. men den inderholder ikke noget header, så forstår ikke?
exp
Juniormester
14. november 2003 - 19:34
#17
nej, men hvis der er output i den, fx et linieskift, et mellemrum eller lignende, så ligger fejlen der...
14. november 2003 - 19:35
#18
output og header er ikke det samme
14. november 2003 - 19:36
#19
der er noget du har misforstået
14. november 2003 - 19:43
#20
har jeg misforstået noget eller har exp?
exp
Juniormester
14. november 2003 - 19:51
#21
Prøv at poste indholdet af db.php4 herinde. HUSK HVIS DER ER PASSWORDS ETC I, så kryds dem lige over!
14. november 2003 - 20:08
#22
dig :-)
14. november 2003 - 20:09
#23
ku ik selv finde fejlen så her er en db.php4 : <? class DB { var $DBHost; var $DBUser; var $DBPass; var $DBName; var $DBConn; function DB($DBH, $DBU, $DBP, $DBN) { if(!($DBH =="" && $DBU =="" && $DBP =="" && $DBN =="")) { $this->DBHost = $DBH; $this->DBUser = $DBU; $this->DBPass = $DBP; $this->DBName = $DBN; $this->DBConn = mysql_connect($this->DBHost, $this->DBUser, $this->DBPass); if ((!mysql_select_db($this->DBName, $this->DBConn))) { //echo "Fejl ved DB-Valg"; $this->ExecSQL("CREATE DATABASE $DBN"); } if (!$this->DBConn) { echo "Fejl ved connect\n"; $this->DBConn=0; break; } } else { echo "Du skal angive servernavn, bruger & password"; } } function SendSQL($Sql) { if (!((strstr(strtolower($Sql), "delete") ) || (strstr(strtolower($Sql), "insert") ) || (strstr(strtolower($Sql), "update") ))) { // indeholder select-statements count($this->DBConn); $result_set = mysql_query($Sql,$this->DBConn); $rows = mysql_num_rows($result_set); while($arr = mysql_fetch_array($result_set)) { $linier[] = $arr; } return $linier; } else { echo "Ulovlig SQL kommando/forspørgsel"; } } function execSQL($SQLString) { if(!(mysql_query($SQLString, $this->DBConn))) { return 0; } else { return 1; } } function test() { echo "Hej med Dig"; } } ?>
exp
Juniormester
14. november 2003 - 20:21
#24
og du er sikker på, at der ikke er et linieskift før <? eller efter ?> ???
14. november 2003 - 20:28
#25
dunno.. tjekker lige..
14. november 2003 - 20:46
#26
s0mmer: send lige koden i mail til mig (eksperten@riversen.dk) eller exp
14. november 2003 - 20:47
#27
alle 3 filer
17. november 2003 - 13:33
#28
nej.. vil helst selv have rettet det, håbede bare på i ku hjælpe
17. november 2003 - 13:33
#29
ellers mange tak
exp
Juniormester
17. november 2003 - 16:50
#30
vi kan sikkert godt hjælpe dig, men ikke ud fra de informationer du pt. har givet os :-) riversen er en yderst kompetent programmør, og tror da også han vil sige nogenlunde det samme om mig, dine data er sikre hos os.
20. november 2003 - 21:03
#31
Har fået det til at virke.. Ellers tak for hjælpen!
30. august 2006 - 23:27
#32
df
Vi tilbyder markedets bedste kurser inden for webudvikling