Guestbook con file singolo o multipli?

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
Hai qualche idea del perché modificando nel db da questi errori?

Gli ultimi 3 post non danno errore perché i dati sono stati inseriti via form

Guestbook
 
ciao
parli di questi?
Notice: ..../guestbook/funzioni.php on line 37 (o 38 o 29)
nel file funzioni.php quale è la riga, se è una function postala tutta
edit
mi sono accorto che non viene sostituita la faccina paura nella sostituzione hai messo
pxaura.gif per caso non hai sbagliato e volevi mettere paura.gif?
 
Ultima modifica:
ciao
parli di questi?

nel file funzioni.php quale è la riga, se è una function postala tutta

é questo, però se inserisci i dati via form non da errore, danno errore solo quelli modificati a mano, eppoi se noti gli ip stampati sono tutti uguali, io nel post sono 8889.

Ti posto i codici

PHP:
date_default_timezone_set("Europe/Rome");
function crea_data($t) { 
$giorno=array('domenica','lunedì','martedì','mercoledì','giovedì','venerdì','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); 
}

Codice ip

PHP:
//Tutto questo codice recupera l'ip del Visitor e lo mette a video con Country e bandierina
function iptocountry($ip) {
$numbers = explode(".", $ip); 
include("../res/ip_flags/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="unknown";
}
return $two_letter_country_code; 
} 
$ip=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=iptocountry($ip);

include("../res/ip_flags/ip_files/countries.php"); 
$file_to_check="../res/ip_flags/flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)) {
$bandierina ="<img class=\"borderBandiera\" src=\"http://photoman.altervista.org/$file_to_check\" width=\"16\" height=\"12\" alt=\"".$countries[$two_letter_country_code][1]."\" title=\"".$countries[$two_letter_country_code][1]."\" />";
} 
else
{ 
$bandierina ="<img class=\"borderBandiera\" src=\"http://photoman.altervista.org/res/ip_flags/flags/noflag.gif\" width=\"16\" height=\"12\" alt=\"noflag\" title=\"noflag\" />";
}
 
ciao
una cosa alla volta
cioè dici che se metti la data a mano con phpmyadmin ti da quell'errore?
è strano sei sicuro di inseririla giusta? per caso facendo l'inserimento manuale aggiungi qualche spazio o qualche altra porcheria?
 
ciao
una cosa alla volta
cioè dici che se metti la data a mano con phpmyadmin ti da quell'errore?
è strano sei sicuro di inseririla giusta? per caso facendo l'inserimento manuale aggiungi qualche spazio o qualche altra porcheria?

Non mi sembra, questo è uno che ho modificato la data e l'ip

Schermata 01-2456318 alle 16.54.29.png
 
ciao
vedo che hai settato il campo data_locale varchar(50), ricordati che il valore in timestamp è un intero.
settala a int(15).
quando la inserisci via form entra sicuramente un intero, quando in manuale essendo varchar accetta qualsiasi cosa quindi anche delle porcherie che non vedi.
poi per l'ip, da quello che vedo nel db è giusto (ognuno diverso) quindi quando lo visualizzi probabilmente sbagli a prelevarlo
 
ciao
vedo che hai settato il campo data_locale varchar(50), ricordati che il valore in timestamp è un intero.
settala a int(15).
quando la inserisci via form entra sicuramente un intero, quando in manuale essendo varchar accetta qualsiasi cosa quindi anche delle porcherie che non vedi.
poi per l'ip, da quello che vedo nel db è giusto (ognuno diverso) quindi quando lo visualizzi probabilmente sbagli a prelevarlo

Ora va meglio da questo errore in fondo

Notice: Undefined variable: messaggio in /membri2/photoman/guestbook/guest_form.php on line 199


PHP:
$paroleText = array('http://','www.');  
$messaggio = str_ireplace($paroleText, $paroleText, $messaggio); //LINEA 199
 
Ultima modifica:
Come si preleva l'ip?

Ho risolto per l'errore del post precedente, ho spostato il codice
 
ciao
guarda che la sintassi di str_replace o str_ireplace è

stringa_sostituita = str_replace ( cerca_da_sostituire , sostituire_con , stringa_originale)

tu facendo in quella maniera hai fatto

stringa_sostituita = str_replace ( cerca_da_sostituire , cerca_da_sostituire , stringa_originale)

se vuoi sostituire http:// o www. con qualcos'altro devi dirgli con cosa sostituire
es.
PHP:
<?php
$messaggio="http://nel mezzo di camin di nostra vita";
$paroleText = array('http://','www.'); 
$con = "pinco pallo"; 
$messaggio = str_ireplace($paroleText, $con, $messaggio);
echo $messaggio;
?>
 
ciao
guarda che la sintassi di str_replace o str_ireplace è



tu facendo in quella maniera hai fatto



se vuoi sostituire http:// o www. con qualcos'altro devi dirgli con cosa sostituire
es.
PHP:
<?php
$messaggio="http://nel mezzo di camin di nostra vita";
$paroleText = array('http://','www.'); 
$con = "pinco pallo"; 
$messaggio = str_ireplace($paroleText, $con, $messaggio);
echo $messaggio;
?>
Adesso vedo

Ho modificato questa riga, ho messo $riga... ora stampa le bandierine corrette ma l'ip è strano, prova a mandare un messaggio nel guestbook

PHP:
	   echo "<div  class=\"ipb\"><span class=\"voci4\">Ip:</span><span class=\"carattere-4\">".$riga['ip']."</span><span class=\"bandier\">".$riga['bandierina']."</span></div>";
 
ciao
fatto e visto, l'ip è il mio.
poi stai attento alle perole che censuri
io avevo scritto

d'accordo la pruderie ma mi sembra eccessivo
:quote:

Sai cos'è, che una parola proibita è nella tua frase perciò l'ha intercettata

PHP:
<?php
$paroleArray = array (
"mela","mele"
);
 
ciao
d'accordo, ma non dovrebbe funzionare in quel modo, se la parola fosse stata fica senza il veri iniziale è giusto che la intercetti, ma verifica no, altrimenti ti potrebbe intercettare anche verificare, magnificare che sono parole compiute e non certo parolacce
 
ciao
d'accordo, ma non dovrebbe funzionare in quel modo, se la parola fosse stata fica senza il veri iniziale è giusto che la intercetti, ma verifica no, altrimenti ti potrebbe intercettare anche verificare, magnificare che sono parole compiute e non certo parolacce
Si, è quello che vorrei fare, ho questo

PHP:
$paroleArray = array ( 
"mela","mele" 
);

...

$messaggio = str_ireplace($paroleArray,"[Parola]",$messaggio);
 
C' una cosa che non riesco a modificare nel db, la Country, come vedi dalle bandierine estere stampa sempre Italy, come si cambiano?

Codice che stampa bandierina, ip e country

PHP:
//Tutto questo codice recupera l'ip del Visitor e lo mette a video con Country e bandierina
function iptocountry($ip) {
$numbers = explode(".", $ip); 
include("../res/ip_flags/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="unknown";
}
return $two_letter_country_code; 
} 
$ip=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=iptocountry($ip);

include("../res/ip_flags/ip_files/countries.php"); 
$file_to_check="../res/ip_flags/flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)) {
$bandierina ="<img class=\"borderBandiera\" src=\"http://photoman.altervista.org/$file_to_check\" width=\"16\" height=\"12\" alt=\"".$countries[$two_letter_country_code][1]."\" title=\"".$countries[$two_letter_country_code][1]."\" />";
} 
else
{ 
$bandierina ="<img class=\"borderBandiera\" src=\"http://photoman.altervista.org/res/ip_flags/flags/noflag.gif\" width=\"16\" height=\"12\" alt=\"noflag\" title=\"noflag\" />";
}

...

//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>";
	  // Questo mette a video l'ip originale di provenienza...da ins.php + la bandierina
	   echo "<div  class=\"ipb\"><span class=\"voci4\">Ip:</span><span class=\"carattere-4\">".$riga['ip']."</span><span class=\"bandier\">".$riga['bandierina']."</span></div>";
 
La faccenda della Country non riesco proprio a spiegarmela, come si potrebbe fare?
Nel db non la stampa, come fa allora a stamparla video?
 
ciao
non mi sono dimenticato, sto facendo delle ricerche su google, ma per ora ho trovato (ahime) indicazioni del tipo "dall'IP non si può risalire alla nazione di provenienza"
 
ciao
non mi sono dimenticato, sto facendo delle ricerche su google, ma per ora ho trovato (ahime) indicazioni del tipo "dall'IP non si può risalire alla nazione di provenienza"
Ma no, che hai capito, io devo modificare la nazione straniera nel mio guestbook, come vedi è scritto in tutti i post Italy, questo perché li ho reinseriti a mano, ma se vengono inseriti dal vero poi le nazioni si scrivono giuste.
Nel db non c'è e non capisco come fa a metterla a video, perciò non so come modificarle.

GUESTBOOK
 
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
 

Discussioni simili