Guestbook con file singolo o multipli?

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
ciao
ti dicevo quello perche da codice che hai postato sembra che legga l'ip, lo alabori e dall'elaborazione "dovrebbe" estrarre la country
function iptocountry($ip){//elborazione......}
//......
$ip=$_SERVER['REMOTE_ADDR'];
$two_letter_country_code=iptocountry($ip);
//....
//Questo mette a video la Country di provenienza
echo "<div class=\"nazione\"><span class=\"voci3\">Country:</span><span class=\"carattere-3\">".$countries[$two_letter_country_code][1]."</span></div>";

cioè quello che dicevo io
D'accordo, non si potrebbe creare un record nella tabella in modo che la country viene messa anche lì?
In questo modo poi la potrei modificare

Schermata 01-2456324 alle 11.30.13.png
 
ciao
stavo guardando lo script che hai postato al #25, e è li che, secondo me nasce il problema.
in un punto tu hai
PHP:
$ip=$_SERVER['REMOTE_ADDR'];
e in base a quell'ip trovi country e lo stampi a video.
ora quell'ip per forsa ti da sempre italy in quanto con $_SERVER['REMOTE_ADDR'] leggi l'ip di che sta visualizzando il sito.
quell'ip dovrebbe essere quello che hai nel db e ricavato/salvato quando l'utente ti ha inviato il messaggio.
quindi quell'ip devi estrarlo dal db (dove estrai anche tutto il resto del messaggio), non mi ricordo come chiami l'array ma dovrebbe essere qualcosa di simile
PHP:
$ip=$riga['ip'];
(immagino che quello script sia vicino a dove estrai il tutto)
non so se sono stato chiaro
 
ciao
stavo guardando lo script che hai postato al #25, e è li che, secondo me nasce il problema.
in un punto tu hai
PHP:
$ip=$_SERVER['REMOTE_ADDR'];
e in base a quell'ip trovi country e lo stampi a video.
ora quell'ip per forsa ti da sempre italy in quanto con $_SERVER['REMOTE_ADDR'] leggi l'ip di che sta visualizzando il sito.
quell'ip dovrebbe essere quello che hai nel db e ricavato/salvato quando l'utente ti ha inviato il messaggio.
quindi quell'ip devi estrarlo dal db (dove estrai anche tutto il resto del messaggio), non mi ricordo come chiami l'array ma dovrebbe essere qualcosa di simile
PHP:
$ip=$riga['ip'];
(immagino che quello script sia vicino a dove estrai il tutto)
non so se sono stato chiaro

Ora ho modificato il codice, ho una cartella con dentro ip, bandierine e nazione associata, in base all'ip stampa la sua bandierina e country

è qui: http://www.phptutorial.info/iptocountry/the_script.html

Manualmente non so come modificare la Country
 
ciao
così come stai facendo non puoi modificare il country di un utente in quanto deriva da un file che (mi sembra) ti hanno dato e che ricavato in funzione dell'ip

per poter modificarlo a tuo piacimento devi averlo nella tabella del tuo db (dovresti aggiungere un campo alla tabella successi e all'archivio)
poi quando l'utente scrive un successo (e quindi leggi il suo ip) usi la funzione che stai usando per ricavare il country e lo salvi nel campo della tabella assime all'ip.
quando poi visualizzi NON usi la funzione ma il valore che hai in tabella, quindi puoi modificarlo a piacere.
penso che sia l'unico modo
 
ciao
così come stai facendo non puoi modificare il country di un utente in quanto deriva da un file che (mi sembra) ti hanno dato e che ricavato in funzione dell'ip

per poter modificarlo a tuo piacimento devi averlo nella tabella del tuo db (dovresti aggiungere un campo alla tabella successi e all'archivio)
poi quando l'utente scrive un successo (e quindi leggi il suo ip) usi la funzione che stai usando per ricavare il country e lo salvi nel campo della tabella assime all'ip.
quando poi visualizzi NON usi la funzione ma il valore che hai in tabella, quindi puoi modificarlo a piacere.
penso che sia l'unico modo

Qui è il guestbook, non c'entrano le tabelle successi e archivio, ho aggiunto country

Dimmi che fare...




Schermata 01-2456324 alle 19.57.39.png
 
Ho quasi risolto come vedi, però se modifico la country nel db a video rimano uguale

Schermata 01-2456324 alle 22.26.33.png

Ho messo country VARCHAR (50)

PHP:
$q="INSERT INTO guest_form(data_locale,nome,suoemail,citta,url,country,ip,bandierina,messaggio)
       VALUES('$data_locale','$nome','$suoemail','$citta','$url','".$countries[$two_letter_country_code][1]."','$ip','$bandierina','$messaggio')";
 
Ultima modifica:
Forse è questo che ci manca $riga, ma come va messo qui?

PHP:
 echo "<div class=\"nazione\"><span class=\"voci3\">Country:</span><span class=\"carattere-3\">".$countries[$two_letter_country_code][1]."</span></div>";
 
ciao
se non ricordo male
PHP:
echo "<div class=\"nazione\"><span class=\"voci3\">Country:</span><span class=\"carattere-3\">".$riga['country']."</span></div>";

p.s.
fai lo stesso lavoro anche in "successi", penso ti convenga
 
ciao
se non ricordo male
PHP:
echo "<div class=\"nazione\"><span class=\"voci3\">Country:</span><span class=\"carattere-3\">".$riga['country']."</span></div>";

p.s.
fai lo stesso lavoro anche in "successi", penso ti convenga

Lo farò dopo, ma non so come mettere $riga qui ".$countries[$two_letter_country_code][1]."

RISOLTO: è ".$riga['country']."
 
Ultima modifica:
Lo farò dopo, ma non so come mettere $riga qui ".$countries[$two_letter_country_code][1]."

RISOLTO: è ".$riga['country']."

A questo punto sto cercando di inserire il GMT, nella tabella ho già creato il record gmt VALCHAR (50)
, ma nel VALUES che ci metto?

PHP:
date_default_timezone_set("Europe/Rome");
function crea_data($t) { 
$giorno=array('domenica','luned&igrave;','marted&igrave;','mercoled&igrave;','gioved&igrave;','venerd&igrave;','sabato'); 
$mese=array('','gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre'); 
$gg=date('w',$t); 
$mm=date('n',$t); 
return $giorno[$gg]." ".date('d',$t)." ".$mese[$mm]." ".date("Y - H:i:s \G\M\T P (T)", $t); 
}
 
E qui lascio così

PHP:
echo "<div class=\"tabella-longTime\">".crea_data($riga['data_locale'])."</div>";
 
ciao scusa
mi ero dimenticato come salvavi
quindi l'insert
PHP:
$ora=time();
$quer="INSERT INTO tabella(.......,gmt) VALEUES(.....,$ora);
e quindi va bene
PHP:
echo "<div class=\"tabella-longTime\">".crea_data($riga['data_locale'])."</div>";
 
ciao scusa
mi ero dimenticato come salvavi
quindi l'insert
PHP:
$ora=time();
$quer="INSERT INTO tabella(.......,gmt) VALEUES(.....,$ora);
e quindi va bene
PHP:
echo "<div class=\"tabella-longTime\">".crea_data($riga['data_locale'])."</div>";

Ho messo come dici tu, ma nel db non stampa il gmt

Schermata 02-2456326 alle 16.26.48.png
 
ciao
infatti salva il timestamp che poi verrà trasformato dalla funzione.
se non ricordo male anche in successi hai messo il timestamp per facilitare anche l'ordinamento per data.
scusa mi accorgo ora:
ma a che cavolo ti serve il campo gmt? hai gia data_locale da trasformare in gmt tramite la funzione
 
Ultima modifica:
ciao
infatti salva il timestamp che poi verrà trasformato dalla funzione.
se non ricordo male anche in successi hai messo il timestamp per facilitare anche l'ordinamento per data.
scusa mi accorgo ora:
ma a che cavolo ti serve il campo gmt? hai gia data_locale da trasformare in gmt tramite la funzione
Mi serve per il solito discorso che se inserisco i dati manualmente li posso modificare
 
ciao
ma vai a correggere gmt e non data_locale quindi? uno dei due non ti serve.
se li tieni entrambi devi corregerli entrambi
poi per modificare i dati fatti uno script, non vorrai tutte le volte accedere al phpmyadmin dell host e poi andare a correggere?
 
ciao
ma vai a correggere gmt e non data_locale quindi? uno dei due non ti serve.
se li tieni entrambi devi corregerli entrambi
poi per modificare i dati fatti uno script, non vorrai tutte le volte accedere al phpmyadmin dell host e poi andare a correggere?
Avendo un backup del db poi recupero i dati, ma essendo la prima volta ho bisogno di farlo manualmente.

Ho fatto delle modifiche, nel db stampa il gmt locale, ma se lo modifico a video rimane sempre +1...

PHP:
date_default_timezone_set("Europe/Rome");
function crea_data($t) { 
$giorno=array('domenica','luned&igrave;','marted&igrave;','mercoled&igrave;','gioved&igrave;','venerd&igrave;','sabato'); 
$mese=array('','gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre'); 
$gg=date('w',$t); 
$mm=date('n',$t); 
return $giorno[$gg]." ".date('d',$t)." ".$mese[$mm]." ".date("Y - H:i:s", $t); 
} 
$ora=date('\G\M\T P (T)'); 

...

$q="INSERT INTO guest_form(data_locale,gmt,nome,suoemail,citta,url,country,ip,bandierina,messaggio)
       VALUES('$data_locale','$ora','$nome','$suoemail','$citta','$url','".$countries[$two_letter_country_code][1]."','$ip','$bandierina','$messaggio')"; 

...

echo "<div class=\"tabella-longTime\">".crea_data($riga['data_locale'])." ".$ora."</div>";
 

Discussioni simili