IP e bandierina

In questo sito http://www.phptutorial.info/iptocountry/the_script.html#example3 ho trovato un codice interessante che fa apparire l'ip del visitatore con la bandira della nazione (ultimo codice in fondo), ho anche scaricato le 2 cartelle database ma mi esce errore undefined function: iptocountry() , sembra tutto a posto >:(

inviato 8 anni fa
php
php
6
X 0 X

Ciao,

l'errore indica che devi definire la funzione iptocountry() prima di richiamarla nella pagina.

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

l'errore indica che devi definire la funzione iptocountry() prima di richiamarla nella pagina.

 :bye:

Zeta

Il codice è quello che c'è nel link che ho citato, mi sembra già definita la funzione:

$IPaddress=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=iptocountry($IPaddress);
  
include("ip_files/countries.php");
$three_letter_country_code=$countries[ $two_letter_country_code][0];
$country_name=$countries[$two_letter_country_code][1];

print "Two letters code: $two_letter_country_code<br>";
print "Three letters code: $three_letter_country_code<br>";
print "Country name: $country_name<br>";

// To display flag
$file_to_check="flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)){
                print "<img src=$file_to_check width=20 height=15><br>";
                }else{
                print "<img src=flags/noflag.gif width=20 height=15><br>";
                }

function iptocountry($ip) {
    $numbers = preg_split( "/\./", $ip);
    include("ip_files/".$numbers[0].".php");
    $code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]);
    foreach($ranges as $key => $value){
        if($key<=$code){
            if($ranges[$key][0]>=$code){$two_letter_country_code=$ranges[$key][1];break;}
            }
    }
    if ($two_letter_country_code==""){$two_letter_country_code="unkown";}
    return $two_letter_country_code;
}
risposto 8 anni fa
php
php
6
X 0 X

scusatemi se intervengo ma ovviamente ti da l'errore perche a funzione reativa

$two_letter_country_code=iptocountry($IPaddress);

ma prima di chiamare la funzione iptocountry($IPaddress); devi prima crearla o meglio dire dichiarare la funzione prima della sua chiatama ... quindi in sostanza prima dela riga sopra dovresti mettere questo ......

function iptocountry($ip) {
    $numbers = preg_split( "/\./", $ip);
    include("ip_files/".$numbers[0].".php");
    $code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]);
    foreach($ranges as $key => $value){
        if($key<=$code){
            if($ranges[$key][0]>=$code){$two_letter_country_code=$ranges[$key][1];break;}
            }
    }
    if ($two_letter_country_code==""){$two_letter_country_code="unkown";}
    return $two_letter_country_code;
}

ciao ...

risposto 8 anni fa
costaplus
X 0 X

Ho individuato il punto che non va non riesco a risolverlo  :wallbash:

$file_to_check="flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)){ 
$tabella .= "&nbsp;&nbsp;<img src=\"$file_to_check\" width=\"16\" height=\"12\"><br>";
}
else
{ 
$tabella .= "&nbsp;&nbsp;<img src=\"flags/noflag.gif\" width=\"16\" height=\"12\"></td>"; 
} 
...

Questo codice  $file_to_check="flags/$two_letter_country_code.gif"; dovrebbe pescare le bandierine dalla cartella flags ma non lo fa, pesca solo quella col punto di domanda come puoi vedere qui http://photoman.altervista.org/guestbook/form.php

risposto 8 anni fa
php
php
6
X 0 X

Ciao,

ti basta verficare il percorso del file con l'immagine della bandierina facendo un

echo $file_to_check

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

ti basta verficare il percorso del file con l'immagine della bandierina facendo un

echo $file_to_check

 :bye:

Zeta

E' già questo $tabella .= "&nbsp;&nbsp;<img src=\"$file_to_check\" width=\"16\" height=\"12\">";

...avevo dimenticato di postare questa parte di codice:

include("ip_files/countries.php"); 

function iptocountry($ip) { 
$numbers = preg_split( "/./", $ip); 
include("ip_files/".$numbers[0].".php"); 
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]); 
foreach($ranges as $key => $value){ 
if($key<=$code){ 
if($ranges[$key][0]>=$code){
$two_letter_country_code=$ranges[$key][1];break;
                  } 
        } 
    } 
if ($two_letter_country_code==""){
$two_letter_country_code="unkown";
      } 
return $two_letter_country_code; 
}
risposto 8 anni fa
php
php
6
X 0 X

Ciao,

ho verificato che un percorso di immagine è "flags/IT.gif".

Sembra che il controllo file_exists fallisca la verifica...

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

ho verificato che un percorso di immagine è "flags/IT.gif".

Sembra che il controllo file_exists fallisca la verifica...

 :bye:

Zeta

Si, se metto così $file_to_check="flags/IT.gif"; mette a video la bandiera italiana ma non la pesca in automatico abbinata all'ip

risposto 8 anni fa
php
php
6
X 0 X

Ciao,

significa che il percorso che ti recupera le prime lettere dall'IP non restituisce nel caso italiano "IT" ma qualcosa di diverso per questo ti avevo consigliato di utilizzare un echo della variabile  O0

Purtroppo non sono riuscito a provare la funzione in locale.

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

significa che il percorso che ti recupera le prime lettere dall'IP non restituisce nel caso italiano "IT" ma qualcosa di diverso per questo ti avevo consigliato di utilizzare un echo della variabile  O0

Purtroppo non sono riuscito a provare la funzione in locale.

 :bye:

Zeta

Avevo dimenticato un'altro pezzo, questo è completo:

include("ip_files/countries.php");

$ip=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=iptocountry($ip);
function iptocountry($ip) { 
$numbers = preg_split( "/./", $ip); 
include("ip_files/".$numbers[0].".php"); 
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]); 
foreach($ranges as $key => $value){ 
if($key<=$code){ 
if($ranges[$key][0]>=$code){
$two_letter_country_code=$ranges[$key][1];break;
                  } 
        } 
    } 
if ($two_letter_country_code==""){
$two_letter_country_code="unkown";
      } 
return $two_letter_country_code; 
} 
// Mette a video le bandierine 
$file_to_check="flags/$two_letter_country_code.gif";
//$file_to_check="flags/IT.gif";
if (file_exists($file_to_check)){ 
$tabella .= "&nbsp;&nbsp;<img src=\"$file_to_check\" width=\"16\" height=\"12\">";
}
else
{ 
$tabella .= "&nbsp;&nbsp;<img src=\"flags/noflag.gif\" width=\"16\" height=\"12\"></td>"; 
}

che puoi trovare qui http://www.phptutorial.info/iptocountry/the_script.html#example3

risposto 8 anni fa
php
php
6
X 0 X

Ciao,

io ho sostituito il comando:

$numbers = preg_split( "/./", $ip);

con:

$numbers = explode(".", $ip);

e tutto ha funzionato a meraviglia...

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

io ho sostituito il comando:

$numbers = preg_split( "/./", $ip);

con:

$numbers = explode(".", $ip);

e tutto ha funzionato a meraviglia...

 :bye:

Zeta

A me sce sempre quel punto di domanda  :wallbash:

Però io per farlo "funzionare" l'ho diviso a metà, una parte sopra la pag ed una sotto, è forse per questo?

risposto 8 anni fa
php
php
6
X 0 X

Questo è il codice che ho scritto:

function iptocountry($ip) { 
$numbers = explode(".", $ip); 

include("ip_files/".$numbers[0].".php"); 
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]); 

foreach($ranges as $key => $value){ 
if($key<=$code){ 
if($ranges[$key][0]>=$code){
   $two_letter_country_code=$ranges[$key][1];break;
   }
} 
} 
if ($two_letter_country_code==""){
$two_letter_country_code="unkown";
} 
return $two_letter_country_code; 
} 

