Salve a tutti, vorrei mostrare un codice piuttosto semplice del quale non riesco più a capire come correggerlo per ottenere ciò che voglio.
Nella pagina web che sto creando ho tre numeri. Spingendo un apposito bottone, questi 3 numeri salgono di valore o scendono di valore.
Sto usando una struttura ad oggetti (o almeno così credo).
QUESTA E' LA PAGINA INDEX.PHP
Codice PHP:
<?php
include ("tris.php");
if(!isset($_GET['ordine'])){
$tris = new Tris( 1 , 2 , 3 );
}
else {
$operazione = $_GET['ordine'];
if($operazione == "inc"){
$tris->set_U($tris->get_U() +1); // LINEA 18
$tris->set_D($tris->get_D() +1);
$tris->set_T($tris->get_T() +1);
}
if($operazione == "dec"){
$tris->set_U($tris->get_U() -1);
$tris->set_D($tris->get_D() -1);
$tris->set_T($tris->get_T() -1);
}
}
$UNO = $tris->get_U();
$DUE = $tris->get_D();
$TRE = $tris->get_T();
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title> Tris </title>
</head>
<body>
<h1>'.$UNO.'</h1> <h1>'.$DUE.'</h1> <h1>'.$TRE.'</h1>
[url="index.php?ordine=inc "] INCREMENTA [/url]
[url="index.php?ordine=dec "] DECREMENTA [/url]
</body>
</html>
';
?>
QUESTA E' LA PAGINA TRIS.PHP
Codice PHP:
<?php
class Tris {
private $uno;
private $due;
private $tre;
function Tris($u, $d, $t) {
$this->uno = $u;
$this->due = $d;
$this->tre = $t;
}
function get_U() {
return $this->uno;
}
function get_D() {
return $this->due;
}
function get_T() {
return $this->tre;
}
function set_U($u) {
$this->uno = $u;
}
function set_D($d) {
$this->due = $d;
}
function set_T($t) {
$this->tre = $t;
}
}
?>
A me sembra che sia tutto corretto, la sintassi e soprattutto la logica che sta alla base del sistema... non conosco ora tutti i "segreti" del php, nel bene e nel male, però non credo di aver sbagliato qualcosa di particolare.
Necessita che uso sessioni? O cosa?
Quando vado a far partire la pagina index.php, la visualizzazione dei tre numeri e dei pulsanti è corretta... ma quando vado a cliccare sul pulsante (e quindi inviare tramite url l'indice), la pagina mi mostra il seguente errore:
Notice: Undefined variable: tris in C:\Program Files\EasyPHP-5.3.8.0\www\incrementatore\index.php on line 18
Fatal error: Call to a member function set_U() on a non-object in C:\Program Files\EasyPHP-5.3.8.0\www\incrementatore\index.php on line 18
Grazie veramente a tutti, anche solo per l'attenzione