Moin,
ich hab "mal wieder" ein kleines Problem bei meinem Script.
wenn ich aus der Datenbank einen datensatz suche, wird der gefundene in einigen Feldern von $_SESSION gespeichert, damit er beim nächsten Schritt des Scriptes zur Verfügung steht.
Das klappt auch von der Such-Funktion zur Eingabe-Funktion. Wenn ich aber ein anderes Formular aufrufe sind die Datenfelder der Session auf einmal leer, bis auf den angemeldeten User und dessen Session_id ...
wenn ich mir an dieser Stelle die Session-Daten ausgeben lasse steht da irgendwas in der Form
IDuser: 3
sid : e3xxxxxxxxxxxxxxxxxxxxxxxxxxxxf7
contract: <eine gülte Vertragsnummer>
position: <eine Position aus diesem Vertrag>
drin.
Anschließend wird automatisch dieser Vertrag im Formular für die Kundenstammdaten angezeigt falls Änderungen gemacht werden sollen, ansonsten ist das als Anzeige auch sehr übersichtlich ...
Wenn ich danach aber auf einen Menüpunkt klicke, der mir weitere Vertragsbestandteile auflisten soll, verzweige ich in eine andere Funktion
und hole mir die Daten ausgehend von den Session-Daten in contract und position .. nur steht dort eigenartigerweise nix drin . ich bin mir aber ziemlich sicher, nirgends die Session-Daten zu löschen
also nach der Suche ist es bei case 10 - der wird ja automatisch aufgerufen - und zeigt auch korrekt den ausgewählten Vertrag an. Nur bei case 2 sind die Session-Daten auf einmal leer
Und ehrlich gesagt fehlt mir mitlerweile die Fantasie, wo es noch dran liegen kann
Achso - grundsätzlich läuft dieser Teil des scriptes als Object und wird in der index.php folgendermaßen eingebaut
die foreach schleife ist nur zum Reporting drin während der Entwicklung - auch dort fehlen auf einmal die betreffenden Session Daten. Die obigen Code-Ausschnitte stammen beide aus der class_hauptform.php
Komischerweise wird IDuser und sid aber nicht gelöscht .....
also ich bin ratlos
ich hab "mal wieder" ein kleines Problem bei meinem Script.
wenn ich aus der Datenbank einen datensatz suche, wird der gefundene in einigen Feldern von $_SESSION gespeichert, damit er beim nächsten Schritt des Scriptes zur Verfügung steht.
Das klappt auch von der Such-Funktion zur Eingabe-Funktion. Wenn ich aber ein anderes Formular aufrufe sind die Datenfelder der Session auf einmal leer, bis auf den angemeldeten User und dessen Session_id ...
PHP-Code:
if ($_POST['kontraktliste']) { // welche Kunden-ID wurde gewählt
$datensatz_id=$_POST['kontraktliste'];
$sql="SELECT * FROM customers WHERE id='".$datensatz_id."' ";
$db=new db1(); // diesen Kunden aus der Datenbank holen
$datensatz=$db->db_sql($sql);
if ($db->anz==1) { // das kann eigentlich nur ein Kunde sein
.....
$_SESSION['contract']=$datensatz[0]['kontrakt_nr'];
$_SESSION['position']=$datensatz[0]['position_nr'];
}
else {
$fehler=1;
}
}
if ($fehler===0) {
$menuauswahl=10; // Keine Fehler vorher festgestellt Anzeige als Bestandskunde (also alt)
$new="old";
}
IDuser: 3
sid : e3xxxxxxxxxxxxxxxxxxxxxxxxxxxxf7
contract: <eine gülte Vertragsnummer>
position: <eine Position aus diesem Vertrag>
drin.
Anschließend wird automatisch dieser Vertrag im Formular für die Kundenstammdaten angezeigt falls Änderungen gemacht werden sollen, ansonsten ist das als Anzeige auch sehr übersichtlich ...
Wenn ich danach aber auf einen Menüpunkt klicke, der mir weitere Vertragsbestandteile auflisten soll, verzweige ich in eine andere Funktion
und hole mir die Daten ausgehend von den Session-Daten in contract und position .. nur steht dort eigenartigerweise nix drin . ich bin mir aber ziemlich sicher, nirgends die Session-Daten zu löschen
PHP-Code:
switch ($menuauswahl) { // welches Formular
case 1 : // neuen Kunden suchen
echo $this->form_suchekunde($ret);
break;
case 9 : // Kunden-Formular "vorbereiten" = neuer Kunde
$new="new";
$_SESSION[contract]="";
$_SESSION[position]="";
case 10: // hier das Kunden-Formular anzeigen .. alt / neu
echo $this->form_kundestamm($new,$ret);
break;
case 2 : // Formular mit Kennung anzeigen
echo $this->form_kenndaten($ret);
break;
...
Und ehrlich gesagt fehlt mir mitlerweile die Fantasie, wo es noch dran liegen kann
Achso - grundsätzlich läuft dieser Teil des scriptes als Object und wird in der index.php folgendermaßen eingebaut
PHP-Code:
<?php
session_start();
require('include/class_db.php');
require('include/class_zugriff.php');
require('include/class_hauptform.php');
$handle0=fopen('output/sess_report.txt','a');
foreach($_SESSION as $key=>$element) {
fwrite($handle0,"\n".$key." - ".$element."\n");
}
$work=new hauptformular();
?>
Komischerweise wird IDuser und sid aber nicht gelöscht .....
also ich bin ratlos
Kommentar