php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-10-2006, 23:24
Morbid
 Newbie
Links : Onlinestatus : Morbid ist offline
Registriert seit: Oct 2006
Beiträge: 3
Morbid ist zur Zeit noch ein unbeschriebenes Blatt
Standard Klassen Objekt globalisiert?

Guten Abend,

bin neu in diesem Forum und habe natürlich gleich ein problem. Konnte im Netz und über die Suche nichts eindeutiges finden.
Deshalb schildere ich mal persönlich mein Problem.

Ich habe folgende Dokumente: index.php, login.php, c_login.php

c_login.php = Klasse die mit der Methode Login($username, $password) den Benutzer überprüft und gegebenfalls einloggt.

login.php = benutzt die klasse zum einloggen, $User (das objekt) wird erst auf dieser seite erzeugt.

index.php = startseite, soll über is_object prüfen ob das objekt ($User) erzeugt wurde.

Das Problem: Ich kann mich problemlos über die login.php seite anmelden, aber geh ich nach dem anmelden auf index.php gibt is_object($User)
trotzdem false zurück. Wenn ich ein Benutzer direkt auf der index.php erstellen ist der rückgabe wert allerdings true.

meine frage, wie kann ich ein objekt nur unter login.php erzeugen und es bis zum logout für alle anderen .php dokumente nutzbar machen,
so das ich prüfen kann ob ein admin menü angezeigt werden soll usw.

Die Datei index.php (auszug)
PHP-Code:
 if(is_object($GLOBALS['User']))
 {
  echo 
'Es wurde ein Benutzer über die Klasse c_login erzeugt';
 }
 elseif(!
is_object($GLOBALS['User']))
 {
  echo 
'Es gibt noch kein Benutzer durch die Klasse c_login';
 } 
Die Datei login.php (auszug)
PHP-Code:
<? if(isset($_REQUEST['submit']))
 {

  
$GLOBALS['User'];
  
$User = new c_login;
  
  if(
$User->Login($_REQUEST['f_username'], $_REQUEST['f_password']))
  {
   echo 
'der benutzer konnte angemeldet werden <br />';
  }
  
 }
?>
Die Datei c_login.php (auszug (nur methode Login), hier gibt es aber eigentlich auch keine probleme)
PHP-Code:
  function Login($name$password)
  {
   
$query     "Select * From " $this->table_title " WHERE " $this->row_title_name "='" $name "' AND " 
$this->row_title_password "='" md5($password) . "' LIMIT 1";   
   
$result     mysql_query($query);
      
   if(
$row mysql_fetch_array($result))
   {
     
$this->login_session_value $row[$this->login_session_typ];
     
$s_reg session_register($this->login_session_value);
     
$update mysql_query("UPDATE " $this->table_title " SET " $this->row_title_session_id .  "='" .  
session_id() . "' WHERE " $this->row_title_id "='" $row[$this->row_title_id] . "'"); 
     
$this->login_user_id $row[$this->row_title_id];
     
     if(isset(
$s_reg) && isset($update))
     {
      return 
true;
     }     
   } else
     {
      return 
false;
     }   
  } 
Mit freundlichen Grüße
H. Morbid

Geändert von Morbid (21-10-2006 um 23:56 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 21-10-2006, 23:49
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Klassen Objekt globalisiert?

kannst du bitte deinen code umbrechen? niemand hat hier lust kilometerweit horizontal zu scrollen.

Zitat:
Original geschrieben von Morbid
meine frage, wie kann ich ein objekt nur unter login.php erzeugen und es bis zum logout für alle anderen .php dokumente nutzbar machen
genau für diese zwecke hat der php-gott sessions erfunden.
Mit Zitat antworten
  #3 (permalink)  
Alt 22-10-2006, 00:05
Morbid
 Newbie
Links : Onlinestatus : Morbid ist offline
Registriert seit: Oct 2006
Beiträge: 3
Morbid ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich arbeite doch mit sessions (siehe. source),

vielleicht ein weiterer ausschnitt aus der klasse.

methode zum prüfen ob user eingeloggt
PHP-Code:
  function IsLogin()
  {
   if(
session_is_registered($this->login_session_value) || $_SESSION[$login_session_value] != "")
   {
    return 
true;
   }
  } 
eigentlich möchte ich doch nur wissen, warum ein Objekt nur auf
einer seite gültig ist.

Aber danke für den Tipp, der PHP Gott wird mir schon weiter helfen...
Mit Zitat antworten
  #4 (permalink)  
Alt 22-10-2006, 00:21
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Morbid
eigentlich möchte ich doch nur wissen, warum ein Objekt nur auf
einer seite gültig ist.
weil php vergesslich ist, speichere das objekt in einer session und alle seiten, die diese session benutzen, können darauf zugreifen.

$GLOBALS['User'] ändert auch nichts daran, wenn schon $_SESSION['User']
Mit Zitat antworten
  #5 (permalink)  
Alt 22-10-2006, 00:46
Morbid
 Newbie
Links : Onlinestatus : Morbid ist offline
Registriert seit: Oct 2006
Beiträge: 3
Morbid ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von 3DMax
weil php vergesslich ist, speichere das objekt in einer session und alle seiten, die diese session benutzen, können darauf zugreifen.

$GLOBALS['User'] ändert auch nichts daran, wenn schon $_SESSION['User']
hehe, sowas hatte ich auch ausprobiert ohne nützliches resultat, aber nun gehts.
kA was ich da mal wieder verbockt habe. Nun ja, erstmal besten Dank.

Mittlerweile bin ich aber der Meinung, das die Klasse wohl unnötig ist
und ich besser normale Funktion verwenden sollte.
Diese fordern schließlich kein Objekt und somit kann ich mir die doppelte Session sparen.
Seh ich das richtig so, oder macht eine Klasse fürs Anmelden sonderlich mehr Sinn?
Mit Zitat antworten
  #6 (permalink)  
Alt 23-10-2006, 13:11
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
weil php vergesslich ist, speichere das objekt in einer session und alle seiten, die diese session benutzen, können darauf zugreifen.

$GLOBALS['User'] ändert auch nichts daran, wenn schon $_SESSION['User']
aber ich kann doch in einer includierten Datei Variablen definieren, die im nachhinein in allen weiteren Dateien auch zur Verfügung stehen!
Ein
PHP-Code:
include "configs.php"
macht ja schließlich auch alle Konfigurationsvariablen im weiteren Verlauf verfügbar!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:29 Uhr.