php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.08.2006, 15:11  
Erfahrener Benutzer
 
Registriert seit: 04.05.2005
Beiträge: 102
Charly Shop Sui
Standard Problem mit Session

Hey ihr,
ich programmiere gerade einen Onlineshop und hab nun ein Problem, wenn ich den Ausgewählten Artikel und die Anzahl in eine Session schreiben will.

Es kommt folgende Fehlermeldung:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\......\index.php:9) in C:\......\shop\bestellen.php on line 3

Die bestellen.php ist die Datei, in der in die Session geschrieben werden soll.
PHP-Code:
<?php
include './inc/mysql.php';
session_start ();

if (isset(
$_GET["bestell_id"])) 
      
$bestell_id $_GET["bestell_id"]; 
    else 
      
$bestell_id "";

if(!empty(
$_POST["id"]))
    {
        
$id $_POST["id"];
        
$anzahl $_POST["anzahl"];
        
$name $_POST["name"];

        
// Sessionvariablen erstellen
        
$_SESSION["id"] = $id
        
$_SESSION["anzahl"] = $anzahl;

        echo
"Sie haben $anzahl mal den Artikel [b]$name[/b] bestellt.
[url='index.php?section=shop']Weiter[/url]"
;
    }


if(!empty(
$bestell_id))
    {
        
$abfrage2 "SELECT * FROM shop_artikel WHERE artikel_id = '$bestell_id'";
        
$ergebnis2 mysql_query($abfrage2);
        while(
$row mysql_fetch_object($ergebnis2))
            {
            echo
"
                <form action='./index.php?section=shop&cat=Bestellung' name='warenkorb' method='post'>
                <font color='000000' face='Arial' size='2'>[b]Ausgewählter Artikel:[/b]</font>
                <font color='000000' face='Arial' size='2'>$row->artikel_name</font>


                <input type='hidden' name='id' value='$bestell_id'>
                <input type='hidden' name='name' value='"
.$row->artikel_name."'>
                Anzahl:<input type='text' name='anzahl' size='5'>
                



                <input type='image' name='bestellen' src='./design/in-den-warenkorb.jpg'>
                </form>
            "
;
            }
    }
?>
Hier die Index.php, hier wird nur das Design erzeugt und in einem kurzen PHP-Teil, die Sectionen verarbeitet (z.B. index.php?section=home)

PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>Saxgirls - Hier bist du nicht allein......</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <script
    language="JavaScript" type="text/javascript">
    <!--
    button1a= new Image();
    button1a.src = "design/saxgirls-sliced_05.jpg"
    button1b= new Image();
    button1b.src = "design/saxgirls-sliced_05_b.jpg"
    button1a= new Image();
    button1a.src = "design/saxgirls-sliced_07.jpg"
    button1b= new Image();
    button1b.src = "design/saxgirls-sliced_07_b.jpg"
    button1a= new Image();
    button1a.src = "design/saxgirls-sliced_09.jpg"
    button1b= new Image();
    button1b.src = "design/saxgirls-sliced_09_b.jpg"
    button1a= new Image();
    button1a.src = "design/saxgirls-sliced_11.jpg"
    button1b= new Image();
    button1b.src = "design/saxgirls-sliced_11_b.jpg"
    button1a= new Image();
    button1a.src = "design/saxgirls-sliced_13.jpg"
    button1b= new Image();
    button1b.src = "design/saxgirls-sliced_13_b.jpg"
    //-->
    </script>

    <style type="text/css">
    img {
    display: block;
    }
    </style>

<link rel="SHORTCUT ICON" href="design/favicon.ico">
</head>

<body bgcolor="#ECECEC">


    


    <table id="Tabelle_01" align="center" width="800" border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td colspan="14">
                [img]design/saxgirls-sliced_01.jpg[/img]</td>
        </tr>
        <tr>
            <td rowspan="3">
                [img]design/saxgirls-sliced_02.jpg[/img]</td>
            <td colspan="9">
                [url="index.php?section=home"][img]design/saxgirls-sliced_03.jpg[/img][/url]</td>
            <td colspan="4">
                [img]design/saxgirls-sliced_04.jpg[/img]</td>
        </tr>
        <tr>
            <td>
                    <a href="index.php?section=story"
        
                    onmouseover="austausch1.src='design/saxgirls-sliced_05_b.jpg';"
                    onmouseout="austausch1.src='design/saxgirls-sliced_05.jpg';">
                    
                    [img]design/saxgirls-sliced_05.jpg[/img]
                    </a>
            </td>
            <td>
                [img]design/saxgirls-sliced_06.jpg[/img]</td>
            <td>
                <a href="index.php?section=wg"
        
                    onmouseover="austausch2.src='design/saxgirls-sliced_07_b.jpg';"
                    onmouseout="austausch2.src='design/saxgirls-sliced_07.jpg';">
                    
                    [img]design/saxgirls-sliced_07.jpg[/img]
                    </a>
            </td>
            <td>
                [img]design/saxgirls-sliced_08.jpg[/img]</td>
            <td>
                <a href="index.php?section=girls"
        
                    onmouseover="austausch3.src='design/saxgirls-sliced_09_b.jpg';"
                    onmouseout="austausch3.src='design/saxgirls-sliced_09.jpg';">
                    
                    [img]design/saxgirls-sliced_09.jpg[/img]
                    </a>
            </td>
            <td>
                [img]design/saxgirls-sliced_10.jpg[/img]</td>
            <td>
                    <a href="index.php?section=shop"
        
                    onmouseover="austausch4.src='design/saxgirls-sliced_11_b.jpg';"
                    onmouseout="austausch4.src='design/saxgirls-sliced_11.jpg';">
                    
                    [img]design/saxgirls-sliced_11.jpg[/img]
                    </a>    
            </td>
            <td>
                [img]design/saxgirls-sliced_12.jpg[/img]</td>
            <td colspan="2">
                    <a href="index.php?section=kontakt"
        
                    onmouseover="austausch5.src='design/saxgirls-sliced_13_b.jpg';"
                    onmouseout="austausch5.src='design/saxgirls-sliced_13.jpg';">
                    
                    [img]design/saxgirls-sliced_13.jpg[/img]
                    </a>    
            </td>
            <td>
                [img]design/saxgirls-sliced_14.jpg[/img]</td>
            <td>
                    <a href="index.php?section=mitglieder"
        
                    onmouseover="austausch6.src='design/saxgirls-sliced_15_b.jpg';"
                    onmouseout="austausch6.src='design/saxgirls-sliced_15.jpg';">
                    
                    [img]design/saxgirls-sliced_15.jpg[/img]
                    </a>    
            </td>
            <td rowspan="2">
                [img]design/saxgirls-sliced_16.jpg[/img]</td>
        </tr>
        <tr>
            <td colspan="12">
                [img]design/saxgirls-sliced_17.jpg[/img]</td>
        </tr>
        <tr>
            <td colspan="14" background="design/saxgirls-sliced_18.jpg" width="800" height="323">
            
                    <table border="0" align="center" cellpadding="0" cellspacing="0" width="90%" id="AutoNumber1">
                          <tr>
                                <td width="20" height="367" align="left" valign="top">

    <?php
    
if (isset($_GET["section"])) 
      
$section $_GET["section"]; 
    else 
      
