Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
SESSION verstehen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
SESSION verstehen


 
vitalinka
25-02-2004, 01:05 
 
Hallo Leute.
Ich versuche die Sache mit SESSION zu verstehen. Aber irgendwie klappt es nicht. Ich habe mehrere POSTS gelesen und auch in Handbuch nachgeguckt, und trotzdem läuft es nicht. Ich will nur SESSIONVARIABLE auslesen und habe ganz einfache SCRIPT.
Was mache ich falsch?

Datei1: läuft
<?php
session_save_path ("./save");
session_start ();
if (isset ($_POST["user" ])){
//datenbankanfrage Zurzeit nur eine VAR
$use = "Vitalij" ;
//datenbankanfrageende
if($_POST["user"]== $use){
$_SESSION["user"]=$_POST["user"];
echo'<a href="weit_ses.php">Hallo '.$_SESSION["user"].'!</a>';
}
else{
echo'Sie haben kein zugrif!';
}
}
else{
echo{'<form action="index_ses.php" method="post"
<table border="1">
<tr>
<td>
<input type="Text" name="user">
<input type="Submit">
</td>
</tr>
</table>';
}
?>

SESSION: user|s:3"Vitalij";

Datei2: läuft nicht
AUSGABE: Kein Zugriff.

<?php
session_start();
if(isset($_SESSION["user"])){
echo'Hallo es geht weiter für'.$_SESSION["user"].'!';
}
else{
echo'Sie haben kein Zugrief';
}
?>

 
roNn
25-02-2004, 01:32 
 
Du darfst die PHP Tags benutzen, wenn es verboten wird geben wir dir bescheid.. (aber lustig mit den Farben.. selber gemacht?)

Da dürftest du einen parse_error bekommen, oder?
Was sucht die geschweifte Klammer dort?

echo{'<form action="index_ses.php" method="post"
<table border="1">

Dein Code ist absolut unübersichtlich, da blickt doch kein Mensch durch.. bitte in PHP Tags und ein bisschen formatieren.

Danke (sollte ja nicht zuviel verlangt sein..)

mfg..

 
vitalinka
25-02-2004, 02:10 
 
Ja ich habe mich vertippt, aber das ändert nichts.
Und mit Farben ist es natürlich sch..., ich wusste nicht wie ich das anders machen soll, , jetzt aber.
Ich habe mir wirklich Mühe gegeben um das in Farbe zu schreiben. Und außerdem, ich benutze HOMESIETE 5, die FARBEN sind ORIGINAL.
Ich kopiere die original Dateien:
1:

<?php
session_save_path("./save");
session_start();
if(isset($_POST["user"])){
//datenbankanfrage
$use = "Vitalij";
//datenbankanfrageende
if($_POST["user"]== $use){
$_SESSION["user"]=$_POST["user"];
echo'<a href="weit_ses.php">Hallo '.$_SESSION["user"].'!</a>';
}
else{
echo'Sie haben kein Zugriff!';
}
}
else{
echo'<form action="index_ses.php" method="post">
<table border="1">
<tr>
<td>
<input type="Text" name="user">
<input type="Submit">
</td>
</tr>
</table>
</form>';
}
?>

2:

<?php
session_start();
if(isset($_SESSION["user"])){
echo'Hallo es geht weiter für'.$_SESSION["user"].'!';
}
else{
echo'Sie haben kein Zugriff';
}
?>

 
roNn
25-02-2004, 03:17 
 
Nicht schlecht das mit den Farben :D
Naja, jetzt weißt du ja wie :rolleyes:

Zu deinem Problem:

echo'<form action="index_ses.php" method="post"> ..

ändern in

echo'<form action="'.$_SERVER['PHP_SELF'].'" method="post"> ..


So funktioniert es bei mir.. sorry hätte ich schon vorher draufkommen können.. aber 1. Uhrzeit, 2. mach ich seit 23 Uhr nix anderes als ein Forum zu coden und das schlaucht..

mfg

 
vitalinka
25-02-2004, 13:44 
 
Ja ich habe das geendert, aber das hat mich nicht weiter gebracht, zweite Datei läuft immer noch nicht.
So viel ich verstanden habe SESSIONVARIABLEN sind GLOBALEVAR. und ich kann die auf jeder Seite auslesen.
Und zwar:

session_start();
if(isset($_SESSION["bla"])){
echo $_SESSION["bla"];
}

Ich habe schon mit

session_register();

ausprobirt.
Und in anderen Buch stehet einfach

session_start();
echo $bla;

SESSIONDATEI wird angelegt und die Variable ist auch drin: user|s:7:"bla"; aber auslesen???
Ich bin jetzt wirklich verzweifelt.

 
roNn
25-02-2004, 14:25 
 
Sorry ich verstehe dein Problem nicht..
Entweder du sagst mal genau was du willst oder dir kann niemand helfen..
Session Tutorials gibt es ja wohl en masse..

 
TobiaZ
25-02-2004, 14:54 
 
mal mal n print_r($_SESSION); und guck mal was raus kommt.

Haste mal SID ausgeben lassen? ist die überall gleich oder geht die verloren?

 
vitalinka
26-02-2004, 01:35 
 
Ich habe ein Bereich auf der Seite nur für Angemeldete Benutzer.
Im Datei 1 geht die Überprüfung von Benutzer und wenn es glat läuft wird eine SESSION gesetzt mit var USER[sein login] und auf weiteren Seiten wenn SESSIONVAR da ist kann er weiter gehen. Wenn nicht "Kein Zugriff".
Auf Zweiter Seite Mit print_r bekomme ich leeres ARRAY Araay{}. Ich habe mehrere Beiträge mit meinem verglichen DAS MUSS LAUFEN, aber das ist nicht der Fall.
Ich will nur auf zweiter, drieter u.s.w Seiten SESSIONVARIABLE aus SESSIONDATEI auslesen.:confused:

 
roNn
26-02-2004, 02:44 
 
Sorry vielleicht bin ich einfach zu dämlich oder es ist schon zuspät.. aufjedenfall habe ich kein Wort verstanden.. oh Junge.. :/

 
derHund
26-02-2004, 06:14 
 
hmm,

wei speicherst du die sid? cookie? wird das cookie gesetzt? wenn nicht, wird die sid übergeben?

Haste mal SID ausgeben lassen? ist die überall gleich oder geht die verloren?

 
mrhappiness
26-02-2004, 07:26 
 
du hast session_start(); schon auf jeder seite stehen?

 
vitalinka
26-02-2004, 19:02 
 
Ja ich habe SESSION_START(); auf jeder Seite
Auf Seite 2 u.s.w mit SESSION_ID(); lasse ich SID ausgeben, passt mit SID auf erster Seite.

 
TobiaZ
26-02-2004, 19:04 
 
und print_r($_SESSION) gibt dir was aus?

 
vitalinka
26-02-2004, 22:50 
 
Das gibt mir leeres Array aus ARRAY()
Ich habe noch ein Mal alle Tutorials durch gelesen, und ich habe keine Ahnung wieso läft bei mir nichts.:dontknow:

 
Wotan
26-02-2004, 23:03 
 
<?php
// session_save_path("./save");
session_start();
if(isset($_POST['user']))
{
// datenbankanfrage
$use = "Vitalij";
// datenbankanfrageende
if($_POST['user'] == $use)
{
$_SESSION['user'] = $_POST['user'];
echo '<a href="weit_ses.php">Hallo '.$_SESSION['user'].'!</a>';
}
else
{
echo 'Sie haben kein Zugriff!';
}
}
else
{
echo '<form action="index_ses.php" method="post">
<table border="1">
<tr>
<td><input type="Text" name="user">
<input type="Submit"></td>
</tr>
</table>
</form>';
}
?>


<?php
session_start();
if(isset($_SESSION['user']))
{
echo 'Hallo es geht weiter für '.$_SESSION['user'].'!';
}
else
{
echo 'Sie haben kein Zugriff';
}
?>

Habe mal beide Dateien richtig Formatiert und teilweise überarbeitet, sollten jetzt gehen, aber ohne Garantie.

 
vitalinka
27-02-2004, 11:06 
 
Danke schön.
Das funkt, das problem war:
SESSION_SAVE_PATH("./SAVE");
Wenn SESSION Datei in PHP/SESSIONDATA angelegt wird, dann läuft alles.
Aber wenn ich SESSION_SAVE_PATH("./SAVE"); benutzen will, was dann? Soll ich anders abfragen? Ich meine mit PFAD oder so. Oder Einstehlungen ändern?

 
mrhappiness
27-02-2004, 11:10 
 
eventuell solltest du session_save_path auch in jedem skript verwenden?

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:39 Uhr.