Avatar billede nasneja Nybegynder
05. oktober 2003 - 17:12 Der er 16 kommentarer og
1 løsning

Prolemmer med session_register() eller session_start()

I følge:
http://www.razor.dk/php.tutorials.sessions.php

siger den jeg skal bruge session_start() på alle de sider jeg skal bruges sessions på. Fair nok. Problemmet er bare når jeg smider det stykke kode i toppen (aller, aller øverst) giver den der her fejl:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at XXX php:1) in XXX on line 2

Lader jeg hver med at bruge den virker min session ikke,
den sletter hele tiden det sidste jeg tilføjede til min session, når jeg bruger den her kode:

$_SESSION["kurv"] = $_SESSION["kurv"] . "<tr><td style=\"width: 300px;\" class=\"kurv\">". $row['navn'] ."</td>" .
                    "<td style=\"width: 50px;\" class=\"kurv\">". $pris .",- kr</td>".
                    "<td style=\"width: 50px;\" class=\"kurv\">". $antal ." stk</td>".
                    "<td style=\"width: 70px;\" class=\"kurv\"><b>". $pris * $antal ." ,- kr</b></td></tr>";
                   
Det er til en webshop. Her er der slet ikke pivvelt ved Session_start eller session_registrer.

Hvorfor fungere det ik :)?.
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:13 #1
du har sendt out put inden din header, som er session_start(), det er sikkert en include fil eller noget i den retning, den skal flyttes ned efter session_start()
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:15 #2
alternativt kan du starte din fil med
<?
ob_start();
?>

og slutte den med

<?
ob_end_flush();
?>
Avatar billede nasneja Nybegynder
05. oktober 2003 - 17:17 #3
ztyxx nej det har jeg tjekket
session start er skrevet øverst oppe i min første include fil.
Det sjove er at PHP åbenbart selv indsætter kode før det, da den siger fejlen  kommer på linie 2?

Prøver dit trick
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:17 #4
prøv at smide hele koden
Avatar billede nasneja Nybegynder
05. oktober 2003 - 17:18 #5
det gør ingen forskel på om

ob_..flush er med eller ej?
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:19 #6
kan du have et mellemrum efter
<?
da det godt kan tolkes som output
Avatar billede nasneja Nybegynder
05. oktober 2003 - 17:19 #7
<?php
if($varegruppe&&$id) {
$sql = "SELECT * FROM $varegruppe WHERE id = $id";
$start = $_SESSION["kurv"];
$res = mysql_query($sql) or die("MySQL fejl:<br>". mysql_error() . "<br><br>SQL:<br>". $sql );
if($antal=="") {
$antal = 1;
}

while ($row = mysql_fetch_array($res)) {
$pris = $row['pris'];

$_SESSION["kurv"] =  $start . "<tr><td style=\"width: 300px;\" class=\"kurv\">". $row['navn'] ."</td>" .
                    "<td style=\"width: 50px;\" class=\"kurv\">". $pris .",- kr</td>".
                    "<td style=\"width: 50px;\" class=\"kurv\">". $antal ." stk</td>".
                    "<td style=\"width: 70px;\" class=\"kurv\"><b>". $pris * $antal ." ,- kr</b></td></tr>";
                   

}
}
?>
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:22 #8
$start = $_SESSION["kurv"];  //her beder du om at få en variabel til at indeholde noget du endnu ikke har sat.
prøv at lave det sådan:

<?php
$_SESSION["kurv"] =  $start . "<tr><td style=\"width: 300px;\" class=\"kurv\">". $row['navn'] ."</td>" .
                    "<td style=\"width: 50px;\" class=\"kurv\">". $pris .",- kr</td>".
                    "<td style=\"width: 50px;\" class=\"kurv\">". $antal ." stk</td>".
                    "<td style=\"width: 70px;\" class=\"kurv\"><b>". $pris * $antal ." ,- kr</b></td></tr>";

if($varegruppe&&$id) {
$sql = "SELECT * FROM $varegruppe WHERE id = $id";
$start = $_SESSION["kurv"];
$res = mysql_query($sql) or die("MySQL fejl:<br>". mysql_error() . "<br><br>SQL:<br>". $sql );
if($antal=="") {
$antal = 1;
}

while ($row = mysql_fetch_array($res)) {
$pris = $row['pris'];

}
}
?>
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:23 #9
ups

<?php
session_start();
$_SESSION["kurv"] =  $start . "<tr><td style=\"width: 300px;\" class=\"kurv\">". $row['navn'] ."</td>" .
                    "<td style=\"width: 50px;\" class=\"kurv\">". $pris .",- kr</td>".
                    "<td style=\"width: 50px;\" class=\"kurv\">". $antal ." stk</td>".
                    "<td style=\"width: 70px;\" class=\"kurv\"><b>". $pris * $antal ." ,- kr</b></td></tr>";

if($varegruppe&&$id) {
$sql = "SELECT * FROM $varegruppe WHERE id = $id";
$start = $_SESSION["kurv"];
$res = mysql_query($sql) or die("MySQL fejl:<br>". mysql_error() . "<br><br>SQL:<br>". $sql );
if($antal=="") {
$antal = 1;
}

while ($row = mysql_fetch_array($res)) {
$pris = $row['pris'];

}
}
?>
Avatar billede nasneja Nybegynder
05. oktober 2003 - 17:28 #10
Det fungere nu, skulle lige omrokere lidt i dit forslag så jeg kunne få informationerne:
<?php
if($varegruppe&&$id) {
session_start();
$start = $_SESSION["kurv"];
$sql = "SELECT * FROM $varegruppe WHERE id = $id";

$res = mysql_query($sql) or die("MySQL fejl:<br>". mysql_error() . "<br><br>SQL:<br>". $sql );
if($antal=="") {
$antal = 1;
}

while ($row = mysql_fetch_array($res)) {
$pris = $row['pris'];
$_SESSION["kurv"] =  $start . "<tr><td style=\"width: 300px;\" class=\"kurv\">". $row['navn'] ."</td>" .
                    "<td style=\"width: 50px;\" class=\"kurv\">". $pris .",- kr</td>".
                    "<td style=\"width: 50px;\" class=\"kurv\">". $antal ." stk</td>".
                    "<td style=\"width: 70px;\" class=\"kurv\"><b>". $pris * $antal ." ,- kr</b></td></tr>";

}
}
?>

:-) TAK!
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:30 #11
tillader mig at lægge et svar ;-)
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:30 #12
øhhh, prøver igen
Avatar billede nasneja Nybegynder
05. oktober 2003 - 17:35 #13
:-)
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 17:36 #14
takker for point ;-)
Avatar billede fangel Nybegynder
05. oktober 2003 - 18:03 #15
ztyxx -> du er eftersøgt: http://exp.dk/spm/408905
Avatar billede ztyxx Nybegynder
05. oktober 2003 - 18:05 #16
dea_pg tror du ikke nærmere at det er her http://www.eksperten.dk/spm/395903 ;-)
Avatar billede fangel Nybegynder
05. oktober 2003 - 18:20 #17
sørens - det sker HVER gang ;) (ikke sådan når man får for mange mails ind fra exp, så mister man holdet om dem)
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