Repository 32bit  Forum
Repository 64bit  Wiki

PHP-calendario.........brutta bestia[RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

PHP-calendario.........brutta bestia[RISOLTO]

Messaggioda dottor3 » mar mar 10, 2009 18:28

Ciao mondo!!!
Eccomi con altri ed entusiasmanti problemi!!!! \:D/

Dunque....ho creato un calendario con calendar(PEAR).......lui funziona tranquillo ma la mia classe un pochino meno....
Devo far in modo di mantenere una variabile interna alla classe in modo da poterla usare con gli incrementatori/decrementatori di mesi.......
il codice e' su pastebin

CLASSE : http://rafb.net/p/m1v4Fp23.htm

UTILIZZATORE : http://rafb.net/p/3Cgi7H26.html

Datemi una mano tnx!!

PS: gia' vedo spina che i insulta per qualche mia castroneria phpiana :lol:
Ultima modifica di dottor3 il gio mar 12, 2009 21:49, modificato 1 volta in totale.
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: PHP-calendario.........brutta bestia

Messaggioda targzeta » mer mar 11, 2009 8:56

Ciao dottor3, purtroppo ora sono preso da altri impegni :). Ho notato però che il link al codice della classe ritorna un '404 - NOT FOUND'. In realtà poi non ho neanche capito se ci sono dei problemi.

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6189
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: PHP-calendario.........brutta bestia

Messaggioda dottor3 » mer mar 11, 2009 12:23

MANCA la L di html......... =D> http://rafb.net/p/m1v4Fp23.html <------Ora funzia

A parer mio nella classe nn ci sono errori........pero' mi chiedo perche' una volta inizializzata la classe nn mantenga i dati interni......ovvero una volta cambiati da un metodo e salvati come attributo privato il metodo chiamato in un altro mometo nn trova l'attributo cambiato ma originale.......
.....chiarissimo no? :drunken:
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: PHP-calendario.........brutta bestia

Messaggioda targzeta » mer mar 11, 2009 12:27

Posta un esempio (anche scritto a mano qui, senza eseguire realmente) di sequenza di invocazioni, di come si modificano le variabili e di come si sarebbero dovute modificare.

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6189
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: PHP-calendario.........brutta bestia

Messaggioda dottor3 » mer mar 11, 2009 12:40

allora:
__construct: inizzializza la classe e accetta 2 argomenti ($anno, $mese) e li setta come attributi privati
$this->_anno = $anno;
$this->_mese = $mese;
Crea_calendario crea il calendario usando gli attributi privati come argomenti interni.

mese_avanti prende gli attributi aggiunge 1 al mese, se mese>12 aggiunge 1 all'anno e rimette $this->_mese a 1.
Chiama il metodo Crea_calendario.

mese_indietro uguale a sopra ma al contrario
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: PHP-calendario.........brutta bestia

Messaggioda targzeta » mer mar 11, 2009 13:15

E l'errore dov'è? Due invocazioni consecutive di mese_avanti creano due calendari con lo stesso mese?

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6189
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: PHP-calendario.........brutta bestia

Messaggioda dottor3 » mer mar 11, 2009 13:47

Praticamente quando vado ad uare questa classse in una pagina web il calendario nn avanza per piu' di un mese........
La pagina utilizzatrice la scrivo cosi' (stringo il codice):

