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:
Ora vi mostr la pagina dove viene istanziata la classe e vengono effettuati i reindirizzamentiCodice 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;
}
}
Nella classe qui sopra ho commentato un var dump che mi fa visualizzare la stringa che torna dal metodo in maniera corretta...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");
}
la if appena sopra invoca il metodo di controllo e ritorna true, se non è true reinderizza alla pagina
ora la pagina html
Li tra le tag php ho inserito lo stesso var_dump che abbiamo visto precedentemente , ma ritorna sempre vuoto!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>
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

Rispondi quotando