Archief - Var in class naar andere pagina brengen.

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

KingOfWoods

Legacy Member
Hallo allemaal.

Ik heb nu in mijn users.class.php een functie lopen die gegevens uit mijn DB gaat halen en die in variables zet.

Dus bv. $voornaam = $row['UserVnaam'];

Hoe kan ik die $voornaam nu uitlezen in mijn profiel.php.

Nu staat er wel <? php echo $voornaam; ?>, maar dat blijkt niet te lukken omdat die pagina probbly niet weet wat er in gestored is.

Ik ben nogal een noob met php. Dus sorry voor de waarschijnlijk dwaze vraag.

GivenToFly

Legacy Member
Niet met sessies. Schrijf een functie binnen je class (of spreek de functie aan die daarvoor in de class bestaat) om de waarde van de variabele uit te lezen.

Bv.
users.class.php
PHP:
public function getVoornaam()
{
return $this->voornaam;
}
profiel.php
PHP:
echo $oUser->getVoornaam();

KingOfWoods

Legacy Member
GivenToFly zei:
Niet met sessies. Schrijf een functie binnen je class (of spreek de functie aan die daarvoor in de class bestaat) om de waarde van de variabele uit te lezen.

Bv.
users.class.php
PHP:
public function getVoornaam()
{
return $this->voornaam;
}
profiel.php
PHP:
echo $oUser->getVoornaam();

Dit is wat ik nu heb.


User.class.php (onderaan de functie ophalen)
PHP:
<?php