$section ""

    switch(
$section
    {
        case 
"album"$site="album.php"; break;
        case 
"impressum"$site="impressum.php"; break;
        case 
"agb"$site="agb.php"; break;
        case 
"admin"$site="admin/index.php"; break;
        case 
"wg"$site="wg.php"; break;
        case 
"home"$site="home.php"; break;
        case 
"mitglieder"$site="mitglieder.php"; break;
        case 
"shop"$site="shop/index.php"; break;
        case 
"kontakt"$site="kontakt.php"; break;
        case 
"home"$site="story.php"; break;
        case 
"story"$site="story.php"; break;
        case 
"girls"$site="girls.php"; break;
        case 
"anmeldung"$site="anmeldung.php"; break;
        default: 
$site="home.php"; break;
    }

    include 
"$site";
                                echo
"
                                </td>
                          </tr>
                        </table>    

                </td>
        </tr>
        <tr>
            <td colspan='14'>
                [img]design/saxgirls-sliced_19.jpg[/img]</td>
        </tr>
        <tr>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
            <td>
                [img]design/Abstandhalter.gif[/img]</td>
        </tr>
    </table>
    <center><font face='arial' size='2' color='gray'>[url='index.php?section=impressum']Impressum[/url] | [url='index.php?section=agb']AGB[/url] | Copytight 2006 Saxgirls.de </font></center>
</body>
</html>
"
;
?>
....habe schon die Suchfunktion genutzt und nach der Fehlermeldung gesucht. Google hab ich auch benutzt aber kam nicht wirklich was bei raus.
Charly Shop Sui ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.08.2006, 15:15  
Benutzer
 
Registriert seit: 05.10.2004
Beiträge: 51
arcor
Standard

Code:
session_start ();
ganz an den Anfang der Datei!

und Forumssuche nach:

Cannot send session cookie - headers already sent by
und alles wäre gut gewesen

Greetz
Marco
arcor ist offline  
Alt 25.08.2006, 15:17  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard Re: Problem mit Session

Zitat:
Zitat von Charly Shop Sui
....habe schon die Suchfunktion genutzt und nach der Fehlermeldung gesucht. Google hab ich auch benutzt aber kam nicht wirklich was bei raus.

LÜGE!
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 25.08.2006, 15:26  
Erfahrener Benutzer
 
Registriert seit: 04.05.2005
Beiträge: 102
Charly Shop Sui
Standard

Hab's jetzt so gemacht, geht aber immernoch nicht.

PHP-Code:
<?php
session_start
();
include 
'./inc/mysql.php';


if (isset(
$_GET["bestell_id"])) 
      
$bestell_id $_GET["bestell_id"]; 
    else 
      
$bestell_id "";

if(!empty(
$_POST["id"]))
    {
        
$id $_POST["id"];
        
$anzahl $_POST["anzahl"];
        
$name $_POST["name"];

        
// Sessionvariablen erstellen
        
$_SESSION["id"] = $id
        
$_SESSION["anzahl"] = $anzahl;

        echo
"Sie haben $anzahl mal den Artikel [b]$name[/b] bestellt.
[url='index.php?section=shop']Weiter[/url]"
;
    }


if(!empty(
$bestell_id))
    {
        
$abfrage2 "SELECT * FROM shop_artikel WHERE artikel_id = '$bestell_id'";
        
$ergebnis2 mysql_query($abfrage2);
        while(
$row mysql_fetch_object($ergebnis2))
            {
            echo
"
                <form action='./index.php?section=shop&cat=Bestellung' name='warenkorb' method='post'>
                <font color='000000' face='Arial' size='2'>[b]Ausgewählter Artikel:[/b]</font>
                <font color='000000' face='Arial' size='2'>$row->artikel_name</font>


                <input type='hidden' name='id' value='$bestell_id'>
                <input type='hidden' name='name' value='"
.$row->artikel_name."'>
                Anzahl:<input type='text' name='anzahl' size='5'>
                



                <input type='image' name='bestellen' src='./design/in-den-warenkorb.jpg'>
                </form>
            "
;
            }
    }
?>
Die Zeile 1,2 und 3 sind irgendwie komisch. Das "<?php" steht eigentlich ganz oben, keine Ahnung warum der hier Oben und Unten 3 Zeilen dranhängt.
Charly Shop Sui ist offline  
Alt 25.08.2006, 15:36  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

Liegt wogl daran, das du die Datei includest, was dir auch dir Fehlermeldung oben sagt.
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 25.08.2006, 15:37  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Wird die Datei irgendwo eingebunden?
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 25.08.2006, 15:46  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Bitte kürze deinen abgedruckten Quellcode auf das Wesentliche zusammen.

Und, lass mal besser sein, einen Shop zu programmieren. Kann teuer werden, wenn man keinen Plan hat! Zumindest die Sizungssteuerung und wie man die sicher gestaltet sollte man dafür aus dem Effeff kennen.

Basti
Basti ist offline  
Alt 25.08.2006, 15:50  
Erfahrener Benutzer
 
Registriert seit: 04.05.2005
Beiträge: 102
Charly Shop Sui
Standard

Naja die Datei wird in der Index.php included. Geht das nicht???? Das wäre ja blöd.

@Basti: Warum sollt ich es sein lassen, nur wenn mal ein Fehler aufkommt, denn ich nicht kenne? Dann sag du doch wie man das Problem löst. Und wie soll ich den Quellcode auf's Wesentliche beschränken, wenn ich nicht weis, ob gerade das Unwesentliche relevant für die Problemlösung ist.

Edit: Problem gelöst, hab das " session_start();" in die Index.php eingefügt. jetzt geht's.
Charly Shop Sui ist offline  
Alt 25.08.2006, 15:54  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von Charly Shop Sui
@Basti: Warum sollt ich es sein lassen, nur wenn mal ein Fehler aufkommt, denn ich nicht kenne? Dann sag du doch wie man das Problem löst.
Ich bin zwar nicht Basti, aber ist ja auch nicht so wichtig Es geht nicht darum, dass du Fehler nicht beheben kannst. Wenn du aber Sicherheitslöcher offen lässt, kann es für den Shop sehr sehr teuer werden. Um mal ein (unpopuläres) Gegenbeispiel zu nennen: Wird ein Browser-Game gehackt, ist das zwar ärgerlich, aber tragbar. Wird dein Shop gehackt, kanns eben böse enden. Und Sicherheitslöcher machen sich leider nicht von selbst erkennbar

Zitat:
Zitat von Charly Shop Sui
Naja die Datei wird in der Index.php included. Geht das nicht???? Das wäre ja blöd.
Dann setze das session_start(); an den Anfang der Index! Die Fehlermeldung sollte eigentlich schon aussagen, was sie von dir will:
Zitat:
Naja die Datei wird in der Index.php included. Geht das nicht???? Das wäre ja blöd.
Also sollte man schaun, dass die header noch nicht gesendet wurden, was ja dann so ist, solange noch nichts anderes ausgegeben wurde.
KingCrunch ist offline  
Alt 25.08.2006, 15:59  
Erfahrener Benutzer
 
Registriert seit: 04.05.2005
Beiträge: 102
Charly Shop Sui
Standard

@KingCrunch: Ich weis schon um die Sicherheitslöcher, gab schon Internetseiten, wo der Preis eines Artikel über die URL übergeben wurde. Sowas mach ich sicherlich nicht. Lediglich die Artikel-ID und die Anzahl wird übergeben und ist relevant, das ganze geschiet auchnoch mit POST zwischen den Dateien. In der Warenkorb.php werden dann die Sessiondaten (auch wieder nur Artikel-ID und Anzahl) ausgelesen und alles mit Hilfe der MySQL-Datenbank abgeglichen und berechnet.

Wenn noch jemand ein Tipp oder so zu Sicherheitslöchern hat, bitte posten.
Charly Shop Sui ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Und noch ein Session Problem... Weyoun PHP Tipps 2006 9 27.02.2006 22:17
Problem mit Firefox und Session PHP Tipps 2005-2 5 25.08.2005 01:14
problem mit session LA-Finest PHP Tipps 2005-2 13 18.08.2005 15:54
Session wieder aufnehmen; Problem mit GET Jacks Rache PHP-Fortgeschrittene 9 12.08.2005 14:32
[Erledigt] Problem mit Session PHP Tipps 2005-2 1 06.08.2005 19:07
Problem mit Session PHP Tipps 2005-2 13 10.07.2005 18:20
seltsames php und session problem netti PHP-Fortgeschrittene 16 01.06.2005 17:01
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28
Session Problem beim Login PHP Tipps 2004-2 6 15.12.2004 09:37
problem mit ner Session, es gehn Arrays verloren PHP-Fortgeschrittene 3 10.11.2004 18:01
[Erledigt] PHP Session Problem, dringend! PHP-Fortgeschrittene 17 21.10.2004 21:15
Session wird falsch wieder aufgenommen - Problem mit Session PHP Tipps 2004 2 16.10.2004 14:30
session problem PHP Tipps 2004 2 22.07.2004 08:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
102 session fehler beheben, \saxgirls.de\

Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.