$_SESSION mit SQL Eintrag

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • $_SESSION mit SQL Eintrag

    Hallo,

    ich habe eine kleine Geschichte gebaut als Download Database.
    Nun möchte ich folgendes realisieren: Nach dem Download,
    der unter anderem Gezählt wird (also gibt es einige Zwischen-
    schritte / seiten), in der Übersicht ein vermerk auftaucht - also
    sowas wie: bereits geladen (oder irgendeine andere IF Abfrage)

    Nun versuchte ich folgendes:

    PHP-Code:
    <? $_SESSION[$_GET['x']] = $row['id'] ; ?>
    um dann eine Abfrage wie zB

    PHP-Code:
    <? if (isset($_SESSION[$row['id']])) { echo 'loaded' ; } ?>
    nun. das läuft aber irgend wie nicht. kann mir jmd weiter helfen?
    Design & Coding with a breeze of madness at xjonx

  • #2
    Also deine Fehlerbeschreibung ist wohl für gleich gesinnte gedacht - also sorry, ich versteh kein Wort und vorallem ergibt dein Sourcecode keinen Sinn, zumindest keinen von dem man sich auch nur irgendetwas davon ableiten könnte, was du versucht hast zu erklären. Versuch es mal für einen Aussenstehenden zu erklären, der kein Plan von dem hat was du da versuchst zu programmieren.

    Kommentar


    • #3
      also:

      ich habe eine Download Database.
      Da kann man sich etwas runterladen.
      Wenn du das machst wirst du an eine
      Seite weitergeleitet wo der Download
      startet.

      Die Datenbank basiert auf SQL Einträge
      die auf eine Datei und Ihre eigenschaften
      verweisen.

      Wenn nun ein Benutzer einen Download
      startet, soll dies als Vermerk per SESSION ID
      in der Download Liste auf tauchen.

      Wenn er also einen Download startet, steht
      nebendem Scritp für den Download eine
      Zeile in der die SESSION mit der ID des Downloads
      gefüllt werden soll... also eine VAR Namens:
      $_SESSION['id des dl']

      das versuche ich wie folgt:

      <? $_SESSION[$_GET['x']] = $row['id'] ; ?>

      in der Liste wird zu jedem Download eine
      Abfrage gestartet die dann Irgendwas machen
      soll... die sieht so aus:

      <? if (isset($_SESSION[$row['id']])) { echo 'loaded' ; } ?>

      so. kann mir nun jmd helfen, warum es nicht klappt.
      Design & Coding with a breeze of madness at xjonx

      Kommentar


      • #4
        <? $_SESSION[$_GET['x']] = $row['id'] ; ?>
        <? if (isset($_SESSION[$row['id']])) { echo 'loaded' ; } ?>
        Du setzt $_SESSION['$_GET['x'], fragst aber $_SESSION[$row['id']] ab.

        PHP-Code:
        <? $_SESSION[$row['id']] = $row['id'] ; ?>
        So vielleicht?
        bzw, was steht in $_GET['x']?

        EDIT:
        schneller
        ich glaube

        Kommentar


        • #5
          damit die Abfrage läuft, muss das setzen dazu passen, bzw. anstatt
          <? $_SESSION[$_GET['x']] = $row['id'] ; ?>
          etwa so:
          <? $_SESSION[$row['id']]= $_GET['x'] ; ?>

          Ausser die Logik sei ganz anders....

          Kommentar


          • #6
            Original geschrieben von ministry
            Du setzt $_SESSION['$_GET['x'], fragst aber $_SESSION[$row['id']] ab.

            PHP-Code:
            <? $_SESSION[$row['id']] = $row['id'] ; ?>
            So vielleicht?
            bzw, was steht in $_GET['x']?

            EDIT:
            schneller
            Sorry... das ist aus einem Versuch das Problem zu beheben.
            Allerdings wäre es auch nicht falsch. $_GET['x'] stammt aus
            dem Download Script... X ist gleich row['id'] da sie übergeben
            wird...

            das mit $_SESSION[$row['id']] ergibt einen T-PARSE Error...
            Design & Coding with a breeze of madness at xjonx

            Kommentar


            • #7
              Original geschrieben von xJonx


              das mit $_SESSION[$row['id']] ergibt einen T-PARSE Error...
              Schau genauer.

              Kommentar


              • #8
                Sorry... das ist aus einem Versuch das Problem zu beheben.
                Allerdings wäre es auch nicht falsch. $_GET['x'] stammt aus
                dem Download Script... X ist gleich row['id'] da sie übergeben
                wird...

                das mit $_SESSION[$row['id']] ergibt einen T-PARSE Error...
                Sorry, aber ich komme nicht mehr ganz mit -

                Poste mal, was genau in $row['id'] und in $_GET['x'] drinsteht und die ganze Fehlermeldung.
                ich glaube

                Kommentar


                • #9
                  Original geschrieben von ministry
                  Sorry, aber ich komme nicht mehr ganz mit -

                  Poste mal, was genau in $row['id'] und in $_GET['x'] drinsteht und die ganze Fehlermeldung.
                  Also $row['id'] ergibt sich aus einer SQL Abfrage, GET wird so gefüllt:

                  PHP-Code:
                      <? while($row = mysql_fetch_assoc(mysql_query($sql))) { ?> 
                          <a href="?get=download&x=<?=$row['id']?>&sid=<?=$sid?>
                      <? } ?>
                  das mit der Fehlermeldung hat sich aus einem anderen Fehler ergeben.
                  Design & Coding with a breeze of madness at xjonx

                  Kommentar


                  • #10
                    und was klappt nun nicht?
                    ich glaube

                    Kommentar


                    • #11
                      Also, ein paar Zeilen weiter habe ich den Download Script.
                      Dieser macht erstens einen SQL Eintrag zum Zählen und
                      halt den Download selber.... Nun möchte ich aber noch
                      zusätzlich in SESSION einen Eintrag machen das die Datei x
                      runtergelden wurde - dazu habe ich folgendes Probiert:

                      PHP-Code:
                      <? $_SESSION[$row['id']] = '1' ; ?>
                      in der Ausgabe der Dateiliste, soll dann mittels IF einfach
                      nur nen Häckchen erscheinen, nen Text, oder was weiß ich.
                      dazu nehme ich zB:

                      PHP-Code:
                      <? if ($_SESSION[$row['id']] == '1') { echo 'loaded ' ; } 
                      echo ' '.$row['filename']; ?>
                      Aber: es geht nicht.
                      Design & Coding with a breeze of madness at xjonx

                      Kommentar


                      • #12
                        mein ratewerk sagt, dass beim download
                        PHP-Code:
                        $_SESSION[$_GET['x']]=$_GET['x']; 
                        oder einfacher 
                        $_SESSION
                        [$_GET['x']]=true
                        in die sessionvariabeln eingetragen werden sollte, und beim Abfragen wie schon immer
                        PHP-Code:
                        <? if (isset($_SESSION[$row['id']])) { echo 'loaded' ; } ?>

                        Ich denke, beim Fehler am Anfang dieses thread im damaligen Befehl
                        PHP-Code:
                        $_SESSION[$_GET['x']]=$row['id']; 
                        ist die rechte Seite undefiniert , weil es nicht nach einer query ist. Allerdings ist die damalige Fehlerbeschreibung vage. Für profis: der damalige Befehl sollte eigentlich eine Fehlermeldung ausgeben. Zusätzlich wird die sessionvariable auf NULL gesetzt, was bei is_null() und bei isset() FALSE ergibt.

                        Kommentar


                        • #13
                          Original geschrieben von mai
                          PHP-Code:
                          $_SESSION[$_GET['x']]=$_GET['x']; 
                          oder einfacher 
                          $_SESSION
                          [$_GET['x']]=true
                          Jaha, das dachte ich mir auch, klappt auch
                          Aber dann kommt man zum 2ten download

                          Und ist das Problem ja nicht das anzeigen eines
                          einzigen geladenen sondern von immer wieder
                          verschiedenen, neuen und anderen Downloads...

                          Also Datei 1 und 7 und xyz ...

                          Daher mein Versuch eine SESSION Var mit der
                          ID aus dem Query zu füttern...
                          Design & Coding with a breeze of madness at xjonx

                          Kommentar


                          • #14
                            ist get['x']=1, später=7, = xyz,

                            kommt jedesmal, solange die session besteht, eine neue variable dazu.
                            $_SESSION[1]=1, $_SESSION[7]=1, $_SESSION[xyz]=1

                            solange es die gleiche Session ist. Wurde diese überhaupt mit session_start() gestartet, sind cookies erlaubt mindestens testweise usw. ? Muss man den Fehler in dieser Richtung suchen...
                            Kann man die $_SESSION testweise ausgeben:
                            PHP-Code:
                            foreach($_SESSION as $key=>$value) echo "\$_SESSION: $key : $value <br />"
                            edit: das $ im $_SESSION mit \ geschützt. -- kann auch nur SESSION schreiben.
                            Zuletzt geändert von mai; 18.06.2006, 14:23.

                            Kommentar


                            • #15
                              Ja aber das ist ja mein Problem:
                              Wie lege ich aus $row['id'] oder halt $_GET['x'] nun die SESSION an?
                              Also ich meine nicht die SESSION ansich sondern wenn ich meinet
                              wegen GET['x'] == '5' habe möchte ich SESSION['5'] anlegen....
                              Design & Coding with a breeze of madness at xjonx

                              Kommentar

                              Lädt...
                              X