$IPaddress=$_SERVER['REMOTE_ADDR']; 
echo $two_letter_country_code=iptocountry($IPaddress);

e mi restituisce "IT".

Non so come tu abbia diviso il codice... probabile che un problema sia pure quello, ma senza vedere mi risulta difficile aiutarti.

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Questo è il codice che ho scritto:

function iptocountry($ip) { 
$numbers = explode(".", $ip); 

include("ip_files/".$numbers[0].".php"); 
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]); 

foreach($ranges as $key => $value){ 
if($key<=$code){ 
if($ranges[$key][0]>=$code){
   $two_letter_country_code=$ranges[$key][1];break;
   }
} 
} 
if ($two_letter_country_code==""){
$two_letter_country_code="unkown";
} 
return $two_letter_country_code; 
} 

$IPaddress=$_SERVER['REMOTE_ADDR']; 
echo $two_letter_country_code=iptocountry($IPaddress);

e mi restituisce "IT".

Non so come tu abbia diviso il codice... probabile che un problema sia pure quello, ma senza vedere mi risulta difficile aiutarti.

 :bye:

Zeta

Ho inserito

$ip=$_SERVER['REMOTE_ADDR'];

echo $two_letter_country_code=iptocountry($ip);

e appare la bandiera italiana ma non le 2 lettere

risposto 8 anni fa
php
php
6
X 0 X

Sono a buon punto come vedi http://www.photoman.altervista.org/guestbook/form.php

ma appare IT a sinistra (nella parte blu della pag.), non riesco a metterlo vicino alla bandierina, se lo sposto mi da errore, ti mando tutta la pag la prima parte del codice è sopra, l'altra quasi in fondo:

<?php
//Mette a video la bandierina e le iniziali...segue
function iptocountry($ip) { 
$numbers = explode(".", $ip); 

include("ip_files/".$numbers[0].".php"); 
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]); 

foreach($ranges as $key => $value){ 
if($key<=$code){ 
if($ranges[$key][0]>=$code){
   $two_letter_country_code=$ranges[$key][1];break;
   }
} 
} 
if ($two_letter_country_code==""){
$two_letter_country_code="unkown";
} 
return $two_letter_country_code; 
} 

//validatore capcha 
if (!empty($_POST['validator']) && $_POST['validator'] == $_SESSION['rand_code']) { 
unset($_SESSION['rand_code']); 
}
// Nome del file dove verranno salvati i messaggi
$file = "message.html"; 

// Numero di messaggi visualizzati per pagina
$risultati_per_pagina = 1000; 

if (!(file_exists($file))){ 
fopen($file,"w");   
}
$arr_mess=file($file);
$count=count($arr_mess);
$pagine_totali= ceil($count/$risultati_per_pagina);

$pagina=$_GET['pagina'];

// Estrazione dati e paginazione
$rows_file=file($file);
$count=count($rows_file);
$numero_messaggi=$count;

$inizio=0;
$pagine_totali= ceil($count/$risultati_per_pagina); 
     
if (isset($pagina) AND $pagina > 0){
if ($pagina > $pagine_totali){
$pagina = $pagine_totali; 
} 
else{
$inizio=$pagina*$risultati_per_pagina - $risultati_per_pagina; 
 }
}
else{
$pagina = 1;
$inizio = 0; 
}
$mess_pag=array_slice   ($rows_file,$inizio,$risultati_per_pagina); 
$mess_pag=array_reverse($mess_pag);
$cont1=count($mess_pag);
$cont2=0;
$mess_pag=array_slice   ($rows_file,$inizio,$risultati_per_pagina); 
$mess_pag=array_reverse($mess_pag);
$cont1=count($mess_pag);
$cont2=0;
$tabella = "<table summary=\"\" width=\"400\" align=\"center\"><tr><td align=\"center\"><br /><font class=\"carattere\">IN TOTALE CI SONO</font><font family=\"arial\" color=\"red\"  size=\"2\"><b>&nbsp;$numero_messaggi&nbsp;</b></font><font class=\"carattere\">MESSAGGI</font></td></tr></table><br />";
echo $tabella; 

// Stampa dati su schermo
while ($cont2<$cont1) {
$mess=$mess_pag[$cont2];
$info=explode("|",$mess);
$nome=$info[0];
$email=$info[1];
$citta=$info[2];
$url=$info[3];
$messaggio=$info[4];
$data=$info[5];
$orario=$info[6];
$ip=$info[7];

//Dopo un tot di caratteri mette i 3 puntini
$email1 = $email; 
if (strlen($email1) >= 15){   //Se la stringa è 15 caratteri o più(senza puntini), viene accorciata a 12...
$email=substr($email1,0,12)."...";
}
$url1 = $url;
if (strlen($url1) >= 19){
$url=substr($url1,0,16)."...";
}

//Le faccine vanno messe qui in view.php
$messaggio = str_replace("Cxonfuso","<img src=\"http://photoman.altervista.org/faccine/cxonfuso.gif\" alt=\"Confuso\" title=\"Confuso\" />",$messaggio);
$messaggio = str_replace("Ixmpossibile","<img src=\"http://photoman.altervista.org/faccine/ixmpossibile.gif\" alt=\"Impossibile\" title=\"Impossibile\" />",$messaggio);
$messaggio = str_replace("Txestardo","<img src=\"http://photoman.altervista.org/faccine/txestardo.gif\" alt=\"Testardo\" title=\"Testardo\" />",$messaggio);
$messaggio = str_replace("Pxiange","<img src=\"http://photoman.altervista.org/faccine/pxiange.gif\" alt=\"Piange\" title=\"Piange\" />",$messaggio);
$messaggio = str_replace("Bxacio","<img src=\"http://photoman.altervista.org/faccine/bxacio.gif\" alt=\"Bacio\" title=\"Bacio\" />",$messaggio);
$messaggio = str_replace("Fxelice","<img src=\"http://photoman.altervista.org/faccine/fxelice.gif\" alt=\"Felice\" title=\"Felice\" />",$messaggio);
$messaggio = str_replace("Rxide","<img src=\"http://photoman.altervista.org/faccine/rxide.gif\" alt=\"Ride\" title=\"Ride\" />",$messaggio);
$messaggio = str_replace("Oxcchiolino","<img src=\"http://photoman.altervista.org/faccine/oxcchiolino.gif\" alt=\"Occhiolino\" title=\"Occhiolino\" />",$messaggio);
$messaggio = str_replace("Cxiao","<img src=\"http://photoman.altervista.org/faccine/cxiao.gif\" alt=\"Ciao\" title=\"Ciao\" />",$messaggio);
$messaggio = str_replace("Pxaura","<img src=\"http://photoman.altervista.org/faccine/pxaura.gif\" alt=\"Paura\" title=\"Paura\" />",$messaggio);

//Creazione della tabella contenente tutti i dati del messaggio
$tabella = "<table summary=\"\" width=\"700\" align=\"center\">"; {                                                                              
$tabella .= "<tr><td valign=\"top\" class=\"tabella-small\"><font class=\"carattere\"><b>".$nome."</b></font>";
$tabella .= "<br /><font class=\"voci\">Scritto:</font>&nbsp;<font class=\"carattere\">".$data."";
$tabella .= "<br /><font class=\"voci\">Ore:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$orario."";
$tabella .= "<br /><font class=\"voci\">Citt&agrave;:</font>&nbsp;&nbsp;&nbsp;".$citta."";
$tabella .= "<br /><font class=\"voci\">Email:</font>&nbsp;&nbsp;<a href=\"mailto:$email1\">$email</a>";
$tabella .= "<br /><font class=\"voci\">Sito:</font>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"$url1\">$url</a>";
$tabella .= "<br /><font class=\"voci\">Ip:</font>&nbsp;&nbsp;".$ip.

// Mette a video le bandierine e iniziali
$ip=$_SERVER['REMOTE_ADDR']; 
echo $two_letter_country_code=iptocountry($ip);

$file_to_check="flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)){ 
$tabella .= "&nbsp;&nbsp;<img src=\"$file_to_check\" width=\"16\" height=\"12\" alt=\"\" title=\"\">";
}
else
{ 
$tabella .= "&nbsp;&nbsp;<img src=\"flags/noflag.gif\" width=\"16\" height=\"12\">";
} 

"</font></td>";

$tabella .= "<td valign=\"top\" class=\"tabella-long\"><font class=\"carattere\">".$messaggio."</font></td></tr></table>";
$tabella .= "<br />";
}
echo $tabella;
$cont2++;
}
?>
risposto 8 anni fa
php
php
6
X 0 X

