Avatar billede s0mmer Nybegynder
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?
Avatar billede riversen Nybegynder
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.
Avatar billede riversen Nybegynder
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
Avatar billede s0mmer Nybegynder
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 ?
Avatar billede riversen Nybegynder
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
Avatar billede s0mmer Nybegynder
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>&nbsp;</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">&nbsp;</td>
    <td><input name="knap" type="submit" id="knap" value="Login"></td>
  </tr>
</table>
</form>
</body>
</html>
Avatar billede riversen Nybegynder
14. november 2003 - 17:42 #6
else
{
echo "Forkert brugernavn eller/og password";
}

output før header
Avatar billede s0mmer Nybegynder
14. november 2003 - 17:43 #7
forstår ikke, vis venligst
Avatar billede riversen Nybegynder
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
Avatar billede s0mmer Nybegynder
14. november 2003 - 17:49 #9
forstår ikke hvad du mener
Avatar billede 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?
Avatar billede s0mmer Nybegynder
14. november 2003 - 19:15 #11
sådan.. ja det giver samme fejl bare i linje 32 og 37
Avatar billede riversen Nybegynder
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
Avatar billede s0mmer Nybegynder
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');

?>
Avatar billede riversen Nybegynder
14. november 2003 - 19:31 #14
men prøv alligevel og seo m du får samme fejl...
Avatar billede riversen Nybegynder
14. november 2003 - 19:32 #15
hvordan ser db.php4 så ud?
Avatar billede s0mmer Nybegynder
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?
Avatar billede 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...
Avatar billede riversen Nybegynder
14. november 2003 - 19:35 #18
output og header er ikke det samme
Avatar billede riversen Nybegynder
14. november 2003 - 19:36 #19
der er noget du har misforstået
Avatar billede s0mmer Nybegynder
14. november 2003 - 19:43 #20
har jeg misforstået noget eller har exp?
Avatar billede 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!
Avatar billede riversen Nybegynder
14. november 2003 - 20:08 #22
dig :-)
Avatar billede s0mmer Nybegynder
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";
}
}


?>
Avatar billede exp Juniormester
14. november 2003 - 20:21 #24
og du er sikker på, at der ikke er et linieskift før <? eller efter ?>  ???
Avatar billede s0mmer Nybegynder
14. november 2003 - 20:28 #25
dunno.. tjekker lige..
Avatar billede riversen Nybegynder
14. november 2003 - 20:46 #26
s0mmer: send lige koden i mail til mig (eksperten@riversen.dk) eller exp
Avatar billede riversen Nybegynder
14. november 2003 - 20:47 #27
alle 3 filer
Avatar billede s0mmer Nybegynder
17. november 2003 - 13:33 #28
nej.. vil helst selv have rettet det, håbede bare på i ku hjælpe
Avatar billede s0mmer Nybegynder
17. november 2003 - 13:33 #29
ellers mange tak
Avatar billede 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.
Avatar billede s0mmer Nybegynder
20. november 2003 - 21:03 #31
Har fået det til at virke.. Ellers tak for hjælpen!
Avatar billede s0mmer Nybegynder
30. august 2006 - 23:27 #32
df
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