php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.04.2006, 13:04  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard session array

Hi Leutz,

brauche dringend eure Hilfe. Ganze folgende Krempel funktioniet lokal einwandfrei, allerdings nicht live!

es gibt u.a. 2 Klassen

form.php | session.php

session.php
PHP-Code:
...
include (
"form.php");
include (
"mailer.php");
class 
Session {
    var 
$username;
    var 
$userlevel;
    var 
$language;
    var 
$setLang;
    var 
$loggedIn;
    var 
$userinfo = array ();
    var 
$url;
    var 
$referrer;
    var 
$shopping_cart;
    var 
$couponUsage;
    var 
$cc;
    function 
Session($cc)
        {
        
$this->startSession();
        
$this->cc $cc;
        
$this->time time();
        }

    
/* startet session & bestimmt, ob der User bereits eingeloggt ist
       und setzt die session-Varaiablen */

    
function startSession()
        {
        
/*  startet aktuelle Session */
        
session_start();

    
/* User möchte sich einloggen */
    
function login($user$pass$lang$form)
        {
        
        
$db1 = new dbconn(hostuserpassname);

        
$field "username";

        if (!
$user || strlen($subuser trim($user)) == 0) {
            
$msg $lang["error"]["no_username"];
            
$form->setError($field$msg);
        } elseif (!
ereg("^([a-zA-Z0-9 ])+$"$user)) {
            
$msg $lang["error"]["username_notalpha"];
            
$form->setError($field$msg);
        }

        
$field "passwd";

        if (!
$pass) {
            
$msg $lang["error"]["no_passwd"];
            
$form->setError($field$msg);
        }

        
/* Abbruch, wenn fehler aufgetreten sind */
        
if ($form->cnt_errors 0) {
            return 
FALSE;
        }

        
/* Checks that username is in database and password is correct */
        
$subuser stripslashes($user);
        
$result $db1->checkPass($usermd5($pass));

        
/* Check error codes */
        
if ($result == 1) {
            
$field "username";
            
$msg $lang["error"]["username_notfound"];
            
$form->setError($field$msg);
        } else if (
$result == 2) {
            
$field "passwd";
            
$msg $lang["error"]["invalid_pass"];
            
$form->setError($field$msg);
        }

        
/* Return if form errors exist */
        
if ($form->cnt_errors 0) {
            return 
FALSE;
        }

        
//letzten login in session schreiben
        
$userinfo $db1->getUserDetails($user10);
        
$this->last_log $_SESSION['last_log'] = $userinfo['con_value'];

        
$db1->setLog($user);

        
/* Username and password correct, register session variables */
        
$userinfo $db1->getUserDetails($user6);
        
$this->username $_SESSION['uname'] = $userinfo['con_value'];
        
$userinfo $db1->getUserDetails($user8);
        
$this->userlevel $userinfo['con_value'];

        
/* Login war erfolgreich */
        
return TRUE;
        }
...
}
;
$session = new Session($cc);
$form = new Form
form.php
PHP-Code:
class Form
 
{
   var 
$values = array();
   var 
$errors = array();
   var 
$cnt_errors;

   
/*  Klassenkonstruktor */

   
function Form(){

      if(isset(
$_SESSION['value']) && isset($_SESSION['error'])){
         
$this->values $_SESSION['value'];
         
$this->errors $_SESSION['error'];
         
$this->cnt_errors count($this->errors);

         unset(
$_SESSION['value']);
         unset(
$_SESSION['error']);

      }
      else{
         
$this->cnt_errors 0;
      }
   }

   
/* speichert Eingaben in value */
   
function setValue($field$value){
      
$this->values[$field] = $value;
   }

   
/* speichert Fehlermeldungen für bei Übermittlung von Formulardaten */
   
function setError($field$msg){
      
$this->errors[$field] = $msg;
      
$this->cnt_errors count($this->errors);
   }

   
/* Liefert den Wert des entsprechenden Feldes*/
   
function getValue($field){
      if(
array_key_exists($field,$this->values)){
         return 
htmlspecialchars(stripslashes($this->values[$field]));
      }else{
         return 
"";
      }
   }

   
/* Liefert den Fehler des entsprechenden Feldes*/
   
function getError($field){
      if(
array_key_exists($field,$this->errors)){
         return 
$this->errors[$field];
      }else{
         return 
"";
      }
   }

   
/* Gibt das Array mit den Mittlungen zurück*/

   
function getErrorMessages(){
      return 
$this->errors;
   }
}; 
wird übergeben über
PHP-Code:
    function Login()
        {
        
$logval $this->session->login($_POST['logname'], $_POST['logpass'], $this->lang$this->form);

        if (
$logval== TRUE) {
            if (!empty(
$this->session->query_string) && ($this->session->query_string != "login")) {
                if (!empty(
$_POST['ssl']))
                    
header("Location: " $this->secure_page() . "?" $this->session->query_string "");
                else
                    
header("Location: " $this->secure_page_off() . "?" $this->session->query_string "");
            } else {
                if (!empty(
$_POST['ssl']))
                    
header("Location: " $this->secure_page() . "?myAccount");
                else
                    
header("Location: " $this->secure_page_off() . "?myAccount");
            }
        } else {
            
$_SESSION['value'] = $_POST;
            
$_SESSION['error'] = $this->form->getErrorMessages();

            
header("Location: ../index.php?login");
        }
        } 


jetzt liefert mir das form-array lokal das was es meiner Ansicht nach soll;
etwa
Zitat:
Form Object ( [values] => Array ( ) [errors] => Array ( [username] => Bitte einen Usernamen angeben [passwd] => Bitte ein Paßwort angeben ) [cnt_errors] => 2 )
live im Netz aber leider
Zitat:
form Object ( [values] => Array ( ) [errors] => Array ( ) [cnt_errors] => 0 )
Weiss echt nicht weiter

mfg
derTrallala
Timo Trallala ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.04.2006, 13:16  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Was sagt die Ausgabe
PHP-Code:
echo SID
KingCrunch ist offline  
Alt 21.04.2006, 13:32  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard

also die Funktionalität dahinter steht!

Session wird mit aufruf der Seite gestartet püber die index.php

Man kann sich einloggen, registrieren ect, autom. Mails werden versendet!

Problem kind ist diese form-Klasse.
Diese benötigt session-Klasse.

Ich tüftele jetzt seit einigen tagen... bis ich nach Häme an anderer Stelle meine ursprünglichen globalen Variablen entfernt habe...
ich Doofmann
Timo Trallala ist offline  
Alt 21.04.2006, 13:37  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Heißt das nu, es hat sich geklärt?
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 21.04.2006, 13:39  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard

nein!

Aber isch werd in kürze explodieren!
Timo Trallala ist offline  
Alt 21.04.2006, 13:40  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von KingCrunch
Was sagt die Ausgabe
PHP-Code:
echo SID
Gabs darauf eine Reaktion?
KingCrunch ist offline  
Alt 21.04.2006, 13:44  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard

na die session id gabs
Timo Trallala ist offline  
Alt 21.04.2006, 13:57  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Ganz nett wäre sicherlich noch zu wissen wie's nun direkt abläuft . bzw. ablaifen soll ..

Nur mal so nebenbei .. hast die Register Globals mal gecheckt .. vllt On aus und Off an ..

http://faq.kwm-web.info/doku.php?id=...gister_globals
M3g4Star ist offline  
Alt 21.04.2006, 14:00  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Schade eigentlich, wär auch zu einfach gewesen

Haste ma
PHP-Code:
error_reporting(E_ALL); 
gesetzt?

Wie wird denn die Session-Klasse angesprochen? Das is doch die einzige, die in diesen all die Form-Klasse anspricht, oder?

wie kann das überhaupt funktionieren?
PHP-Code:
//...
function startSession()
        {
        
/*  startet aktuelle Session */
        
session_start();

    
/* User möchte sich einloggen */
    
function login($user$pass$lang$form)
        {
//... 
KingCrunch ist offline  
Alt 21.04.2006, 14:02  
Benutzer
 
Registriert seit: 30.09.2005
Beiträge: 71
Timo Trallala
Standard

nein nein,

die formulare übertragen die daten, schreiben sie in die datenbank alles was sie sollen. Es geht nur um die fehlermeldungen/ erfogsmeldungen, die ich in ein form array schreibe und ie werden einfach nicht dargestellt bzw. in der online-Version nicht entsprechend gefüllt, und das erst, seitdem ich die $form nicht mehr als globale variable einbinde
Timo Trallala ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
[Erledigt] Mehrdimensionales Array in Session speichern PHP-Fortgeschrittene 6 11.10.2005 17:32
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Array per SESSION übergeben? PHP Tipps 2005-2 3 11.08.2005 09:51
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array in Session speichern und wieder auslesen Riot PHP Tipps 2005-2 3 08.07.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
[Erledigt] Problem mit Array und Session PHP-Fortgeschrittene 1 15.12.2004 12:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
html session array, session array php, sessionarray, session php arraay, session in einem aray

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.