PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   php session (https://www.php-resource.de/forum/php-developer-forum/105733-php-session.html)

Ewsg 05-10-2016 16:37

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

Ewsg 06-10-2016 16:52

Hat keiner eine Idee ??

h3ll 06-10-2016 17:01

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

Ewsg 07-10-2016 08:55

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.

h3ll 07-10-2016 11:04

Zitat:

Zitat von Ewsg (Beitrag 673152)
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.

Ewsg 07-10-2016 11:59

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

h3ll 07-10-2016 12:17

Zitat:

Zitat von Ewsg (Beitrag 673156)
Gibt es dabei ein Sicherheitsproblem??

Nein.

Zitat:

Zitat von Ewsg (Beitrag 673156)
Ich brauche diese Daten nicht in einr View, sondern dazu, dass Sie direkt in den Emailbody geschrieben werden

Dann übergib sie dort auch.

Ewsg 07-10-2016 16:19

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

h3ll 07-10-2016 16:47

Zitat:

Zitat von Ewsg (Beitrag 673158)
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.

Ewsg 07-10-2016 16:54

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

h3ll 07-10-2016 16:58

"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?

Ewsg 07-10-2016 19:27

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

h3ll 07-10-2016 20:19

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.

Ewsg 07-10-2016 21:55

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:48 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG