PHP - session objecter!
Jeg sidder og slås lidt med et object i PHP.Jeg kan skrive og læse i det ved eks.:
$HTTP_SESSION_VARS['rz->By']="Taastrup";
Dette fungerer glimrende, problemet er mine metoder. Jeg kan ikke ændre mine variable gennem disse:
I filen class_test.php prøver jeg at sætte Brugernavn, og i filen varscope_test2.php udskriver jeg variablen men den er tom:
Jeg vil gerne have noget meget konkret, for jeg er meget desperat....
Mit eksempel skal virke SOMEHOW!!!!
Nedenfor er al min kode:
Fil: class_test.php
<?php
session_start();
include("classes/user.php");
$HTTP_SESSION_VARS['$rz'] = new user_ses();
$HTTP_SESSION_VARS['rz->By']="Taastrup";
$HTTP_SESSION_VARS['rz->check_input("Brugernavn","Thomas")'];
$HTTP_SESSION_VARS['rz->Log_stat']="Off";
echo($HTTP_SESSION_VARS['rz->By']);
echo($HTTP_SESSION_VARS['rz->Brugernavn']);
?>
<a href="varscope_test02.php">Klik her</a>
Fil: varscope_test02.php
<?php
session_start();
echo("TEST :" . $HTTP_SESSION_VARS['rz->By']);
echo("Brugernavn:" . $HTTP_SESSION_VARS['rz->Brugernavn']);
If ($HTTP_SESSION_VARS['rz->Log_stat']=="Off")
{
$HTTP_SESSION_VARS['rz->Log_stat']="On" ;
echo("Off");
}
Else
{
$HTTP_SESSION_VARS['rz->Log_stat']=="Off" ;
echo("On");
}
$HTTP_SESSION_VARS['rz->BY']="Nakskow";
?>
<a href="varscope_test02.php">Klik her</a>
Fil: user.php
<?php
# Classes by Thomas D. Hansen IKT Stud #8351
# Set script time limit to 120 seconds.
set_time_limit(120);
/*
Class : session
Purpose : mannage user on www.televogterne.dk
Variables :
sqlhost
sqluser
sqlpass
username - Username to login
Password - Password to login
Husstand_nr - ID for the Houshold
Bruger_navn - Name on the Houshold
Vej -
Husnummer
Etage
By
Postnummer
Email_adr
Status - Where is the user in the process
Log_stat - Is the user Logged IN or Logged Off
Functions :
login () - Check Username and Password, and create Object
create () - Creates a new Houshold (stores variables in table)
delete () - Deletes a Houshold (deletes variable in table)
set_var (Variable,Value) - Gives the Variable the desirede value!
bool source(string image_file)
Loads image_file as the active source image
bool resize()
Performs a pixel resize on the source image
bool resample()
Performs a resample on the source image
All returns true on success, otherwise false.
*/
class user_ses
{
var $sqlhost; #
var $sqluser; #
var $sqlpass; #
var $err; # Error Output String
var $err_no; # Error No.
var $username; # Username to login, String 20 characters long
var $Password; # Password to login, String 20 characters long
var $Husstand_nr; # ID for the Houshold, Integer
var $Brugernavn; # Name on the Houshold, String 40 characters long
var $Vej; # Adress, String 60 characters long
var $Husnummer; # Number, String 10 characters long
var $Etage; # Floor, String 10 characters long
var $By; # City, String 60 characters long
var $Postnummer; # Postal code, String 4 characters long
var $Email_adr; # Email adress, String 60 characters long
var $Status; # Where is the user in the process
var $Log_stat; # Is the user Logged IN or Logged Off
# Main function
function user_ses()
{
# Initialize variables with default values
$this->$sqlhost="thomas";
$this->$sqluser=""; #
$this->$sqlpass="" ; #
$this->$username=""; # Username to login, String 20 characters long
$this->$Password=""; # Password to login, String 20 characters long
$this->$Husstand_nr=""; # ID for the Houshold, Integer
$this->$Brugernavn=""; # Name on the Houshold, String 40 characters long
$this->$Vej=""; # Adress, String 60 characters long
$this->$Husnummer=""; # Number, String 10 characters long
$this->$Etage=""; # Floor, String 10 characters long
$this->$By=""; # City, String 60 characters long
$this->$Postnummer=""; # Postal code, String 4 characters long
$this->$Email_adr=""; # Email adress, String 60 characters long
$this->$Status="Start"; # The user is now starting
$this->$Log_stat="Off"; # The user is not logged in
}
# Check if variable is OK!
function check_input($Variable,$Value)
{
switch ($Variable)
{
case "Brugernavn":
If (strlen($Value)<4)
{
return ("Brugernavnet skal være på mindst 4 karakterer.<br>");
}
Elseif (strlen($Value)>20)
{
return ("Brugernavnet må højest være på 20 karakterer.<br>");
}
Else
{
$this->Brugernavn="test";
return ("");
}
break;
case "Fornavn":
If (strlen($Value)<1)
{
return ("Du skal indtaste dit fornavn.<br>");
}
Elseif (strlen($Value)>60)
{
return ("Fornavnet må højest være på 60 karakterer.<br>");
}
Else
{
return ("");
}
break;
case "Efternavn":
If (strlen($Value)<1)
{
return ("Du skal indtaste dit efternavn.<br>");
}
Elseif (strlen($Value)>60)
{
return ("Efternavnet må højest være på 60 karakterer.<br>");
}
Else
{
return ("");
}
break;
case "Vej":
If (strlen($Value)<1)
{
return ("Du mangler indtaste vejnavn.<br>");
}
Elseif (strlen($Value)>60)
{
return ("Vejnavnet må højest være på 60 karakterer.<br>");
}
Else
{
return ("");
}
break;
case "Husnummer":
If (strlen($Value)<1)
{
return ("Du skal indtaste husnummer.<br>");
}
Elseif (strlen($Value)>10)
{
return ("Husnummer må højest være på 10 karakter.<br>");
}
Else
{
return ("");
}
break;
case "Etage":
If (strlen($Value)>10)
{
return ("Etage må højest være på 10 karakterer.<br>");
}
Else
{
return ("");
}
break;
case "Postnummer":
If (strlen($Value)!=4)
{
return ("Dit postnummer skal være på fire cifre.<br>");
}
Else
{
return ("");
}
break;
case "By":
If (strlen($Value)<1)
{
return ("Du skal indtaste by.<br>");
}
Elseif (strlen($Value)>60)
{
return ("Bynavnet kan højest være på 60 karakterer.<br>");
}
Else
{
return ("");
}
break;
case "Email_adr":
If (!ereg("^.+@.+\..+$", $Value))
{
return ("Du skal indtaste en gyldig email adresse.<br>");
}
Else
{
return ("");
}
break;
case "Password1": // Ignorer
{
return ("");
}
break;
case "Password2": // Ignorer
{
return ("");
}
break;
}
Return("Funktionsfejl - ukendt variabel: ".$Variable."<br>");
}
function check_pass($Pass1,$Pass2)
{
If ($Pass1 != $Pass2)
{
return ("Du har indtastet forkert i et af Password felterne, prøv igen");
}
If (strlen($Pass1)<4 or strlen($Pass2)<4)
{
return ("Dit password skal være på mindst 4 karakterer.");
}
If (strlen($Pass1)>20 or strlen($Pass2)>20)
{
return ("Dit password må højest være på 20 karakterer.");
}
return ("");
}
function create_user($Navn, $Password, $Fornavn, $Efternavn, $Vej, $Husnummer, $Etage, $Postnummer, $By, $Email,$Type)
{
if (!($link = mysql_pconnect ("localhost","happyweb4ucom","17858")))
{
return("Der er ingen forbindelse til databasen.");
}
if (!($newresult = mysql_db_query("happyweb4ucomdb", "INSERT INTO bruger (`Brugernavn`, `Password`, `Fornavn`, `Efternavn`, `Vej`,`Husnummer`, `Etage`, `Postnummer`, `By`, `Email_adr`, `Type`)
VALUES ('$Navn', '$Password', '$Fornavn','$Efternavn' , '$Vej', '$Husnummer', '$Etage', '$Postnummer', '$By', '$Email','$Type')")))
{
return("Brugernavnet <b>". $Navn ."</b> er i brug, prøv venligst med et nyt brugernavn.");
}
return("");
}
}
?>