gozforum [ Disinformazione e Controcultura ]

SCRIPT PHP CALCOLO DEI BIORITMI - FREEDOWNLOAD - OPEN SOURCE, BIORTIMZ V-0.1

« Older   Newer »
  Share  
view post Posted on 17/8/2012, 20:21     +1   -1
Avatar

IN DISPERSIONE

Group:
FOUNDER
Posts:
14,802
Reputation:
+36
Location:
trinakaos---CT/SR

Status:


Per chi fosse interessato ad implementare nel proprio sito una funzione che calcoli i bioritmi... Leggere bene

Dopo mesi passati a cercare (invano) uno script che mi permettesse di calcolare l'andamento dei bioritmi, ho deciso di farmelo da me. Ovviamente l'output è molto grezzo,
in quanto il codice che troverete sotto serve
solo ad implementare il calcolo dei bioritmi e a ricavarne il grafico, per la grafica ci pensate voi.
Come ogni cosa che faccio, il codice è usabile e modificabile da chiunque... sarebbe bello solo sapere
se viene usato e se viene apportata qualche miglioria e magari vederlo in azione in qualche altro sito (
giusto per sentirmi orgoglioso).
Di seguito troverete i 3 file necessari al funzionamento e una spiegazione.
Per la sua implementazione si presuppone che sappiate un pò di php.
Sulla pagina pagina facebook potete trovare altre info e contattarmi per qualche segnalazione e/o correzione e/o chiarimento. Per vederlo in azione potete andare qui:

http://gozforum.altervista.org/stelle2/bio_input.php

mentre il raw-output che troverete dopo aver uppato sul vostro server i 3 file è il seguente:

http://gozforum.altervista.org/bioritmz/bio_input.php

Ma prima una breve spiegazione:
QUOTE
Il funzionamento è semplice. Non mi dilungo nel funzionamento del codice, dei bioritmi e di tutte le funzioni per la manipolazione del tempo.
«Bioritmz» si compone di 3 file:

bio_input.php:

E' semplicemente il file dove tramite una form viene inserita la data di nascita.
Sono tre variabili $giorno, $mese, $anno e vengono passate con metodo POST alla pagina calcolo_giorni.php che
avrà il compito di processare la data.

calcolo_giorni.php

E' il core dello script. In pratica in questo file vengono fatti tutti i calcoli. A grossi linee funziona nel seguente modo:
PARTE I: Prende le variabili passate da bio_input.php, esegue un controllo sui caratteri e crea una sessione in modo tale che i valori siano reperibili in ogni pagina.
PARTE II: Applica le funzioni di tempo, in modo tale da rendere la data idonea a ciò che serve a noi.
Dopo aver processato la data, calcolato i giorni ecc ecc, effettua il calcolo del bioritmo tramite un ciclo for. Nel dettaglio le variabili che vengono usate sono:
$n_giorni=semplicemente il numero di giorni tra la data attuale ( $a) e la data di nascita ($data_nascita)
$n=numero di giorni di cui calcolare il bioritmo (nota. questa deve corrispondere alla dimensione del vettore nel file grafico_bio.php)
$fh,$eh,$ih=sono rispettivamente i valori dei bioritmi (fisico,emotivo,intellettivo) ricavti tramite quella formula)
PARTE III: Plot dei risultati e inserimento del grafico tramite un iframe

grafico_bio.php

E' il file che serve alla costruzione del grafico. Per far questo mi sono appoggiato alla libreria grafica phpGraphLib.
Libreria che ogni volta mi conferma i suoi profondi limiti ma alla fine e semplice da usare e quindi la uso =).
Non stò a dilungarmi nel funzionamento, in caso vi dovesse servire, qui potete trovare la traduzione del manuale sul come usarla: https://goz.forumcommunity.net/?t=44781049

e ora i 3 file:

bio_input.php

CODE
<?php
// DOPO MESI TRASCORSI A CERCARE UNO SCRIPT CHE MI PERMETTESSE DI CALCOLARE IL BIORITMO HO DECISO DI FARMELO IO!!!
// QUESTO SCRIPT PUO' ESSERE RIUTILIZZATO E MODIFICATO  IN PIENA LIBERTA'.
// SAREBBE GRADITO CHE OGNI EVENTUALE PERFEZIONAMENTO AL CODICE MI VENGA SEGNALATO IN MODO TALE
// DA POTERNE USUFRUIRE PURE IO XD.
// g'oz[2012]                                                    ascia2004(at)hotmail(dot)com

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
       <title>Bioritmz-v0.1</title>
       <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
       
       <meta name="keywords" content="calcolo dei bioritmi" />
       
       <link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />



</head>
<body>

   
Seleziona la data in cui sei nato e calcola l'andamento dei tuoi bioritmi nei prossimi 30 giorni <br><br>



<form action="calcolo_giorni.php" method="post"><br>

<table cellpadding="20px" align="center" >


<tr>
<td>
Giorno:<br>
<select name="giorno">
<option value="1">1 </option>
 <option value="2">2 </option>
  <option value="3">3 </option>
   <option value="4">4 </option>
    <option value="5">5 </option>
     <option value="6">6 </option>
      <option value="7">7 </option>
       <option value="8">8 </option>
        <option value="9">9 </option>
         <option value="10">10 </option>
          <option value="11">11 </option>
           <option value="12">12 </option>
            <option value="13">13 </option>
             <option value="14">14 </option>
              <option value="15">15 </option>
               <option value="16">16 </option>
                <option value="17">17 </option>
                 <option value="18">18 </option>
                  <option value="19">19 </option>
                   <option value="20">20 </option>
                    <option value="21">21 </option>
                     <option value="22">22 </option>
                      <option value="23">23 </option>
                       <option value="24">24 </option>
                        <option value="25">25 </option>
                         <option value="26">26 </option>
                          <option value="27">27 </option>
                           <option value="28"> 28</option>
                            <option value="29">29 </option>
                             <option value="30"> 30</option>
                              <option value="31">31 </option>
                             
                               

</select>
</td>
<td>
mese:<br>
<select name="mese">
<option value="1">gennaio</option>
<option value="2">febbraio</option>
<option value="3">marzo</option>
<option value="4">aprile</option>
<option value="5">maggio</option>
<option value="6">giugno</option>
<option value="7">luglio</option>
<option value="8">agosto</option>
<option value="9">settembre</option>
<option value="10">ottobre</option>
<option value="11">novembre</option>
<option value="12">dicembre</option>

</select>




</td>
<td>Anno:<br>
<select name="anno">
<option value="1970">1970</option>
<option value="1971">1971</option>
<option value="1972">1972</option>
<option value="1973">1973</option>
<option value="1974">1974</option>
<option value="1975">1975</option>
<option value="1976">1976</option>
<option value="1977">1977</option>
<option value="1978">1978</option>
<option value="1979">1979</option>
<option value="1980">1980</option>
<option value="1981">1981</option>
<option value="1982">1982</option>
<option value="1983">1983</option>
<option value="1984">1984</option>
<option value="1985">1985</option>
<option value="1986">1986</option>
<option value="1987">1987</option>
<option value="1988">1988</option>
<option value="1989">1989</option>
<option value="1990">1990</option>
<option value="1991">1991</option>
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
<option value="1995">1995</option>
<option value="1996">1996</option>
<option value="1997">1997</option>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>

</select>
</td>





</table><br><br></div>
<center><input type ="submit" name="submit" value="Invia"></center>
<br>


<br>


<br><br><br><br>









               
                       
               




</body>
</html>


calcolo_giorni.php

CODE
<?php

//PRIMA PARTE
session_start();
$giorno = $_POST['giorno']  ;
$mese = $_POST['mese']  ;
$anno = $_POST['anno']  ;

$_SESSION['giorno'] = $giorno;
$_SESSION['mese'] = $mese;
$_SESSION['anno'] = $anno;



$_SESSION['n'] = $n;
$_SESSION['c'] = $c;
$_SESSION['fh'] = $fh;
$_SESSION['eh'] = $eh;
$_SESSION['ih'] = $ih;
if (preg_match('/['.preg_quote($chrs,'/').']/',$n))       header('Location: ERRORE.html');  
if (preg_match('/['.preg_quote($chrs,'/').']/',$c))       header('Location: ERRORE.html');
if (preg_match('/['.preg_quote($chrs,'/').']/',$fh))       header('Location: ERRORE.html');  
if (preg_match('/['.preg_quote($chrs,'/').']/',$eh))       header('Location: ERRORE.html');
if (preg_match('/['.preg_quote($chrs,'/').']/',$ih))       header('Location: ERRORE.html');






$a=time();


$data_nascita= mktime(0,0,0,$mese,$giorno,$anno) ;

$n_giorni = floor(($a - $data_nascita) / 86400);
echo (" <br>Data di nascita: $giorno/$mese/$anno ");