class User
{
	public $m_sUserId;
	public $m_sUserName;
	public $m_sPassword;
	public $m_sConfirmPassword;
	public $m_sVnaam;
	public $m_sAnaam;
	public $m_sStraat;
	public $m_iNr;
	public $m_sGemeente;
	public $m_iPostcode;
	public $m_sProvincie;
	public $m_iTel;
	public $m_iGsm;
	public $m_sEmail;
	public $m_sIkGeslacht;
	public $m_sNationaliteit;
	public $m_sInkomen;
	public $m_sBeroep;
	public $m_sDiploma;
	public $m_sBurgelijkestaat;
	public $m_sKinderen;
	public $m_sReligie;
	public $m_sIkRook;
	public $m_sIkDrink;
	public $m_sOpZoekNaar;
	public $m_sIkZoek;
	public $m_sIkZoekLeeftijd;
	public $m_sZijRookt;
	public $m_sZijDrinkt;
	public $m_sZijKinderen;

public function __set($p_sProperty, $p_vValue)
	{
		switch($p_sProperty)
		{
			case "Username":
				if(!empty($p_vValue))
				{
					$this->m_sUserName = $p_vValue;
				}
				else
				{
					Throw new Exception("Vul een login in aub.");
				}
				break;
				
			case "Password":
				if(!empty($p_vValue))
				{
					$this->m_sPassword = $p_vValue;
				}
				else
				{
					Throw new Exception("Vul een passwoord in aub.");
				}
				break;
				
			case "ConfirmPassword":
				if(!empty($p_vValue))
				{
					$this->m_sConfirmPassword = $p_vValue;
				}
				else
				{
					Throw new Exception("Confirmeer uw passwoord aub.");
				}
				break;
				
				case "Vnaam":
				if(!empty($p_vValue))
				{
					$this->m_sVnaam = $p_vValue;
				}
				break;
				
				case "Anaam":
				if(!empty($p_vValue))
				{
					$this->m_sAnaam = $p_vValue;
				}
				break;
				
				case "Straat":
				if(!empty($p_vValue))
				{
					$this->m_sStraat = $p_vValue;
				}
				break;
				
				case "Nr":
				if(!empty($p_vValue))
				{
					$this->m_iNr = $p_vValue;
				}
				break;
				
				case "Gemeente":
				if(!empty($p_vValue))
				{
					$this->m_sGemeente = $p_vValue;
				}
				break;
				
				case "Postcode":
				if(!empty($p_vValue))
				{
					$this->m_iPostcode = $p_vValue;
				}
				break;
				
				case "Provincie":
				if(!empty($p_vValue))
				{
					$this->m_sProvincie = $p_vValue;
				}
				break;
				
				case "Tel":
				if(!empty($p_vValue))
				{
					$this->m_iTel = $p_vValue;
				}
				break;
				
				case "Gsm":
				if(!empty($p_vValue))
				{
					$this->m_iGsm = $p_vValue;
				}
				break;
				
				case "Email":
				if(!empty($p_vValue))
				{
					$this->m_sEmail = $p_vValue;
				}
				break;
				
				case "IkGeslacht":
				if(!empty($p_vValue))
				{
					$this->m_sIkGeslacht = $p_vValue;
				}
				break;
				
				case "Nationaliteit":
				if(!empty($p_vValue))
				{
					$this->m_sNationaliteit = $p_vValue;
				}
				break;
				
				case "Inkomen":
				if(!empty($p_vValue))
				{
					$this->m_sInkomen = $p_vValue;
				}
				break;
				
				case "Beroep":
				if(!empty($p_vValue))
				{
					$this->m_sBeroep = $p_vValue;
				}
				break;
				
				case "Diploma":
				if(!empty($p_vValue))
				{
					$this->m_sDiploma = $p_vValue;
				}
				break;
				
				case "BurgelijkeStaat":
				if(!empty($p_vValue))
				{
					$this->m_sBurgelijkestaat = $p_vValue;
				}
				break;
				
				case "Kinderen":
				if(!empty($p_vValue))
				{
					$this->m_sKinderen = $p_vValue;
				}
				break;
				
				case "Religie":
				if(!empty($p_vValue))
				{
					$this->m_sReligie = $p_vValue;
				}
				break;
				
				case "IkRook":
				if(!empty($p_vValue))
				{
					$this->m_sIkRook = $p_vValue;
				}
				break;
				
				case "IkDrink":
				if(!empty($p_vValue))
				{
					$this->m_sIkDrink = $p_vValue;
				}
				break;
				
				case "OpZoekNaar":
				if(!empty($p_vValue))
				{
					$this->m_sOpZoekNaar = $p_vValue;
				}
				break;
				
				case "IkZoek":
				if(!empty($p_vValue))
				{
					$this->m_sIkZoek = $p_vValue;
				}
				break;
				
				case "IkZoekLeeftijd":
				if(!empty($p_vValue))
				{
					$this->m_sIkZoekLeeftijd = $p_vValue;
				}
				break;
				
				case "ZijRookt":
				if(!empty($p_vValue))
				{
					$this->m_sZijRookt = $p_vValue;
				}
				break;
				
				case "ZijDrinkt":
				if(!empty($p_vValue))
				{
					$this->m_sZijDrinkt = $p_vValue;
				}
				break;
				
				case "ZijKinderen":
				if(!empty($p_vValue))
				{
					$this->m_sZijKinderen = $p_vValue;
				}
				break;
		}

public function __get($p_sProperty)
	{
		$vResult = null;
		switch($p_sProperty)
		{
		case "Userid":
			$vResult = $this->m_sUserId;
			break;			
		case "Username":
			$vResult = $this->m_sUserName;
			break;
		case "Password":
			$vResult = $this->m_sPassword;
			break;
		case "ConfirmPassword":
			$vResult = $this->m_sConfirmPassword;
			break;
		case "Vnaam":
			$vResult = $this->m_sVnaam;
			break;
		case "Anaam":
			$vResult = $this->m_sAnaam;
			break;
		case "Straat":
			$vResult = $this->m_sStraat;
			break;
		case "Nr":
			$vResult = $this->m_iNr;
			break;
		case "Gemeente":
			$vResult = $this->m_sGemeente;
			break;
		case "Postcode":
			$vResult = $this->m_iPostcode;
			break;
		case "Provincie":
			$vResult = $this->m_sProvincie;
			break;
		case "Tel":
			$vResult = $this->m_iTel;
			break;
		case "Gsm":
			$vResult = $this->m_iGsm;
			break;
		case "Email":
			$vResult = $this->m_sEmail;
			break;
		case "IkGeslacht":
			$vResult = $this->m_sIkGeslacht;
			break;
		case "Nationaliteit":
			$vResult = $this->m_sNationaliteit;
			break;
		case "Inkomen":
			$vResult = $this->m_sInkomen;
			break;
		case "Beroep":
			$vResult = $this->m_sBeroep;
			break;
		case "Diploma":
			$vResult = $this->m_sDiploma;
			break;
		case "BurgelijkeStaat":
			$vResult = $this->m_sBurgelijkestaat;
			break;
		case "Kinderen":
			$vResult = $this->m_sKinderen;
			break;
		case "Religie":
			$vResult = $this->m_sReligie;
			break;
		case "IkRook":
			$vResult = $this->m_sIkRook;
			break;
		case "IkDrink":
			$vResult = $this->m_sIkDrink;
			break;
		case "OpZoekNaar":
			$vResult = $this->m_sOpZoekNaar;
			break;
		case "IkZoek":
			$vResult = $this->m_sIkZoek;
			break;
		case "IkZoekLeeftijd":
			$vResult = $this->m_sIkZoekLeeftijd;
			break;
		case "ZijRookt":
			$vResult = $this->m_sZijRookt;
			break;
		case "ZijDrinkt":
			$vResult = $this->m_sZijDrinkt;
			break;
		case "ZijKinderen":
			$vResult = $this->m_sZijKinderen;
			break;			
		}
		return $vResult;
	}

public function Create()
	{
		include("Connection.php");
		$sSql = "insert into tblusers (
							UserName,
							UserPassword
							) 
							VALUES (
							'".mysqli_real_escape_string($link, $this->m_sUserName)."',
							'".mysqli_real_escape_string($link, $this->m_sPassword)."'
							);";
		if ($rResult = mysqli_query($link, $sSql))
		{
			//query went OK
		}
		else
		{
			echo $sSql;
			// er zijn geen query resultaten, dus query is gefaald
			throw new Exception('Er is iets foutgelopen. Kon account niet aanmaken!');
		}
		mysqli_close($link);
	}

public function Update()
	{
		include("Connection.php");	
		
		$sSql = "UPDATE tblusers 
						SET UserVnaam = '".mysqli_real_escape_string($link, $this->m_sVnaam)."',
						 UserAnaam = '".mysqli_real_escape_string($link, $this->m_sAnaam)."',
						 UserStraat = '".mysqli_real_escape_string($link, $this->m_sStraat)."',
			     		 UserNr = '".mysqli_real_escape_string($link, $this->m_iNr)."',
						 UserGemeente = '".mysqli_real_escape_string($link, $this->m_sGemeente)."',
						 UserPostcode = '".mysqli_real_escape_string($link, $this->m_iPostcode)."',
						 UserProvincie = '".mysqli_real_escape_string($link, $this->m_sProvincie)."',
						 UserTel = '".mysqli_real_escape_string($link, $this->m_iTel)."',
						 UserGsm = '".mysqli_real_escape_string($link, $this->m_iGsm)."',
						 UserEmail = '".mysqli_real_escape_string($link, $this->m_sEmail)."',
						 UserIkGeslacht = '".mysqli_real_escape_string($link, $this->m_sIkGeslacht)."',
						 UserNationaliteit = '".mysqli_real_escape_string($link, $this->m_sNationaliteit)."',
						 UserInkomen = '".mysqli_real_escape_string($link, $this->m_sInkomen)."',
						 UserBeroep = '".mysqli_real_escape_string($link, $this->m_sBeroep)."',
						 UserDiploma = '".mysqli_real_escape_string($link, $this->m_sDiploma)."',
						 UserBurgelijkeStaat = '".mysqli_real_escape_string($link, $this->m_sBurgelijkestaat)."',
						 UserKinderen = '".mysqli_real_escape_string($link, $this->m_sKinderen)."',
						 UserReligie = '".mysqli_real_escape_string($link, $this->m_sReligie)."',
						 UserIkRook = '".mysqli_real_escape_string($link, $this->m_sIkRook)."',
						 UserIkDrink = '".mysqli_real_escape_string($link, $this->m_sIkDrink)."',
						 UserOpzoeknaar = '".mysqli_real_escape_string($link, $this->m_sOpZoekNaar)."',
						 UserIkZoek = '".mysqli_real_escape_string($link, $this->m_sIkZoek)."',
						 UserIkZoekLeeftijd = '".mysqli_real_escape_string($link, $this->m_sIkZoekLeeftijd)."',
						 UserZijRookt = '".mysqli_real_escape_string($link, $this->m_sZijRookt)."',
						 UserZijDrinkt = '".mysqli_real_escape_string($link, $this->m_sZijDrinkt)."',
						 UserZijKinderen = '".mysqli_real_escape_string($link, $this->m_sZijKinderen)."'
						
						WHERE UserName = '".$this->m_sUserName."'";
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
		
		
		if ($rResult = mysqli_query($link, $sSql))
		{
			//query went OK
		}
		else
		{
			echo $sSql;
			echo mysqli_error($link);
			// er zijn geen query resultaten, dus query is gefaald
			throw new Exception('Er is iets foutgelopen. Kon gegevens niet opslaan!');
		}
		mysqli_close($link);
	}

}


mijn profiel.php
PHP:
<?php 
session_start();
include_once("classes/Connection.php");
include_once('classes/User.class.php');

if($_SESSION['username']&&$_SESSION['UserId'])
{
	$naam = $_SESSION['username'];
	$id = $_SESSION['UserId'];
	
	if(isset($_POST['submit']))
	{	
		try
		{		
			$user = new User();
			$user->Vnaam = $_POST['Vnaam'];
			$user->Anaam = $_POST['Anaam'];
			$user->Straat = $_POST['straat'];
			$user->Nr = $_POST['nr'];
			$user->Gemeente= $_POST['gemeente'];
			$user->Postcode= $_POST['postcode'];
			$user->Provincie = $_POST['provincie'];
			$user->Tel = $_POST['tel'];
			$user->Gsm = $_POST['gsm'];
			$user->Email = $_POST['email'];
			$user->IkGeslacht = $_POST['geslacht'];
			$user->Nationaliteit = $_POST['nationaliteit'];
			$user->Inkomen = $_POST['inkomen'];
			$user->Beroep = $_POST['beroep'];
			$user->Diploma = $_POST['diploma'];
			$user->BurgelijkeStaat = $_POST['burgelijkeStaat'];
			$user->Kinderen = $_POST['kinderen'];
			$user->Religie = $_POST['religie'];
			$user->IkRook = $_POST['roker'];
			$user->IkDrink = $_POST['alcohol'];
			$user->OpZoekNaar = $_POST['opzoeknaar'];
			$user->IkZoek = $_POST['IkZoek'];
			$user->IkZoekLeeftijd = $_POST['IkZoekleeftijd'];
			$user->ZijRookt = $_POST['Zijroken'];
			$user->ZijDrinkt = $_POST['Zijdrinken'];
			$user->ZijKinderen = $_POST['zijKinderen'];
			$user->Update(); //INSERT USER INTO TABLE
			
			$feedback = "Uw Informatie is opgeslagen!!";
		}
		catch (Exception $e)
		{
			$feedback = $e->getMessage();
		}
	}
		
}
else
{
	include("geenaccess.php");
}


?>

mijn profiel.php html code
PHP:
<form action="" method="post">
<div class="toggle_container">
<div class="block">					
<h3 class="beschrijving">Niet zichtbaar voor mensen zonder je code</h3>
<label class="label_lang">Voornaam: </label><input class="input_veld" value="<?php echo [COLOR="Lime"][SIZE="4"]<?php echo $user->Vnaam;?>[/SIZE][/COLOR];?>"  type="text"  name="Vnaam"><br />
<label class="label_lang">Achternaam: </label><input class="input_veld"  type="text" name="Anaam" value="<?php [COLOR="Lime"][SIZE="4"]<?php echo $user->Anaam;?>[/SIZE][/COLOR]?>"><br />
<label class="label_lang">Geboortedatum: </label><input class="input_veld"  type="text" name="Gdatum"><br />
<label class="label_lang">Straatnaam: </label><input class="input_veld"  type="text" name="straat"><br />
<label class="label_lang"> Nr: </label><input class="input_veld"  type="text" name="nr"><br />
<label class="label_lang">Gemeente: </label><input class="input_veld"  type="text" name="gemeente"><br />
<label class="label_lang"> Postcode: </label><input class="input_veld"  type="text" name="postcode"><br />
</div>
</div>	
<input class="submit" type="submit" name="submit" value="Sla mijn gegevens op" />
</form>