Ciao,

ti basta correggere il codice in questo modo:

// Mette a video le bandierine e iniziali
$ip=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=iptocountry($ip);

$file_to_check="flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)){ 
$tabella .= "&nbsp;&nbsp;".$two_letter_country_code."/<img src=\"$file_to_check\" width=\"16\" height=\"12\" alt=\"\" title=\"\">";
}
else
{ 
$tabella .= "&nbsp;&nbsp;<img src=\"flags/noflag.gif\" width=\"16\" height=\"12\">";
}

ho semplicemente spostato l'echo (che serviva  come verifica del valore restituito) prima dell'immagine della bandierina separato da uno "/".

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

ti basta correggere il codice in questo modo:

// Mette a video le bandierine e iniziali
$ip=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=iptocountry($ip);

$file_to_check="flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)){ 
$tabella .= "&nbsp;&nbsp;".$two_letter_country_code."/<img src=\"$file_to_check\" width=\"16\" height=\"12\" alt=\"\" title=\"\">";
}
else
{ 
$tabella .= "&nbsp;&nbsp;<img src=\"flags/noflag.gif\" width=\"16\" height=\"12\">";
}

ho semplicemente spostato l'echo (che serviva  come verifica del valore restituito) prima dell'immagine della bandierina separato da uno "/".

 :bye:

Zeta

Ho fatto altre modiiche e come puoi vedere accanto a Country appare IT, però c'è anche la possibilità di far apparire tutto il nome della nazione cosa che non riesco a fare  :lamo:

risposto 8 anni fa
php
php
6
X 0 X

Ciao,

puoi ricavare il nome della nazione dal file "countries.php" che crea un array $countries con tutte le nazioni.

Poi ti basterà scrivere:

$countries[$two_letter_country_code][1]

e apparirà il nome della tua nazione.

Buona giornata :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Qualcosa non va, 2 cose: non appare più la bandierina e il nome eppoi ho notato che gli ip sono sempre uguali anche sono altri a scrivere

<?php

include("ip_files/countries.php");

//Mette a video la bandierina e le iniziali...segue
function iptocountry($ip) { 
$numbers = explode(".", $ip); 

include("ip_files/".$numbers[0].".php"); 
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]); 

foreach($ranges as $key => $value){ 
if($key<=$code){ 
if($ranges[$key][0]>=$code){
$countries[$two_letter_country_code][1];;break;

}
 } 
  } 
if ($two_letter_country_code==""){
$two_letter_country_code="unkown";
} 
return $two_letter_country_code; 
} 

//validatore capcha 
if (!empty($_POST['validator']) && $_POST['validator'] == $_SESSION['rand_code']) { 
unset($_SESSION['rand_code']); 
}
// Nome del file dove verranno salvati i messaggi
$file = "message.html"; 

// Numero di messaggi visualizzati per pagina
$risultati_per_pagina = 1000; 

if (!(file_exists($file))){ 
fopen($file,"w");   
}
$arr_mess=file($file);
$count=count($arr_mess);
$pagine_totali= ceil($count/$risultati_per_pagina);

$pagina=$_GET['pagina'];

// Estrazione dati e paginazione
$rows_file=file($file);
$count=count($rows_file);
$numero_messaggi=$count;

$inizio=0;
$pagine_totali= ceil($count/$risultati_per_pagina); 
     
if (isset($pagina) AND $pagina > 0){
if ($pagina > $pagine_totali){
$pagina = $pagine_totali; 
} 
else{
$inizio=$pagina*$risultati_per_pagina - $risultati_per_pagina; 
 }
}
else{
$pagina = 1;
$inizio = 0; 
}
$mess_pag=array_slice   ($rows_file,$inizio,$risultati_per_pagina); 
$mess_pag=array_reverse($mess_pag);
$cont1=count($mess_pag);
$cont2=0;
$mess_pag=array_slice   ($rows_file,$inizio,$risultati_per_pagina); 
$mess_pag=array_reverse($mess_pag);
$cont1=count($mess_pag);
$cont2=0;
$tabella = "<table summary=\"\" width=\"400\" align=\"center\"><tr><td align=\"center\"><font class=\"carattere\">IN TOTALE CI SONO</font><font family=\"arial\" color=\"red\"  size=\"2\"><b>&nbsp;$numero_messaggi&nbsp;</b></font><font class=\"carattere\">MESSAGGI</font></td></tr></table><br />";
echo $tabella; 

// Stampa dati su schermo
while ($cont2<$cont1) {
$mess=$mess_pag[$cont2];
$info=explode("|",$mess);
$nome=$info[0];
$email=$info[1];
$citta=$info[2];
$url=$info[3];
$messaggio=$info[4];
$data=$info[5];
$orario=$info[6];
$ip=$info[7];

//Dopo un tot di caratteri mette i 3 puntini
$email1 = $email; 
if (strlen($email1) >= 15){   //Se la stringa è 15 caratteri o più(senza puntini), viene accorciata a 12...
$email=substr($email1,0,12)."...";
}
$url1 = $url;
if (strlen($url1) >= 19){
$url=substr($url1,0,16)."...";
}

//Le faccine vanno messe qui in view.php
$messaggio = str_replace("Cxonfuso","<img src=\"http://photoman.altervista.org/faccine/cxonfuso.gif\" alt=\"Confuso\" title=\"Confuso\" />",$messaggio);
$messaggio = str_replace("Ixmpossibile","<img src=\"http://photoman.altervista.org/faccine/ixmpossibile.gif\" alt=\"Impossibile\" title=\"Impossibile\" />",$messaggio);
$messaggio = str_replace("Txestardo","<img src=\"http://photoman.altervista.org/faccine/txestardo.gif\" alt=\"Testardo\" title=\"Testardo\" />",$messaggio);
$messaggio = str_replace("Pxiange","<img src=\"http://photoman.altervista.org/faccine/pxiange.gif\" alt=\"Piange\" title=\"Piange\" />",$messaggio);
$messaggio = str_replace("Bxacio","<img src=\"http://photoman.altervista.org/faccine/bxacio.gif\" alt=\"Bacio\" title=\"Bacio\" />",$messaggio);
$messaggio = str_replace("Fxelice","<img src=\"http://photoman.altervista.org/faccine/fxelice.gif\" alt=\"Felice\" title=\"Felice\" />",$messaggio);
$messaggio = str_replace("Rxide","<img src=\"http://photoman.altervista.org/faccine/rxide.gif\" alt=\"Ride\" title=\"Ride\" />",$messaggio);
$messaggio = str_replace("Oxcchiolino","<img src=\"http://photoman.altervista.org/faccine/oxcchiolino.gif\" alt=\"Occhiolino\" title=\"Occhiolino\" />",$messaggio);
$messaggio = str_replace("Cxiao","<img src=\"http://photoman.altervista.org/faccine/cxiao.gif\" alt=\"Ciao\" title=\"Ciao\" />",$messaggio);
$messaggio = str_replace("Pxaura","<img src=\"http://photoman.altervista.org/faccine/pxaura.gif\" alt=\"Paura\" title=\"Paura\" />",$messaggio);


//Creazione della tabella contenente tutti i dati del messaggio
$tabella = "<table summary=\"\" width=\"700\" align=\"center\">"; {                                                                              
$tabella .= "<tr><td valign=\"top\" class=\"tabella-small\"><font class=\"carattere\"><b>".$nome."</b></font>";
$tabella .= "<br /><font class=\"voci\">Scritto:</font>&nbsp;<font class=\"carattere\">".$data."";
$tabella .= "<br /><font class=\"voci\">Ore:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$orario."";
$tabella .= "<br /><font class=\"voci\">Citt&agrave;:</font>&nbsp;&nbsp;&nbsp;".$citta."";
$tabella .= "<br /><font class=\"voci\">Email:</font>&nbsp;&nbsp;<a href=\"mailto:$email1\">$email</a>";
$tabella .= "<br /><font class=\"voci\">Sito:</font>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"$url1\">$url</a>";

// Mette a video le bandierine e iniziali
$ip=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=iptocountry($ip);

$tabella .= "<br /><font class=\"voci\">Country:</font>&nbsp;&nbsp;".$two_letter_country_code."";
$tabella .= "<br /><font class=\"voci\">Ip:</font>&nbsp;&nbsp;".$ip."";
$file_to_check="flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)){ 
$tabella .= "&nbsp;&nbsp;&nbsp;&nbsp;<img src=\"$file_to_check\" width=\"16\" height=\"12\" alt=\"\" title=\"\">";
}
else
{ 
$tabella .= "&nbsp;&nbsp;&nbsp;&nbsp;<img src=\"flags/noflag.gif\" width=\"16\" height=\"12\">";
}
"</font></td>";

$tabella .= "<td valign=\"top\" class=\"tabella-long\"><font class=\"carattere\">".$messaggio."</font></td></tr></table>";
$tabella .= "<br />";
}
echo $tabella;
$cont2++;
}
?>
risposto 8 anni fa
php
php
6
modificato 8 anni fa
X 0 X

Ciao,

certo che l'indirizzo IP è sempre lo stesso poiché utilizzi sempre la variabile $ip=$_SERVER['REMOTE_ADDR']; che recupera il tuo indirizzo IP. Dovresti memorizzarlo quando un utente inserisce una richiesta e poi richiamarlo quando stampi il messaggio.

Per le bandierine non ho controllato... ma già il fatto che scriva Country: Array mi puzza...

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

certo che l'indirizzo IP è sempre lo stesso poiché utilizzi sempre la variabile $ip=$_SERVER['REMOTE_ADDR']; che recupera il tuo indirizzo IP. Dovresti memorizzarlo quando un utente inserisce una richiesta e poi richiamarlo quando stampi il messaggio.

Per le bandierine non ho controllato... ma già il fatto che scriva Country: Array mi puzza...

 :bye:

Zeta

Riguardo all'ip del visitatore ho risolto, ora si tratta di collegare l'ip con la nazione che si trovano appunto qui

include("ip_files/countries.php");
risposto 8 anni fa
php
php
6
X 0 X

E' semplice....

per ogni Indirizzo IP ricavato applichi la funzione iptocountry e poi con il valore ottenuto stampi il rispettivo valore nell'array $countries come da me indicato in uno degli ultimi post. In questo modo ottieni sempre il nome della nazione e la bandierina corretta.

Buon lavoro

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

E' semplice....

per ogni Indirizzo IP ricavato applichi la funzione iptocountry e poi con il valore ottenuto stampi il rispettivo valore nell'array $countries come da me indicato in uno degli ultimi post. In questo modo ottieni sempre il nome della nazione e la bandierina corretta.

Buon lavoro

 :bye:

Zeta

Fatto, sembra funzionare  O0 , come potrei ora fare una prova con un'altra nazione? Cioè simulare un messaggio speditomi dal'estero.

risposto 8 anni fa
php
php
6
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda