AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein PHP: Session_register registriert Vars, aber Values nicht
Thema durchsuchen
Ansicht
Themen-Optionen

PHP: Session_register registriert Vars, aber Values nicht

Ein Thema von Die Muhkuh · begonnen am 27. Mai 2005 · letzter Beitrag vom 28. Mai 2005
Antwort Antwort
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

PHP: Session_register registriert Vars, aber Values nicht

  Alt 27. Mai 2005, 15:56
Hi,

erstmal bisschen Code:

Index.php:

Code:
<?
  session_start();
      
  if ($login) // DAS hier ist nur zum Test
  {
    echo 'ja';
  }
?>

<form action="login.php" method="post" name="leaderlogin" id="leaderlogin">
                          Passwort:


                          <input name="lpw" type="password" id="lpw" size="35" maxlength="20">
                         


                          <input name="lsub" type="submit" id="lsub" value="LogIn">
                        </form>
LogIn.php:


Code:
<?
  session_start();
  include('inc/function.inc.php');
  if (isset($_POST['lsub']))
  {
    $pw = $_POST['lpw'];
    DoLogin('TSD_Spider', $pw);
  }
?>

Function.Inc.php:

Code:
function DoLogin($username, $pw)
   {
     Connect();
     $sql = "SELECT * FROM users WHERE (username = '$username')";
      $result = mysql_query($sql);
      
      if (mysql_num_rows($result) == 1)
      {
        $row = mysql_fetch_assoc($result);
         
         if ($row['active'] == 1)
         {
           if ($row['passwort'] == md5($pw))
            {
               session_start();
               session_register('user', 'state', 'login');
               $user = $username;
               $state = $row['status'];
               $login = true;               
               header('Location: index.php');
            }
            else
            {
               echo 'Falsches Passwort
';
            }            
         } 
         else
         {
           echo 'Benutzername inaktiv';
         }
      }
      else
      {
        echo 'Benutzername nicht vorhanden';
      }
   }
Eigentlich sollte das mit den Session, so wie es jetzt ist, funktionieren. Die Variablen werden registriert, aber nicht, was ich ihnen zuweise.

Wenn ich per print_r($_SESSION) das Session-Array ausgebe kommt das raus:

Code:
Array ( [user] => [state] => [login] => )
Wie man sieht, wurden die Variablen registriert, aber die Zuweisungen nicht (ich wiederhole mich^^).

Wenn ich nun aktuallisiere, dann sind auch die Zuweisungen gelöscht wurden. Nein, ich rufe kein Session_destroy(); auf.

Ich hab noch ein anderes LogIn-Script, für eine andere Seite geschrieben, dort mach ich das haargenau so und dort funktioniert, aber in diesem Script nicht. Ich weiß nicht warum.

Hat vllt. einer eine Idee?

[edit=alcaeus][Klammern entfernt] Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
Grendel
(Gast)

n/a Beiträge
 
#2

Re: [PHP] Session_register registriert Vars, aber Values nic

  Alt 27. Mai 2005, 16:02
Ahhh... da will jemand globale Variablen nutzen. Jehova, Jehova!

Dein Code würde mit "register_globals = on" funktionieren. Aber jetzt komm bloß nicht auf die Idee register_globals auf on zu setzen. Die sind aus gutem Grund seit 4.1 standardmäßig auf off und sollen auch so bleiben.

Mach die Zuweisung einfach so:
Code:
  session_register('user', 'state', 'login');
  $_SESSION['user'] = $username;
  $_SESSION['state' = $row['status'];
  $_SESSION['login'] = true;
Bis neulich ...
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: [PHP] Session_register registriert Vars, aber Values nic

  Alt 27. Mai 2005, 16:06
JA!

Danke!

Das komische ist, in dem anderen Script, von dem ich sprach, hab ich das genauso gemacht und dort wird nirgendwo register_global aufgerufen und es funktioniert.

Warum soll man register_global nicht auf on stellen?
  Mit Zitat antworten Zitat
Grendel
(Gast)

n/a Beiträge
 
#4

Re: [PHP] Session_register registriert Vars, aber Values nic

  Alt 27. Mai 2005, 16:21
Zitat von Spider:
Das komische ist, in dem anderen Script, von dem ich sprach, hab ich das genauso gemacht und dort wird nirgendwo register_global aufgerufen und es funktioniert.
register_globals wird nicht aufgerufen. register_globals ist ein Parameter in der php.ini.

Zitat von Spider:
Warum soll man register_global nicht auf on stellen?
Diese Frage ist im Netz zigfach ausführlich beantwortet. Google einfach mal. Die Erklärungen die Du finden dürftest sind mit Sicherheit alle besser als das was ich jetzt noch zu Tastatur bringen würde.

Nur soviel: Stell Dir folgendes Szenario vor.
Es existiert eine Session-Variable namens "test" und in der url wird ?test=dingens übergeben.
Welchen Wert beinhaltet nun $test? Den aus der Session oder den des GET-Parameters?
Greift man über $_GET['test'] bzw. $_SESSION['test'] zu ist es eindeutig.

Du hast Dir genau diesen Fallstrick selber eingebaut.
Das hier:
Code:
  if ($login) // DAS hier ist nur zum Test
  { 
    echo 'ja';
  }
sollte das Problem verdeutlichen. Klar meinst Du in diesem Fall den Wert von "login" aus der Session aber es ist nicht eindeutig. Hängt man "?login=true" an die url ist der login u.U. überwunden ohne, daß man nach einem pass gefragt wurde.

Also immer über $_SESSION, $_GET, $_POST, etc... zugreifen.

Bis neulich ...
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: [PHP] Session_register registriert Vars, aber Values nic

  Alt 27. Mai 2005, 16:25
Hi,

danke. Beim Beispiel hats klick gemacht, warum man das nicht auf on stellen sollte. Ist ja wie mit Delphi und Globalen Variablen (Igitt)
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#6

Re: PHP: Session_register registriert Vars, aber Values nich

  Alt 27. Mai 2005, 19:11
session_register soll überhaupt nichtmehr verwendet werden.
Ein Mix aus session_register und $_SESSION ist eig. Schwachsinn.

In dem obigen Code kann das session_register komplett weggelassen werden, $_SESSION['...'] = "..." reicht vollkommen um es direkt zu definieren.

Denn session_register arbeitet genauso mit register_globals = on

air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: PHP: Session_register registriert Vars, aber Values nich

  Alt 28. Mai 2005, 12:09
Hi,

wenn ich das Session_register weglasse, dann funktioniert es nichtmehr
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz