php session

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

  • php session

    Hallo,

    Ich habe eine kleine Herausforderung in einem php script.
    Leider bin ich kein Profi und erhoffe mir hier weiter zu kommen.

    Durch meine SQL Abfrage lese ich bestimmte Daten aus einer TAbelle aus und speichere Sie in die session.

    PHP-Code:
    $sql   "SELECT v1.id, v1.name, v1.vorname, v1.passwort, v1.mail, v2.sakt1, v2.lakt1, v2.szeichen1
                   FROM "
    .$cbs['user_table']." as v1,  ".$cbs['user_table2']." as v2
                   WHERE "
    .$sql." && v2.id=v1.id"
    Diese speicher ich nun in eine sitzungssesssion:
    PHP-Code:
    $_SESSION['sitzungen_id'] = $DBdata['id'];
    $_SESSION['sitzungen_name']   = strtolower($DBdata['name']);
    $_SESSION['sitzungen_mail']   = strtolower($DBdata['mail']);
    $_SESSION['sitzungen_passwort'] = md5($_POST['password']);
    $_SESSION['sitzungen_szeichen'] = md5($_POST['szeichen']);
    $_SESSION['sitzungen_get_referer'] = $DBdata['referer']; 
    Soweit klappt das auch sehr gut.
    Leider gibt es Spalten wie z.B. szeichen das nur Werte von 1 bis 12 beinhaltet. Der tatsächliche Wert ist in einer Sprachdatei gespeichert.

    Somit bekomme ich nicht das Sternzeichen sondern nur die Zahl in meine session gespeichert.
    Wie bekomme ich es hin dass die session nach der erfolgreichen SQL Abfrage auch die dazugehörigen Werte aus der Sparchdatei speichert und nicht bloss die Zahl.

    Ich danke schon mal im voraus

    Gruss

  • #2
    Hat keiner eine Idee ??

    Kommentar


    • #3
      Wozu willst du die Daten überhaupt in die Session speichern? In die Session gehören nur Sitzungsdaten und keine Daten aus der Datenbank.

      Kommentar


      • #4
        Da mir die Daten in dieser View des scriptes nicht zur Verfügung stehen und ich Sie dennoch per Email versenden möchte, dachte ich ich speichere Sie in die session und habe dann die Werte die ich an die Email übergeben kann.

        Es klappt ja soweit bloss nimmt er die Werte aus der DB und wandelt Sie nicht um in die dazugehörigen Daten aus der Sprachdatei.

        Bin aber auch für andere Lösungen offen.

        Kommentar


        • #5
          Zitat von Ewsg Beitrag anzeigen
          Da mir die Daten in dieser View des scriptes nicht zur Verfügung stehen und ich Sie dennoch per Email versenden möchte, dachte ich ich speichere Sie in die session und habe dann die Werte die ich an die Email übergeben kann.
          Du solltest eine Session nicht als globalen Speicher missbrauchen. Wenn du Daten in einem View brauchst, dann übergib diese Daten an den View.

          Kommentar


          • #6
            Hallo,

            Danke für die Antwort. Gibt es dabei ein Sicherheitsproblem??

            Ich brauche diese Daten nicht in einr View, sondern dazu, dass Sie direkt in den Emailbody geschrieben werden.

            Evtl. würdest du mir helfen?

            Gruss

            Kommentar


            • #7
              Zitat von Ewsg Beitrag anzeigen
              Gibt es dabei ein Sicherheitsproblem??
              Nein.

              Zitat von Ewsg Beitrag anzeigen
              Ich brauche diese Daten nicht in einr View, sondern dazu, dass Sie direkt in den Emailbody geschrieben werden
              Dann übergib sie dort auch.

              Kommentar


              • #8
                Das übergeben ist nicht das Problem. Das funktioniert einwandfrei.
                Aber Wie schon gesagt sind der Datenbank nur ZAhlen gespeichert, wobei jede einzelne Zahl in der Spachdatei auch einen bestimmten Namen zugewiesen ist.

                Aber ich bekommen es nicht hin, dass die gespeicherte Daten in der Session in die dazugehörigen Daten aus der Sprachdatei umwandelt.

                Dabei bräuchte ich hilfestellung.

                Danke

                Kommentar


                • #9
                  Zitat von Ewsg Beitrag anzeigen
                  Das übergeben ist nicht das Problem. Das funktioniert einwandfrei.
                  Aber Wie schon gesagt sind der Datenbank nur ZAhlen gespeichert, wobei jede einzelne Zahl in der Spachdatei auch einen bestimmten Namen zugewiesen ist.

                  Aber ich bekommen es nicht hin, dass die gespeicherte Daten in der Session in die dazugehörigen Daten aus der Sprachdatei umwandelt.
                  Du brauchst die Daten nicht in der Session. Verabschiede dich von dieser Idee.

                  Kommentar


                  • #10
                    OK das habe ich verstanden.

                    Die SQL Abfrage steht in der php Datei. Nun kommen wir zur Template Seite.
                    Dort frage ich nun die Daten ab:
                    PHP-Code:
                    Haarfarbe:
                    <?php
                    if(!empty($DBdata['test1']))   echo $language['test1'][$DBdata['test1']];?>
                    Soweit so gut. Nun die Übergabe an die Mail dies schreibe ich direkt in die xxx.msg:

                    PHP-Code:
                    $language['test1'][$DBdata['test1']] 
                    Dies klappt aber nicht. Da kommt arry...... aber keine Ausgabe.

                    Mit
                    PHP-Code:
                    $_SESSION[sitzungen_test1
                    wird der DB Inhalt angezeigt.

                    Und das klappt nicht

                    Kommentar


                    • #11
                      "klappt nicht" ist keine Fehlerbeschreibung. Gibts eine Fehlermeldung im Error-Log? Hast du dir schon mal die Variableninhalte mit var_dump() ausgeben lassen und überprüft, ob sie das beinhalten, das du vermutest?

                      Kommentar


                      • #12
                        Die Variablen geben genau das aus was Sie eigentlich sollten, den Wert aus der Datenbank.

                        wenn ich aber versuche, dass die session den Datenbankwert umzuwanden und den dementsprechenden Wert aus der Sprachdatei zu holen klappt das nicht.

                        In der Email kommt es dann so an:

                        Array['test']]

                        echo Array['test'][1
                        Array['test'][1

                        Den Wert (1)aus der Db schreibt er ans ende

                        Kommentar


                        • #13
                          Ich kann mit der Beschreibung überhaupt nix anfangen. Bitte poste Beispielcode, bei dem das Fehlverhalten nachvollziehbar auftritt. Und vergiss bitte endlich die Session, die hat damit nichts zu tun.

                          Kommentar


                          • #14
                            OKK dann mal los mit dem was ich habe.
                            Es gibt eine favouriten.php und das template dazu favoriten.html
                            es wird eine class wird das email versenden verwendet.

                            Hier ein Auszug aus der favoriten.php
                            PHP-Code:

                            $sql   
                            "SELECT v1.id, v1.name, v1.vorname, v1.passwort, v1.mail, v2.sakt1, v2.lakt1, v2.szeichen1
                                           FROM "
                            .$cbs['user_table']." as v1,  ".$cbs['user_table2']." as v2
                                           WHERE "
                            .$sql." && v2.id=v1.id"

                            $_SESSION['sitzungen_id'] = $DBdata['id'];
                            $_SESSION['sitzungen_name']   = strtolower($DBdata['name']);
                            $_SESSION['sitzungen_mail']   = strtolower($DBdata['mail']);
                            $_SESSION['sitzungen_passwort'] = md5($_POST['password']);
                            $_SESSION['sitzungen_szeichen'] = md5($_POST['szeichen']);
                            $_SESSION['sitzungen_get_referer'] = $DBdata['referer']; 
                            Hier ein Auszug aus der faviriten.html
                            PHP-Code:
                                    <td width="404" align="left" valign="top" class="textw">
                            <br>
                                            <div><h2>
                                      $DBdata[vorname] aus $DBdata[ort]</h3><?php
                                          
                            echo  $language['countryde'][$DBdata['country']];
                                         
                                          
                            ?></h2><br /><br /></div>
                                            <h3>Profil-Nr.: $DBdata[id]</h3>
                                            <h3>$DBdata[gebdat] ($DBdata[age1])</h3>
                                            <?php
                                          
                            if(!empty($DBdata['szeichen1'])) {
                                          echo 
                            $language['szeichen'][$DBdata['szeichen1']];
                                          }
                                          else {
                                          echo 
                            'keine Angabe';
                                          }
                                          
                            ?></h3><br>
                            <br />
                                            <a href="http://XXXXXXXXXXXXXXXXX.php?" class="textw"><b><h3> &laquo; ... Zur&uuml;ck zur Damengelarie ... </h3></b></a></h3><br />
                                  </td>
                            Alles was in der fsvoriten.php deklariert wurde kann dann im Moment mit:
                            Kundennummer: $_SESSION[sitzungen_szeichen]

                            direkt in die send_favourites_contact_request.msg eingetragen werden.

                            in dem Template klappt das mit dem auslesen der Datenbank und Sprachdatei aber wenn die Email gesendet ist wird alles so ausgegeben wie es in der DAtenbank gesoeichert ist. Ich brauche aber die daten in Kombination mit der Spachdatei

                            Sprachdatei:
                            PHP-Code:
                            <?php
                            // Sternzeichen
                            $language['szeichen'][0] = "bitte angeben";
                            $language['szeichen'][1] = "Steinbock";
                            $language['szeichen'][2] = "Wassermann";
                            $language['szeichen'][3] = "Fische";
                            $language['szeichen'][4] = "Widder";
                            $language['szeichen'][5] = "Stier";
                            $language['szeichen'][6] = "Zwilling";
                            $language['szeichen'][7] = "Krebs";
                            $language['szeichen'][8] = "Löwe";
                            $language['szeichen'][9] = "Jungfrau";
                            $language['szeichen'][10] = "Waage";
                            $language['szeichen'][11] = "Skorpion";
                            $language['szeichen'][12] = "Schütze";
                            ?>
                            So nun bin ich gespannt. Bitte vergiss nicht ich bin im Moment noch Anfänger und das script existiert schon ich möchte nur paar Änderungen vornehmen.
                            Zuletzt geändert von Ewsg; 08.10.2016, 09:14. Grund: Link verschleiert

                            Kommentar

                            Lädt...
                            X