Session Probleme

exitboy

Erfahrenes Mitglied
Hallo@All,

ich hab 2 Probleme, die wahrscheinlich miteinander zusammen hängen. Das Zweite ist eher ein verzweifelter Versuch Problem 1 zu lösen *hehe*

******** PROBLEM 1 *************
Hallo, hab jetzt die Session etwas geändert und versuche das nun mal zu veranschaulichen, da diese später verwendete Variable im Layoutfile noch da ist, aber in der Included datei nicht mehr ...

Also wir haben einfach wie es früher bei den Frames war, eine Datei, die wie folgt beginnt:

*Layout.php* -- nachfolgend als Layoutfile benannt.
In dieser werden 5 Dateien (Logo, Menu, Menu2, MainWindow und Impressumbar) per include eingeladen. (Quasi wie früher halt die Frames auch)

### CODE START ### ## IN DIESEM FILE gibt es die VARIABLE $anzahl noch
<?php
session_start();
include("mysqldb.php");
include("session.php");
?><html>
<head>
<title>Unb ...


<?php
include("http://www.meinserver.de/accounts/linkdatei.php"); ?>
### CODE CONTINUE ###


in der Session.php, steht

### CODE START ###
<?php
// Dient zum Prüfen von von $login und $passwd
// mysqldb muss vorher eingebunden worden sein
// Testen von Login und Kennwort
$db->query("SELECT CID FROM MyDatabase WHERE CLogin='$login' and CPass='$passwd'");
if (!list($anzahl) = $db->data()) // keine Daten
{
echo('Bitte melde dich bei uns an');
echo('<br>');
echo('<br>');
echo("Sie können sich jetzt <a href=\"http://www.text.de\">hier einloggen</a>");
exit;
}
?>
### CODE END ###

**********************************************************************
Das durch Layout.php eingeladene File, welches per Include eingelesen werden soll, hat den folgenden Code:

(in diesem File ist die Variable $anzahl plötzlich weg, welche ganz am Anfang beim Login(hier nicht aufgelistet registriert wurden ist und auf der Hauptseite ja noch da war ... komisch eigentlich und für mich nicht nachzuvollziehen)

### CODE START ###
<?php session_start();
include("mysqldb.php");
include("session.php");
?>

<table width="620" height="85" border="0" cellpadding="0" cellspacing="0" class="border_orl">
<tr>
### CODE END ###

1.1 HILFE
1.2 Woran kann das liegen, dass die Variable nicht mehr auftraucht

1.3 Wie erstellt man denn heute sonst eine komplett dymnaische Seite, wenn nicht voll SQL gestützt oder wie hier halt Layoutbasierend erzeugt. Kennt Ihr da Tutorials oder andere gute Lösungen?


******** PROBLEM 2 *************

wenn in der Included Datei jetzt kein neuer Session_Start(); versuch gemacht wird, bringt der folgende Meldung:

Fatal error: Call to a member function on a non-object in /var/www/web1/html/system/cmenu/account/mainarea.php on line 33
1

Frage 2.1: Ist die Included Datei - eine neue Datei, in der ich jede kleine Variable neu definieren muss und auch die alten Datenbankverknüpfungen nue initalisieren muss?

Frage 2.2: Woher kommt der Fehler... meine Vermutung - die Variablen und Verknüpfungen fehlen :)



3.1 *** DANKE AN ALLE DIE VERSUCHEN MITZUHELFEN ! ***
 
ERGÄNZUNG:

vielleicht hilft Euch das noch weiter,

wenn ich nur die Included Datei nach der vorhergehenden Aufrufe, also nicht aus dem Layout File, sondern von irgendeinem, nachdem die session angelegt wurde, funktioniert es.

Demnach scheint es für mich Konflikte in der

scheinbar -
doppelten Session einladung zu geben ... trotzdem komm ich nicht weiter mit dem Problem.

<?php
session_start();
include("mysqldb.php");
include("session.php");
?><br>
 
hmmm... erste frage:
die variable wird nicht mitgesendet... du hast folgende möglichkeiten:

1. in der session speichern: $_SESSION["anzahl"] = $anzahl;
2. die variable im link einbinden:
echo("Sie können sich jetzt <a href=\"http://www.text.de?anzahl=" . $anzahl . "\">hier einloggen</a>");

dein zweites problem:
du scheinst in jeder datei session_start zu benutzen.... FALSCH
idealerweise hast du eine config datei die du in jedem script includest...
dann schrib nur in dieser config datei session_start ();

also, zu diesem fehler:
Fatal error: Call to a member function on a non-object in /var/www/web1/html/system/cmenu/account/mainarea.php on line 33

würde ich vermuten, dass du eine methode falsch aufrufst
z.b. hast du eine klasse sql mit der methode connect ()

der korrekte aufruf wäre dann $sql->connect (....);
falsch wäre connect (....);


bin mir nicht sicher, ob ich dir weiterhelfen konnte...
wenn nicht: icq: 317794249 ab 20 uhr :)

mfg sven
 
Zurück