Codice: Seleziona tutto
<?php
$oggetto_calendario = new calendario(date('Y'), date('n'));
?>
<body>
<form method='post' action='$PHP_SELF'>
<?php
if(isset($_POST['avanti)){
            $oggeto_calendario->mese_avanti();
}
if{isset($_POST['indietro'])){
           $oggetto_calendario->mese_indietro();
}
if($_POST="" && $_POST['hid'] == '')
{
echo "<input type='hidden' name='hid' value='true'>";
$oggetto_calendario->crea_calendario();

?>
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: PHP-calendario.........brutta bestia

Messaggioda targzeta » mer mar 11, 2009 16:35

A parte che invocare il costruttore all'interno della classe è concettualmente sbagliato, io non posso eseguire il codice che posti perchè mi mancano un bel pò di cose, tra file che includi e presumo un database. Prova a fare sostituire la funzione mese_avanti con:
Codice: Seleziona tutto
public function mese_avanti()
   {
      echo $this->_mese."-".$this->_anno."<br>";
      $this->_mese = $this->_mese +1;
/*      if($this->_mese > 12)
      {
         $this->_anno = $this->_anno +1;
         $this->_mese = 1;
         echo $this->_mese."-".$this->_anno."<br>";
         $this->__construct($this->_anno,$this->_mese);
         $this->crea_cal_scad($this->_anno, $this->_mese);
      }else{
         echo $this->_mese."-".$this->_anno."<br>";
         $this->crea_cal_scad($this->_anno, $this->_mese);
      }*/
   }
e posta il risultato di tre invocazioni consecutive.

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6189
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: PHP-calendario.........brutta bestia

Messaggioda dottor3 » mer mar 11, 2009 18:10

Il metodo mese_avanti funziona bene.....e nn chiama il costruttore all'interno, prima crea_calendario era un metodo public.....mi sono dimenticato di togliere quella riga :-'

comunque il risultao e' il seguente:
2-2009
3-2009
4-2009
5-2009

Ma il problema nn e' questo.....in poche parole e io inizializzo un oggetto all'inizio di una pagina e utilizzo i suoi metodi public per modificare i vari output........come mai appena premo mese_avanti avanza di 1 e si ferma nonostante riprovi ad avanzare?
Non dovrebbe variare l'attributo PRIVATO della classe ad ogni chiamata dei metodi?..........]b]dubbio[/b]........ :-$
......submittando una pagina si crea anche un parziale refresh del codice...right?? e quindi lui reinizializza l'oggetto a quella data...e io rimango sempre li........correggimi se sbaglio.....
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: PHP-calendario.........brutta bestia

Messaggioda targzeta » mer mar 11, 2009 18:13

Infatti, dovresti passarti la variabile tra una chiamata e l'altra. Tutte le variabili che crei vengono eliminate dopo che il server ha gestito la richiesta. Se vuoi mantenere uno stato, devi:
  • creare una sessione
  • mandarti le variabili tramite GET o POST

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6189
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: PHP-calendario.........brutta bestia

Messaggioda raffaele181188 » mer mar 11, 2009 18:29

dottor3 ha scritto:submittando una pagina si crea anche un parziale refresh del codice...right??

E che vuol dire?! PHP è un motore di scripting. Non esiste nessuna "applicazione" o programma nel senso comune del termine che gira sul server fino a quando qualcuno non richiede un documento php. Quando un client richiede il documento il webserver (opportunamente settato) si accorge che è uno script php, lo manda in pasto a zend e il risultato di quello che fa quest'ultimo viene rispedito al client. Quindi non c'è nessun refresh del codice (che poi che diavolo vorrebbe dire :D )
Ogni invocazione di un documento PHP provoca la riesecuzione dello script stesso, e non è possibile far sopravvivere lo script stesso per più del tempo necessario alla sua esecuzione. Una volta che arriva al termine del listato lo script muore, quindi tutte le variabili eccetera non esistono più. Non c'è modo di tenere "vivo" un "programma php" sul server in attesa che il client richieda qualcosa alla stessa pagina. L'unica cosa che puoi fare è salvarti da qualche parte (Emanuele suggeriva sessioni (lato server) e get/post (lato client), in casi particolari puoi pure salvare in un file sul server) i dati (=variabili) che descrivono compiutamente l'oggetto che vuoi ricostruire. Ma si tratta di un oggetto nuovo, un clone di quello di prima e non lo stesso
Avatar utente
raffaele181188
Packager
Packager
 
Messaggi: 789
Iscritto il: ven set 07, 2007 20:40
Località: DearSkin (FG)
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu

Re: PHP-calendario.........brutta bestia

Messaggioda dottor3 » mer mar 11, 2009 18:40

Avevo pensato anche io alle sessioni........visto che l'applicazione finale di questo progetto sara' molto piu' ampia avevo pensato di utilizzare una tabella nel DB dell'applicazione ed usarla per mantenere i dati di sessione svuotandola al logout.........che ne pensate??
In questo modo i dati sono influenzati solo quando lo decido io.....avrei piu' controllo...... 8-[
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: PHP-calendario.........brutta bestia

Messaggioda raffaele181188 » mer mar 11, 2009 18:54

Credo che dovresti essere un po' più preciso in merito a quello che vuoi fare, ma io comunque non ti seguo tanto...
Le sessioni servono a mantenere i dati tra più richieste della stessa pagina. Sono un "trucco" per dare l'effetto di una applicazione che continua a girare
Le variabili di sessione sono automaticamente salvate da PHP e non so perchè vorresti salvarle pure nel database... per richiamarle basta $_SESSION['nome'] e stai apposto, senza tutta la tiritera di scomodare il database
Avatar utente
raffaele181188
Packager
Packager
 
Messaggi: 789
Iscritto il: ven set 07, 2007 20:40
Località: DearSkin (FG)
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu

Re: PHP-calendario.........brutta bestia

Messaggioda nuitari » gio mar 12, 2009 15:54

Esistono motivi per cui è utile savlare sessioni nel database, anche se non si tratta certo del caso specifico.
Ad esempio, in presenza di un cluster, avere le sessioni nel database permette la distribuzione dell'applicazione con i relativi dati di sessione.
Chiaramente l'utilizzo di un Database come backend per le sessioni comporta problemi ulteriori, come la serializzazione degli accessi.

Non mi sembra però il caso specifico, ti consiglio anch'io di usare le normali funzioni session di php per la gestione su file :)
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 11:51
Località: San Colombano al Lambro
Slackware: 12.0

Re: PHP-calendario.........brutta bestia

Messaggioda dottor3 » gio mar 12, 2009 18:22

Anche io stamattina ho seguito la presentazione MYSQL per l'utilizzo del DB per quanto riguarda le sessioni....
Infatti il mio pregetto finale deve funzionare per moltissime sessioni continue.........il calendario nn e' alro che una particina....

comunque.....o mi sono rimbambito tutto di un botto o c'e' qualche cosa che nn va.....
Se io registro le var di sessione e poi le modifico nei vari form queste dovrebbero avere il valore dell'ultimo form pasato right?
Allora perche' incrementano solo di 1 e basta???
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Prossimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite