- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- incremento anomalo di una variabile in un file .txt
-
incremento anomalo di una variabile in un file .txt
Ho un problema con un incremento di una variabile copntenuta in in file .txt
Per ridurre tutto ai minimi termini e spiegare bene, ho un pulsante che richiama una funxione e mi fa stampare una variabile incrementata di 1
[PHP]
$var = intval(file_get_contents('prova.txt'));
file_put_contents('prova.txt',++$var);
echo $var;
[/PHP]tutto questo però, mi stampa il valore incrementato di uno e un secondo dopo si ricarica nuovamente la pagina con il valore incrementato nuovamente.
Lo stesso succede anche se al posto di incrementare diminuisco il valore della variabille.
Come posso risolvere il problema?
-
Ciao ali7p,
ma per come hai detto tu il problema non è lo script, ma il fatto che la pagina venga fatta ricaricare e quindi venga chiamata 2 volte in successione.
-
@Thedarkita said:
Ciao ali7p,
ma per come hai detto tu il problema non è lo script, ma il fatto che la pagina venga fatta ricaricare e quindi venga chiamata 2 volte in successione.uhm... ti illustro il mio caso specifico:
- ho simulato dei frame con dei semplici div e css
- ho una funzione javascript invocata in un bottone che mi permette di caricare una pagina in un determinato div
- la pagina da caricare nel div (ridotta all'osso) è costruita dal codice che ho postato sopra
perchè si deve ricaricare due volte????
questo è lo script (che ho copiato di sana pianta)
<script type="text/javascript"> var loadedobjects="" var rootdomain="http:/ /"+window.location.hostname function ajaxpage(url, containerid){ var page_request = false if (window.XMLHttpRequest) // if Mozilla, Safari etc page_request = new XMLHttpRequest() else if (window.ActiveXObject){ // if IE try { page_request = new ActiveXObject("Msxml2.XMLHTTP") } catch (e){ try{ page_request = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } } else return false page_request.onreadystatechange=function(){ loadpage(page_request, containerid) } page_request.open('GET', url, true) page_request.send(null) } function loadpage(page_request, containerid){ if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) document.getElementById(containerid).innerHTML=page_request.responseText } function loadobjs(){ if (!document.getElementById) return for (i=0; i<arguments.length; i++){ var file=arguments* var fileref="" if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding if (file.indexOf(".js")!=-1){ //If object is a js file fileref=document.createElement('script') fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src", file); } else if (file.indexOf(".css")!=-1){ //If object is a css file fileref=document.createElement("link") fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", file); } } if (fileref!=""){ document.getElementsByTagName("head").item(0).appendChild(fileref) loadedobjects+=file+" " //Remember this object as being already added to page } } } </script> ```questa la chiamata: [html] <form action="" method="get"> <a class="acal" href="javascript:ajaxpage('calpiu.php','leftcolumn');"><input type="button" value=">" /></a></form> [/html]
-
Ho provato ad usare il database al posto del file .txt, ma il problema è lo stesso
Qualcuno mi può aiutare, please?
-
Ho spostato la discussione in area scripting lato client in quanto è chiaro che non è un problema dello script php, bensì di come questo viene richiamato.
-
Non so più dove sbattere la testa.
Posto tutto il codice che ho ridotto ai minimi termini sperando di scovare l'errore, sperando che qualcuno mi possa aiutare:
Ho un pulsante così costruito:
[php]
<form style="border:0px" action="" method="get">
<a class="acal" href="javascript:ajaxpage('pagina.php','leftcolumn');"><input type="button" value="<" /></a>
</form> [/php]che ha caricare pagina.php nel div con id leftcolumn.
Questa è pagina.php
[php]
include("../functions.php");GLOBAL $DB; $rs=$DB->Execute("SELECT * FROM users WHERE id=".$_SESSION[fw_userid]); $usr=$rs->FetchRow(); $prox=$usr[calendario]; echo prova($prox+1); $DB->Execute("UPDATE users SET calendario=$prox+1 WHERE id=$_SESSION[fw_userid]"); la funzione prova che si trova in ../functions.php (file che contine solo funzioni) è: Codice PHP: function prova ($prox=0) { return $prox; }[/php]Tutto questo carica 2 volte la pagina
A questo punto, come detto da Thedarkita, il problema è nello script... ma javascript per me è arabo
Qualcuno mi indirizza verso una soluzione, please?Riposto il codic (lo spazio in http:/ / è solo perchè no nmi lascia inserire link, nel mio codice non c'è)
<script type="text/javascript"> var loadedobjects="" var rootdomain="http:/ /"+window.location.hostname function ajaxpage(url, containerid){ var page_request = false if (window.XMLHttpRequest) // if Mozilla, Safari etc page_request = new XMLHttpRequest() else if (window.ActiveXObject){ // if IE try { page_request = new ActiveXObject("Msxml2.XMLHTTP") } catch (e){ try{ page_request = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } } else return false page_request.onreadystatechange=function(){ loadpage(page_request, containerid) } page_request.open('GET', url, true) page_request.send(null) } function loadpage(page_request, containerid){ if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) document.getElementById(containerid).innerHTML=page_request.responseText } function loadobjs(){ if (!document.getElementById) return for (i=0; i<arguments.length; i++){ var file=arguments* var fileref="" if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding if (file.indexOf(".js")!=-1){ //If object is a js file fileref=document.createElement('script') fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src", file); } else if (file.indexOf(".css")!=-1){ //If object is a css file fileref=document.createElement("link") fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", file); } } if (fileref!=""){ document.getElementsByTagName("head").item(0).appendChild(fileref) loadedobjects+=file+" " //Remember this object as being already added to page } } } </script>
-
Ciao ali7p,
occorre capire perché viene richiamata due volte.
Prova ad inserire degli alert usandoli come debug.
Per esempio alla prima riga della funzione ajaxpage:function ajaxpage(url, containerid){ alert("TEST"); ...