Hij geeft nu dus niks in de velden, maar als ik dan op de submit knop duw dan lukt het wel. Alleen schrijft hij niks meer weg in mijn databank. Ik snap er alvast niks meer van.

bedankt alvast

GivenToFly

Legacy Member
Je code trekt algemeen nu op niet veel. Het lijkt nu op iets waarvan uit verschillende bestaande script stukken werden overgenomen en aangevuld met eigen code. Verder lijkt het me nuttig dat je eens een tutorial over de basisprincipes van OOP doorneemt.

Maar wat je probleem betreft. Waar wil je dat de gegevens die in je tekstvelden moeten ingevuld worden vandaan komen? Ik zie nergens een functie die deze gegevens voor je uit de database ophaalt. Werk met een contructor of een andere functie in je class waaraan je het userid meegeeft en die vervolgens alle data uit je database ophaalt. Het user-object bevat op dat moment de gegevens van de ingelogde gebruiker en dan kan je deze gebruiken in je profielpagina.

De opbouw van je profiel.php zou als basis ongeveer als volgt moeten zijn:

PHP:
<?php
if(isset($_SESSION['username']) && isset($_SESSION['UserId']))			// er is een gebruiker ingelogd
{
	$oUser = new User($_SESSION['UserId']);
	/* of
	$oUser = new User();
	*oUser->getDataFromDb($_SESSION['UserId']);
	*/
	
	if($_SERVER['REQUEST_METHOD'] == 'POST')			// formulier werd verzonden, doe de afhandeling ervan
	{
		$oUser->setVoornaam($_POST['Vnaam']);
		// ...
		$oUser->Update();
	}
	else												// er werd niets verzonden, toon het formulier
	{
		echo '<form>';
		echo '<input type="text" name="Vnaam" value="'. $oUser->getVoornaam() .'" />';
		// ...
		echo '</form>';
	}
}
else								// niemand ingelogd, geen toegang tot de pagina
{
	include("geenaccess.php"); 
}
?>

setVoornaam($sNaam) en getVoornaam() zijn functies in je class die respectievelijk de variabele voor de voornaam van je object aanpassen en de waarde ervan returnen. Je kan ook de functies __set($prop, $val) en __get($prop) die nu in je class bestaan gebruiken als je daar liever mee werkt of aangezien het public variabelen betreft kan je in principe gewoon $oUser->m_sVnaam rechtstreeks aanspreken.

Curahee Q

Legacy Member
Liever geen variabelen publiek maken, dat haalt het hele opzet van data-hiding naar de knoppen. Met getters en setters heb je veel meer controle over wat er gebeurd. Als de input van de gebruiker niet naar wens is gooi je een exceptie...

Gewoon een $_POST['iets'] overnemen is voor problemen vragen. Vertrouw NOOIT maar dan ook NOOIT een gebruiker. Je data wordt in een tabel gezet, ik hoop dat je daarvoor nog iets anders doet met je variabele ;).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan