Avatar billede dumazz Nybegynder
28. februar 2003 - 17:38 Der er 10 kommentarer og
3 løsninger

Header already sent...

Warning: Cannot send session cookie - headers already sent by (output started at /index2.php:6) in /index2.php on line 83

Linie 83 indeholder den session jeg gerne vil skrive.... men kan ikke komme til det da der åbenbart allerede er sendt et eller andet (der er ikke andre sessions request i scriptet)

Hvad kan der være galt, ???
Avatar billede htm Nybegynder
28. februar 2003 - 17:41 #1
Du må ikke skrive noget som helst ud til browseren før du sætter sessions!

Dette kan være alt fra en echo til et linieskift eller mellemrum før <?php eller desideret html-kode!
Avatar billede htm Nybegynder
28. februar 2003 - 17:41 #2
Avatar billede alrua Nybegynder
28. februar 2003 - 17:44 #3
du skal bare have session_start(); på den første linje i scriptet :)
Avatar billede dumazz Nybegynder
28. februar 2003 - 17:45 #4
så kommer denne:

Warning: open(/tmp\sess_80f6e79d2954dc9b5014b662f7a31671, O_RDWR) failed: m (2) in Unknown on line 0
Avatar billede alrua Nybegynder
28. februar 2003 - 17:50 #5
check din php.ini og find det sted hvor der står "session_save_path" - den står som standard til /tmp og det virker sjovt nok ikke i windoze - du må rette det til et bibliotek som eksisterer :)
Avatar billede dumazz Nybegynder
28. februar 2003 - 17:52 #6
Jeg har ikke adgang til php.ini ... den ligger på www.b-one.nu
Avatar billede alrua Nybegynder
28. februar 2003 - 17:55 #7
så må du skrive til dem og sige at de er nogle idioter og at de skal se at få det rettet! :D
Avatar billede dumazz Nybegynder
28. februar 2003 - 19:54 #8
hvad skal man så skrive istedet for:

  header("Location:logind.php");

hvis man vil skrive det inde midt i en kode ???
Avatar billede nicklasb Nybegynder
01. marts 2003 - 10:59 #9
det kommer du slet ikke til at skulle bruge, hvis du koder på en ordentlig måde..

Normalt skal alle koder, der ikke skal printes laves før alt andet i dokumentet. Altså helt i toppen. Hvis der så ud fra dette kommer noget du kunne få brug for at printe ud på siden, skal du først ligge det ned i variabler, og så senere tjekke om disse er der, og så printe dem ud..

Det du har gang i, er at loade et halvt dokument, og så bag efter bare vidrestille.. Dette siger jo sig selv, vil gå galt.. For hvis den skal gøre dette vil det så også betyde at man kan gå tilbage og se hvad det var der nåede at komme på siden..
Så prøv at ændre dine programmerings-vaner.. Det er en god ting :)

altså i toppen laver du en:

----------------------------kodestart----------------------------
<?

[noget php-kode.. Fx udtræk fra en database]

[her tjekker du om det er det du ønskede der kom ud, fx med en:]

if ($resultat == 'det ønskede') {
$variabel_1 = "";
$variabel_2 = "";
$variabel_3 = "";
$variabel_osv = "";
} else {
header("Location:logind.php");
}
?>
[her skal toppen af din side være..]

og så kan du prive sidens data ud her:
<?
echo "hej $variabel_1.. du er nu logget på..
$variabel_2, $variabel_3 og $variabel_osv..";
?>
[og så bunden her.. ]
--------------------------/kodestart----------------------------

/Nicklas B.
Avatar billede dumazz Nybegynder
01. marts 2003 - 16:01 #10
Jeg har denne kode som skal logge folk ind (alt foregår i index.php)

index.php:

-------------

<?
if($login){
if($login == opret)
{
if($navn !== "" && $email !== "" && $pass !== ""){
include("connect.php");
mysql_query("insert into bruger (navn, email, pass) values ('$navn', '$email', '$pass')");
mysql_close;
}
header("Location:?");
}}
if($login == login){

session_start();
include("connect.php");
$data = mysql_query("SELECT navn, pass, admin FROM bruger WHERE navn='$_POST[bruger]'");
if(isset($_POST['bruger'], $_POST['pass'])) {

$brugertjek = mysql_fetch_object($data);

if($brugertjek->navn != $_POST['bruger']) {
$_SESSION['navne_fejl'] = 1;
header("Location:logind.php");
exit;
}
$_SESSION['bruger'] = $_POST['bruger'];
    if($brugertjek->pass != $_POST['pass']) {
    $_SESSION['pass_fejl'] = 1;
    header("Location:logind.php");
exit;
    }else{
    $_SESSION['admin'] = $brugertjek->admin;
    header("Location:side1.php");
exit;
    }
mysql_free_result($data);

}}}
if(!($login)){
session_start();
if(isset($_SESSION['bruger'])) {
$value = $_SESSION['bruger'];
unset($_SESSION['bruger']);
}else{
$value = "";
}}
?><html>
<body oncontextmenu="return false" bgcolor="1165bb">

<center>

<table width="750" height="100" cellpadding="0" cellspacing="0" border="0" bordercolor="000000">
<tr><td valign="top"><img src="img/top.jpg" width="750" height="100"></td></tr></table>

<table width="750" bgcolor="ffffff" border="2" bordercolor="000000" cellpadding="0" cellspacing="0">

<tr>
<td width="150" valign="top">
<font face="tahoma" size="2">
<center>
<font size="4"><b>Menu</b></font>
<p>
<a href="<? echo"$PHP_SELF"; ?>">Forsiden</a><br>
<a href="?index=om">Om os</a><br>
<hr size="2" color="000000">
<center>
<font size="4"><b>Login</b></font>
<?
if($login){
if($login == opret)
{
if($navn == ""){echo"<br>Navn, ";}
if($email == ""){echo"<br>Email, ";}
if($pass == ""){echo"<br>Pass, ";}
if(($navn == "") || ($email == "") || ($pass == "")){
echo"mangler<p><a href='?login=ny'>Tilbage</a>";
}else{echo"du er nu oprettet";}}
if($login == ny){
?>
<form action="?login=opret" method="post">
<input type="hidden" name="action" value="ny">
<font size="1">Navn:<br>
<input type="text" name="navn" size="20"  style="background-position: 0% 50%"><br>
Email:<br>
<input type="text" name="email" size="20"  style="background-position: 0% 50%"><br>
Pass:<br>
<input type="text" name="pass" size="12"  style="background-position: 0% 50%">
<input type="submit" value="Opret"></form>
<?
}
}else{

?> 
<form action="?login=login" method="post">
Brugernavn:<br>
<input type="text" name="bruger" value="<?php echo $value; ?>"><br>
Password:<br>
<input type="password" name="password"><br>
<input type="submit" value="Login"><br>
</form>
<?
if(isset($_SESSION['navne_fejl'])) {
echo"Bruger findes ikke!";
unset($_SESSION['navne_fejl']);
}
if(isset($_SESSION['password_fejl'])) {
echo"Password er forkert!";
unset($_SESSION['password_fejl']);
}
?>
<a href="?login=ny">Ny bruger</a></font>
<?
}
?>
</center></td>

<td width="*" valign="top">
<center>
<table width="90%"><tr><td>
<b>
<br><p><center>

<?
echo "<font face='tahoma' size='2'>";
if($index){
require("$index.php");
}else{
echo "<center><font face 'Tahoma' size='5'><b>- Velkommen -</b><p><font size='2'>crewet byder dig velkommen til \"InZanity Online\"<p>Dette nye design er blot en Beta... har du gode forslag så skriv til os</font>";
}
?>
</td></tr></table>
</td>
    <td width="150" valign="top"><center>
<font face="tahoma" size="2">
<font size="4"><b>Sponsor</b></font><p>
<br><font size="1"><a href="?index=sponsor">Bliv sponsor</a></font><br><br>
</td></tr>
</table>
</div>
</body>
</html>

-----------------

Håber i gider hjælpe mig på fode.... jeg har mistet fæstet med dette script....
Avatar billede dumazz Nybegynder
01. marts 2003 - 16:05 #11
der hvor der står header("Location:logind.php");

skal der blot stå... header("Location:?");

Det har jeg rettet men det virker stadig ikke.... jeg har fremsendt hele scriptet så i kan lege med det selv....

Håber i får det til at virke...

vil gerne give 60 point oveni hvis i ønsker det...
Avatar billede nicklasb Nybegynder
01. marts 2003 - 16:17 #12
ved ikke lige hvad det er du vil, og hvad det er der er galt.. men du har i hvert falde sluttet dine if-statsment en gang for meget..
jeg vil tro at det er i linie 38.. der skal vist kun være to }'er..
Hvis ikke du er kommet til at lave tomme linier eller mellemrum før <? skulle din header da gerne funke..
Der står intet i connect.php der skal printes ud vel?? og der er heller ingen tomme linier i den vel??
Avatar billede dumazz Nybegynder
02. marts 2003 - 14:52 #13
hvad kan man skrive her istedet for header location ???

if($id)
{
include("connect.php");

$data = mysql_query("select url, hits from link where id = '$id'");
$row = mysql_fetch_array($data);
$hits = $row[hits] + 1;
mysql_query("update link set hits = '$hits' where id = '$id'");
header("location: http://$row[url]");

mysql_close;
exit;
}
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