kostenloser Webspace werbefrei: lima-city


Wieso gehen meine Sessions nicht zumhenkernochmal

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    i************s

    Servus,

    nachdem ich langsam an den dämlichen tag/session">Sessions verzweifle frage ich nochmal hier nach wie die dämlichen Teile nun funktionieren sollen, bzw. sie nicht bei mir funktionieren.

    Habe hier ganz einfach 3 php-Seiten gebastelt, und will eigentlich nur EINE Variable speichern in einer Session.

    Seite1:
    <?
    session_start();
    
    session_register("S_STRASSE");
    $S_STRASSE = $_REQUEST['STRASSE'];
    ?>
    <html>
    <head>
    </head>
    <body>
    <form name="Formular" action="test2.php" method="post" enctype="multipart/form-data">
    	<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">
    	<input type="text" name="STRASSE"  size="20" value="<?print $S_STRASSE;?>">
    	<input type="submit" value=">>" name="WEITER">
    </body>
    </html>

    Seite2:
    <?
    session_start();
    session_register("S_STRASSE");
    $S_STRASSE = $_REQUEST['STRASSE'];
    ?>
    <html>
    <head>
    </head>
    <body>
    <form name="Formular" action="test3.php" method="post" enctype="multipart/form-data">
    	<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">
    	<input type="submit" value=">>" name="WEITER">
    </body>
    </html>

    Seite3:
    <?
    session_start();
    
    session_register("S_STRASSE");
    $S_STRASSE = $_REQUEST['STRASSE'];
    ?>
    <html>
    <head>
    </head>
    <body>
    <form name="Formular" action="test1.php" method="post" enctype="multipart/form-data">
    	<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">
    	<input type="text" name="STRASSE"  size="20" value="<?print $S_STRASSE;?>">
    	<input type="submit" value=">>" name="WEITER">
    </body>
    </html>
    
    Wenn jemand ein super Tutorial kennt bin ich auch dankbar für, aber eigentlich habe ich denk ich mal schon fast alle gängigen Tutorials dazu durchgelesen...ohne Erfolg.
    
    Wo liegt da der Fehler begraben bzw. wo mache ich einen Denkfehler?
    
    Thx schonmal
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. wtf?
    was machst du da?
    Ich durchschaue den Code net so wirklich...

    Aber wenn du das veraltete session_register() benutzt, solltest du $S_STRASSE vor dem session_register()-Aufruf festlegen.
    Ohne Variable geht ja nix.
    session_start();
    $S_STRASSE = $_REQUEST['STRASSE'];
    session_register('S_STRASSE');

    Eine bessere Lösung wäre:
    session_start();
    $S_STRASSE = $_REQUEST['STRASSE'];
    $_SESSION['S_STRASSE'] = $S_STRASSE;


    http://de.php.net/manual/de/function.session-register.php

    -AlienDwarf

    Beitrag geändert: 13.11.2006 15:44:44 von aliendwarf
  4. Autor dieses Themas

    i************s

    Hmmm... was ich da mach weiss ich anscheinend selber nicht ganz, sonst würde es ja funzen :)
    Dank dir erstmal. Warum genau muss man die Variable dann eigentlich noch einmal speichern in wieder eine andere?

    Also warum erst:

    S_STRASSE = $_REQUEST['STRASSE'];

    und dann auch noch:

    $_SESSION['S_STRASSE'] = $S_STRASSE;?>

  5. c*********c



    ibes-solutions schrieb:
    [..]
    Also warum erst:
    S_STRASSE = $_REQUEST['STRASSE'];
    und dann auch noch:
    $_SESSION['S_STRASSE'] = $S_STRASSE;?>
    [..]


    Die verkürzte Schreibweise wäre natürlich auch korrekt:

    $_SESSION['S_STRASSE'] = $_REQUEST['STRASSE'];


    Der Vorteil von aliendwarf's Lösung besteht darin, dass die Variable sowohl unter $_SESSION['S_STRASSE'] wie auch unter $S_STRASSE verfügbar ist.

    Btw: Du solltest jede Eingabe vom Benutzer vor der Ausgabe escapen-> http://de.php.net/manual/de/function.htmlspecialchars.php
  6. Autor dieses Themas

    i************s

    Ok. Danke für die Antworten :)

    Seltsamerweise funktioniert das wieder nicht richtig.
    Die Daten aus den Sessionvariablen werden nicht wieder in die Textfelder eingelesen. In den Variablen stehen aber die Daten, es muss am Ausgeben liegen :(

    Seite1:

    <?
    session_start();
    ?>
    
    
    
    <td width="195"><input type="text" name="STELLE" size="20" value="<? echo $_SESSION['S_STELLE'];?>"></td>
    						<td width="120"><font face="Arial"  style="font-size: 8pt; font-weight: 400">Standort: *</td>
    						<td width="195"><input type="text" name="STANDORT"  size="20" value="<? echo $_SESSION['S_STANDORT'];?>"></td>



    Seite2:

    <?
    session_start();
    	
    		$S_STELLE = $_REQUEST['STELLE'];
    		$_SESSION['S_STELLE'] = $S_STELLE;
    		$S_STANDORT = $_REQUEST['STANDORT'];
    		$_SESSION['S_STANDORT'] = $S_STANDORT;
    		$S_BART = $_REQUEST['BART'];
    		$_SESSION['S_BART'] = $S_BART;
        
    ?>


    Was hab ich nun wieder falsch gemacht???
    Danke für Antworten




    Beitrag geändert: 14.11.2006 9:46:55 von ibes-solutions
  7. Autor dieses Themas

    i************s

    OK ich habe schonmal rausgefunden, dass es wohl an meinem Button für ZURÜCK liegt, denn wenn ich die Seite 1 einfach so wieder lade sind alle Daten noch vorhanden.

    Kann es sein, dass die Session praktisch wieder neu gestartet wird?

    Mein Zurückbutton schaut folgendermaßen aus:

    <a title="Zurück" href="bewerbung1.php"><input type="button" value="<<" name="ZURUECK"></a>


    Meine Frage ist nun, ich will also 2 Submit Buttons einbauen, wobei der eine nach vorne und der andere zurück gehen soll.

    Das heisst, ich wollte die Buttons mit einer id versehen und dann im Formular folgenden Code einbauen:

    <form name="Formular" action="<? if (id == "1"){echo 'bewerbung1.php';}else {echo 'bewerbung3.php';}?>" method="post" enctype="multipart/form-data" onSubmit="return chkFormular()">


    Die Buttons dann folgendermaßen:

    <input type="submit" title="Zurück" id="1" value="<<" name="ZURUECK"><a title="Weiter"><input type="submit" id="3" value=">>" name="WEITER">


    Klappt aber noch nicht wie gewollt. Irgendwie überprüft er die ID nicht, weil ich immer auf seite 3 komme.


    Beitrag geändert: 14.11.2006 10:58:58 von ibes-solutions
  8. ähm... lol aber das ist so ziemlich das sinnloseste was ich in letzter Zeit gelesen habe. Die Eigenschaft id gibt in HTML Tags die verknüpfung zu einem CSS Style an!
    wenn du das machen willst dann musst du mit der name eigenschaft machen... also so:

    <input type="submit" value.. name ="vor"><input type="submit" value... name="zurueck">

    if($_POST['vor']) //Wenn Button "vor" gedrückt wurde
    {
    Anweisung...
    }
    elseif($_POST['zurueck']) // Wenn Button "zurueck" gedrückt wurde
    {
    Anweisung...
    }

    Edit: ähm noch was... wenn du <input> tags außerhalb von einem Formtag behandelst brignt dir das gar nix... und ähm $_REQUEST ist zwar nett aber meiner ansichtnach Sicherheitsmässig sehr gefährlich... ich würde im Formtag als attribut method="post" verwenden und dann $_POST

    damit sollte dein problem gelöst sein hoffe ich...
    wenn ichs nicht richtig verstanden hab schreib bei ICQ

    mfg

    Beitrag geändert: 15.11.2006 22:35:36 von sirseven
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!