ciao a tutti...
Sto cominciando ad utilizzare il concetto OOP in php è mi trovo in qualche difficoltà concettuale.
Possido 3 pagine :
1- html puro con qualche 'tag php' per segnalare gli eventuali errori nella registrazione dei dati
2-la pagina che istanzia la classe e che reinderizza nelle varie pagine ed inserisce i dati nel db se corretti
3- La classe che effettua i controlli e che crea le variabili di errore...
Il problema sussiste nel perchè non riesco a trasportare alcune variabili dalla pagina (punto 2) alla pagina HTML dove dovrebbero comparire gli errori .
Vi posto la classe:
Codice PHP:
class objazienda {
private $denominazione = ""; //attributo
private static $erroreDenomina = ""; //attributo statico
public function objazienda ($n_deno){ //Costruttore
$this->denominazione = $n_deno;
}
//funzione di controllo campo
public function controldenominazione (){
if (empty($this->denominazione)){
self::$erroreDenomina = self::vuotodeno();
return false;
// return (self::GetErroreDenominazione(self::vuotodeno()));
}else if (!empty ($this->denominazione)){
$espressione = ereg("^[A-Za-z0-9\.\ ]+$", $this->denominazione);
if ($espressione){
return true;
}else{
self::$erroreDenomina = self::erroredeno();
return false;
//return (self::GetErroreDenominazione(self::erroredeno()));
}
}
}
//funzioni che mi creano le stringhe da mostrare
public static function vuotodeno (){
$vuoto = "Il campo denominazione deve essere riempito";
return $vuoto;
}
public static function erroredeno (){
$errore = "Il campo denominazione è stato compilato non correttamente";
return $errore;
}
//metodo statico che dovrei richiamare nella pagina HTML se i campi sono stati inseriti "male"
public static function GetErroreDenominazione(){
return self::$erroreDenomina;
}
}
Ora vi mostr la pagina dove viene istanziata la classe e vengono effettuati i reindirizzamenti
Codice PHP:
<?php
session_start();
/*CARICAMENTO OGGETTI*/
include ("../../config/connesso.php");
$connetto = new connesso();
include ("../../DTO/objazienda.php");
/*RECUPERO VARIABILI*/
$denominazione = $_POST['denominazione'];
$azienda = new objazienda($denominazione, $indirizzo, $citta, $occupazione, $contratto, $inizioLavoro);
if (!$azienda->controldenominazione()){
//var_dump (objazienda::GetErroreDenominazione());
header ("Location:../../index.php?pag=ins_azi");
}
Nella classe qui sopra ho commentato un var dump che mi fa visualizzare la stringa che torna dal metodo in maniera corretta...
la if appena sopra invoca il metodo di controllo e ritorna true, se non è true reinderizza alla pagina
ora la pagina html
Codice PHP:
<?php
include ("DTO/objazienda.php");
?>
<form action="pagine/model/azienda_model.php" method="post" name="moduloInvio">
<table>
<thead>
<tr>
<th colspan="3">
Inserimento Dati
</th>
</tr>
</thead>
<tbody>
<?php var_dump(objazienda::GetErroreDenominazione()); ?>
<tr>
<td>
Denominazione
</td>
<td>
<input type="text" name="denominazione" value="" />
</td>
Li tra le tag php ho inserito lo stesso var_dump che abbiamo visto precedentemente , ma ritorna sempre vuoto!
Ora ,Spero di non incasinarmi, per evitare di usare mille sessioni che non mi servono a tanto pensavo di utilizzare l'oggetto per incapsulare i miei avvisi e mostrarli all'utente se e quando ce ne fosse stato bisogno.
Quello che non caapisco è il perchè mi fà visualizzare il messaggio nella pagina precedente e non in quella HTML dopo il reindirizzamento.
Qualche consiglio a proposito?
Vi ringrazio ... buona serata