for ($n = 0; $n <= 30; ++$n) {

$fh[$n] = round(100*sin(deg2rad(360*(($n_giorni+$n) / 23))));
$eh[$n] = round(100*sin(deg2rad(360*(($n_giorni+$n) / 28))));
$ih[$n] = round(100*sin(deg2rad(360*(($n_giorni+$n) / 33))));


$c[$n]=date(' d M', ((86400*$n)+$a));

}










$b=date('D d M Y', $a);
echo (" <br><br>Oggi $b: <font color='red'>fisico $fh[0]%</font>, <font color='blue'>emotivo $eh[0]%</font>, <font color='green'>intellettivo $ih[0]%</font> ");

$_SESSION['n'] = $n;
$_SESSION['c'] = $c;
$_SESSION['fh'] = $fh;
$_SESSION['eh'] = $eh;
$_SESSION['ih'] = $ih;




?>

<br><iframe class="posizione" src="grafico_bio.php" width="550" height="420"></iframe>



grafico_bio.php

CODE
<?php
session_start();


$n = $_SESSION['n'] ;
$c = $_SESSION['c'] ;
$fh = $_SESSION['fh'] ;
$eh = $_SESSION['eh'] ;
$ih = $_SESSION['ih'] ;
if (preg_match('/['.preg_quote($chrs,'/').']/',$n))       header('Location: ERRORE.html');  
if (preg_match('/['.preg_quote($chrs,'/').']/',$c))       header('Location: ERRORE.html');
if (preg_match('/['.preg_quote($chrs,'/').']/',$fh))       header('Location: ERRORE.html');  
if (preg_match('/['.preg_quote($chrs,'/').']/',$eh))       header('Location: ERRORE.html');
if (preg_match('/['.preg_quote($chrs,'/').']/',$ih))       header('Location: ERRORE.html');






//echo (" $fh[0],$eh[0],$ih[0]. $fh[1],$eh[1],$ih[1]. $fh[2],$eh[2],$ih[2].");


//Grafico a linee

include("phpgraphlib.php");

//Impostiamo la dimensione della griglia del grafico (Larghezza, Altezza)



$graph=new PHPGraphLib(500,400);
$h = count($fh);
/*
for ($n = 0; $n <= $h; ++$n) {

$data1[$n]=array($c[$n]=>$fh[$n]);
$data2[$n]=array($c[$n]=>$fh[$n]);
$data3[$n]=array($c[$n]=>$fh[$n]);
}*/



$data1=array($c[0]=>$fh[0],$c[1]=>$fh[1],$c[2]=>$fh[2],$c[3]=>$fh[3],$c[4]=>$fh[4],
$c[5]=>$fh[5],$c[6]=>$fh[6],$c[7]=>$fh[7] ,$c[8]=>$fh[8],$c[9]=>$fh[9],$c[10]=>$fh[10],$c[11]=>$fh[11],$c[12]=>$fh[12],$c[13]=>$fh[13],
$c[14]=>$fh[14],$c[15]=>$fh[15],$c[16]=>$fh[16],$c[17]=>$fh[17],$c[18]=>$fh[18],
$c[19]=>$fh[19],$c[20]=>$fh[20],$c[21]=>$fh[21],$c[22]=>$fh[22],$c[23]=>$fh[23],
$c[24]=>$fh[24],$c[25]=>$fh[25],$c[26]=>$fh[26],$c[27]=>$fh[27],$c[28]=>$fh[28],
$c[29]=>$fh[29],$c[30]=>$fh[30]);

$data2=array($c[0]=>$eh[0],$c[1]=>$eh[1],$c[2]=>$eh[2],$c[3]=>$eh[3],$c[4]=>$eh[4],
$c[5]=>$eh[5],$c[6]=>$eh[6],$c[7]=>$eh[7] ,$c[8]=>$eh[8],$c[9]=>$eh[9],$c[10]=>$eh[10],
$c[11]=>$eh[11],$c[12]=>$eh[12],
$c[13]=>$eh[13],$c[14]=>$eh[14],$c[15]=>$eh[15],$c[16]=>$eh[16],$c[17]=>$eh[17],
$c[18]=>$eh[18],$c[19]=>$eh[19],$c[20]=>$eh[20],$c[21]=>$eh[21],$c[22]=>$eh[22],
$c[23]=>$eh[23],$c[24]=>$eh[24],$c[25]=>$eh[25],$c[26]=>$eh[26],$c[27]=>$eh[27],
$c[28]=>$eh[28],$c[29]=>$eh[29],$c[30]=>$eh[30]);

