Ankündigung

Einklappen
Keine Ankündigung bisher.

Sessionvariable in Datenbank speichern

Einklappen

Neue Werbung 2019

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

  • Sessionvariable in Datenbank speichern

    ich stehe ganz am Anfang meiner Programmierkarriere
    in Sachen PHP und stehe vor einem kleinen Problem. Habe
    eine komplett banale Bestellseite für Wurst erstellt,
    um erst mal heraus zu finden, wo die ganzen
    Kleinigkeiten sind, auf die man achten muss. Lange
    Rede, kurzer Sinn. Ich habe es zwar geschafft, eine
    Session-Variable von dem einen PHP-Skript in das
    nächste zu übermitteln, jedoch kriege ich es nicht
    hin,auf dieser 2.php seite, genau diese Session-
    Variable in meine Datenbanktabelle einzufügen. Wie
    könnte das funktionieren?Das zweite Problem ist:
    Wenn jemand keinen Namen oder Nachnamen oder die Anzahl
    einträgt,dann kommt die Meldung:Sie müssen was
    eintragen, aber wie füge ich einen Link ein,der den
    Kunden wieder zurück zum Formular führt ohne seine
    bisherige Auswahl (Bratwurst oder Bierwurst) zu
    löschen? Für Ihre Hilfe wäre ich wirklich dankbar!!!
    Unten die beiden erwähnten php-Skripte:

    bratwurst.php:

    <
    PHP-Code:
    ?php
    session_start
    ();
    if(isset(
    $_POST["bierwurst"]))
    {
    $produkt=Bierwurst;
    echo 
    $produkt;
    $prod=$produkt;
    }
    if(isset(
    $_POST["bratwurst"]))
    {
    $produkt=Bratwurst;
    echo 
    $produkt;
    $prod=$produkt;
    }
    $produkt=$_SESSION['prod'];
    ?>
    <form action="checkbratwurst.php" method="post">
    Name:<br>
    <input type="text" name="vorname"><br>
    Nachname:<br>
    <input type="text" name="nachname"><br>
    Anzahl:<br>
    <input type="text" name="anzahl"><br>
    <input type="submit" value="Absenden">
    </form> 

    checkbratwurst.php:
    PHP-Code:
    <?php
    session_start
    ();
    $user=session_id();
    $vorname$_POST["vorname"];
    $nachname$_POST["nachname"];
    $anzahl$_POST["anzahl"];
    if(
    $vorname=="" or $nachname=="" or $anzahl=="")
    {
    echo 
    "Sie müssen was eingeben";
    }
    else
    {
    $verbindung
    mysql_connect("localhost","Name","passwort");
    mysql_select_db("datenbankname");
    $eintrag"INSERT INTO tabellenname
    (ID,Vorname,Nachname,Anzahl)//hier ist noch die Spalte 
    Produkt, in die 
    $_SESSION['prod'] rein soll,aber wie??
    VALUES
    ('
    $user','$vorname','$nachname','$anzahl')";
    $eintragen=mysql_query($eintrag);
    echo 
    "Bestellung erfolgreich";
    echo 
    $_SESSION['prod'];
    }
    ?>

  • #2
    Zum ersten Problem: Informiere dich, was der Rückgabewert von mysql_query aussagt, wie man ihn vernünftig auswertet; und über die Nutzung von mysql_error.

    PHP-Code:
    $eintrag"INSERT INTO tabellenname 
    (ID,Vorname,Nachname,Anzahl)//hier ist noch die Spalte  
    Produkt, in die 
    $_SESSION['prod'] rein soll,aber wie?? 
    VALUES 
    ('
    $user','$vorname','$nachname','$anzahl')"
    Was soll uns dieser Kommentar sagen?

    Weißt du nicht, wie man Array-Elemente dynamisch in Strings einsetzt? Dann lies bitte im Handbuch nach:
    PHP: Strings - Manual
    PHP: Arrays - Manual

    Das sind absolute Grundlagen.


    Zum zweiten Problem: Informiere dich über das Stichwort Affenformular.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Ok,das zweite Problem habe ich gelöst, aber das erste Problem besteht weiterhin. Ist es denn nicht möglich $_SESSION['prod'] oder irgend eine andere Sessionvariable in eine bestimmte Spalte einer bestimmten Tabelle einzufügen??

      Sorry für den Kommentar im Quelltext . Mit dem Kommentar wollte ich nur sagen, dass es in meiner Datenbank-Tabelle eine Spalte namens Produkt gibt und ich in diese Spalte den Wert von $_SESSION['prod'] einfügen möchte.

      Kommentar


      • #4
        Zitat von geckodog Beitrag anzeigen
        Ist es denn nicht möglich $_SESSION['prod'] oder irgend eine andere Sessionvariable in eine bestimmte Spalte einer bestimmten Tabelle einzufügen??
        Doch, natürlich ist es - Session-Variablen sind Variablen wie alle anderen auch.
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          Und wie wenn ich fragen darf?bisher hör ich nur, was ich alles falsch gemacht habe.mir ist klar,dass ich kein php-skript nach jedermanns geschmack gebaut habe.mir ist wichtig,dass es funktioniert und das tut es auch,bis auf dieses eine problem,welches immer noch nicht gelöst ist.wie wäre es denn mal mit einem lösungsansatz?

          Kommentar


          • #6
            Zitat von geckodog Beitrag anzeigen
            wie wäre es denn mal mit einem lösungsansatz?
            Wie wäre es denn mal mit einem eigenen Versuch, und falls dieser nicht erfolgreich sein sollte, mit einer Problembeschreibung dazu?
            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

            Kommentar


            • #7
              Ok. Also ich habe im skript1.php einer sogenannten Session Variable einen Wert zugewiesen. In skript2.php "erhalte" ich auch diese Variable mit dem richtigen Wert:

              skript1.php:

              PHP-Code:
              <?php
              session_start
              ();
              $_SESSION['strasse']= poststrasse;
              ?>
              skript2.php:

              PHP-Code:
              <?php
              session_start
              ();
              echo 
              $_SESSION['strasse'];
              ?>
              Jetzt möchte ich, den Wert von $_SESSION['strasse'], also poststr in meine mysql datenbank einfügen. Und genau das kriege ich nicht hin. Mit normalen Variablen funktioniert es, aber nicht mit dieser Sessionvariable!
              Bei "normalen" Variablen gebe ich ja bei
              VALUES
              ('$var1','$var2','$var3','var4'); usw. an und diese werden auch in die entsprechenden Spalten gespeichert.Gebe ich nun z.B. bei

              VALUES
              ('$var1','$var2','$var3','var4','$_SESSION['strasse']');

              oder

              VALUES
              ('$var1','$var2','$var3','$var4','$strasse');

              ein, um diese Sessionvariable in einer Spalte zu hinterlegen, dann speichert er zwar alle anderen Variablen, aber die Spalte in die die Sessionvariable rein soll, wird nicht gefüllt! Hoffe,das war jetzt verständlich genug! Danke schon mal für die Hilfe!

              Kommentar


              • #8
                Problem gelöst

                Habe die $_SESSION['variablenname'] in eine "normale" variable übergeben und das funktionierte dann! Gute Nacht. Ich geh pennen.

                Kommentar


                • #9
                  Zitat von geckodog Beitrag anzeigen
                  Jetzt möchte ich, den Wert von $_SESSION['strasse'], also poststr in meine mysql datenbank einfügen. Und genau das kriege ich nicht hin. Mit normalen Variablen funktioniert es, aber nicht mit dieser Sessionvariable!
                  Dass es beim Einsetzen von Array-Variablen in Strings Besonderheiten zu beachten gibt, darauf habe ich dich eingangs schon hingewiesen - und dir auch die Stellen im Handbuch genannt, an denen du dich darüber informieren kannst.
                  [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                  Kommentar

                  Lädt...
                  X