var~anpassen

free123

Mitglied
Hallo alle zusammen oder auch Tach! :-)

Habe mal kurz eine frage undzwar würde ich gerne die Var* anpassen so das es auch
mit REG off funktioniert

Die Funktion sieht so aus
PHP:
<?
}

function Login() {

        global $HTTP_SESSION_VARS;
        global $chat;
        global $nick;

        session_start();
        session_register("nick", $nick);

  ?>

        <frameset rows="*,100" cols="*">
          <frame name="posts" src="index.php?action=posts&nick=<? echo $nick; ?>&chat=<?php echo $chat; ?>">
          <frame name="form" src="index.php?action=form&nick=<? echo $nick; ?>">
        </frameset>
          <noframes>
          <body>

          <p>Diese Seite benötigt Frames die Ihr Brwoser leider nicht unterstützt.</p>

          </body>
          </noframes>
        </frameset>

  <?
}

function GetInput() {

        global $HTTP_SESSION_VARS;
        global $chat;
        global $nick;

  ?>

Ersetze ich die Funktion
PHP:
function Login() {

        global $HTTP_SESSION_VARS;
        global $chat;
        global $nick;

        session_start();
        session_register("nick", $nick);

durch diese
PHP:
function Login() {


        $_SESSION['chat'] = $chat;
        $_SESSION['nick'] = $nick;

       $nick = $_SESSION['nick'];
wird das nicht richtig übergeben bsw wird der nickname nicht übermittelt wobei
PHP:
session_start();
jetzt am Anfang steht.

Wer kann mir weiterhelfen?
 
Das liegt daran, dass $chat und $nick nicht in der Funktion vorhanden sind.

Woher kommen die beiden Variablen denn? Aus einem Formular? Aus einer URL?

Dementsprechend müsste du diese entweder mit global in der Funktion verfügbar machen oder aus einem der superglobalen Arrays $_POST oder $_GET holen.
 
PHP:
function Login() {

        $nick = htmlspecialchars($_POST['nick']);
        $chat = htmlspecialchars($_POST['chat']);
        $_SESSION['chat'] = $chat;
        $_SESSION['nick'] = $nick;

       $nick = $_SESSION['nick'];

In diese Richtung sollte es gehen.

Und bitte keine PMs schreiben, wenn ich helfen möchte, dann schreibe ich im Thread.
 
Vielen Dank für deine Hilfe :)

in der Funktion GetInput habe ich es so angepasse

PHP:
function GetInput() {

        $nick = htmlspecialchars($_POST['nick']);
        $chat = htmlspecialchars($_POST['chat']);
$chat = (isset($_REQUEST['chat']) && !empty($_REQUEST['chat']) )? $_REQUEST['chat'] : "";
$nick = (isset($_REQUEST['nick']) && !empty($_REQUEST['nick']) )? $_REQUEST['nick'] : "";

Super Danke für die schnelle Hilfe

ps: Wie aber ergänze ich es hier ?
PHP:
if (empty($_GET['action']))
  ShowLoginForm();
elseif ($action == "posts")
  ShowAddPosts();
elseif ($action == "form")
  GetInput();
elseif ($action == "enter")
  Login();
 
Einfach $action durch $_GET['action'] ersetzen.

PHP:
function GetInput() {

        $nick = htmlspecialchars($_POST['nick']);
        $chat = htmlspecialchars($_POST['chat']);
$chat = (isset($_REQUEST['chat']) && !empty($_REQUEST['chat']) )? $_REQUEST['chat'] : "";
$nick = (isset($_REQUEST['nick']) && !empty($_REQUEST['nick']) )? $_REQUEST['nick'] : "";

Dann lieber so:

PHP:
function GetInput() {

$chat = (isset($_REQUEST['chat']) && !empty($_REQUEST['chat']) )? htmlspecialchars($_REQUEST['chat']) : "";
$nick = (isset($_REQUEST['nick']) && !empty($_REQUEST['nick']) )? htmlspecialchars($_REQUEST['nick']) : "";

Ich würde aber statt $_REQUEST lieber $_POST benutzen, da du ja weißt, woher die Daten kommen. $_REQUEST empfinde ich eher als eine Lösung für Leute, die sich nicht wirklich mit register_globals auseinandersetzen wollen ;)
 
Zurück