$data3=array($c[0]=>$ih[0],$c[1]=>$ih[1],$c[2]=>$ih[2],$c[3]=>$ih[3],$c[4]=>$ih[4],
$c[5]=>$ih[5],$c[6]=>$ih[6],$c[7]=>$ih[7],$c[8]=>$ih[8],$c[9]=>$ih[9],$c[10]=>$ih[10],
$c[11]=>$ih[11],$c[12]=>$ih[12],$c[13]=>$ih[13],$c[14]=>$ih[14],$c[15]=>$ih[15],
$c[16]=>$ih[16],$c[17]=>$ih[17],$c[18]=>$ih[18],$c[19]=>$ih[19],$c[20]=>$ih[20],
$c[21]=>$ih[21],$c[22]=>$ih[22],$c[23]=>$ih[23],$c[24]=>$ih[24],$c[25]=>$ih[25],
$c[26]=>$ih[26],$c[27]=>$ih[27],$c[28]=>$ih[28],$c[29]=>$ih[29],$c[30]=>$ih[30] );


//Aggiungo i valori di cui sopra
$graph->addData($data1, $data2, $data3);



//Indichiamo alla libreria di non mostrare le barre
$graph->setBars(false);

//Di conseguenza segnaliamo che si tratta di un grafico a linee
$graph->setLine(true);







$graph->setXValues(true);
$graph->setYValues(true);

//Visualizza il valore del punto
$graph->setDataValues(false);

//Indichiamo il colore
$graph->setDataValueColor('red');

$graph->setLineColor('red','blue','green');
//$graph->setGoalLine(-6);
 

   $graph->setGoalLineColor("blue");

//Creo il grafico
$graph->createGraph();  

session_destroy()


?>


Edited by g'oz - 3/9/2012, 10:23
 
Top
view post Posted on 28/8/2012, 19:13     +1   -1
Avatar

La Mezza-ancella

Group:
forummiane doc
Posts:
3,689
Reputation:
+10
Location:
weila hello

Status:


Anche se non ho capito il suo funzionamento e su cosa si basa il calcolo per dare quei risulatati nel lungo periodo a me queste cose piacciono da morire!! bravo g'oz!!!


ovviamente già l'ho provato ;)
 
Top
view post Posted on 28/8/2012, 19:32     +1   -1
Avatar

IN DISPERSIONE

Group:
FOUNDER
Posts:
14,802
Reputation:
+36
Location:
trinakaos---CT/SR

Status:


in parole povere...

come alle donne ogni 28 giorni viene il ciclo, nel corpo umano un pò tutto segue dei cicli. Tra i più importanti ci sarebbero quello fisico quello emotivo e quello intellettuale.
da nemesi.net
QUOTE
Tra l'Ottocento e il Novecento Whilelm Fliess e Herman Swoboda avanzarono l'ipotesi che la nostra natura umana seguisse un ritmo sinusoidale fisico ed uno emotivo; negli anni '20, Alfred Tetschler - quasi completando l'antichissima idea della natura fisica, animica e spirituale dell'uomo - propose un terzo bioritmo, quello intellettuale. Questi ritmi, che prenderebbero inizio dalla nostra nascita, ci accompagnerebbero, intrecciandosi, per tutta la vita.

RITMO FISICO: della durata di 23 giorni, correlato al moto del Sole. Regolerebbe la vitalità, l'energia fisica e il coraggio;
RITMO EMOTIVO: della durata di 28 giorni, correlato al moto della Luna. Influenzerebbe lo stato d'animo, l'umore, l'emotività, la creatività e la sensibilità.
RITMO INTELLETTIVO: della durata di 33 giorni, correlato al moto di Mercurio. Determinerebbe le condizioni intellettuali, l'attenzione, le capacità comunicative, di ragionamento, ecc.

Ogni ritmo avrebbe due fasi: una fase positiva ed una fase negativa. Nella prima ci si dovrebbe sentire pieni di energia, di buon umore e particolarmente percettivi; nella seconda, si verificherebbe il contrario. Tra le due fasi o cicli, vi sarebbero dei punti critici, di transiziome. In corrispondenza di questi giorni, si sarebbe estremamente vulnerabili, il proprio equilibrio diventerebbe instabile e, per conseguenza, le cose non andrebbero per il verso giusto.

 
Top
2 replies since 17/8/2012, 20:21   336 views
  Share