Guestbook con file singolo o multipli?

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
ciao
in date non hai messo gli attributi, così come hai fatto ti stampa solo GMT +1 (CET), correggi in (eventualmernte spostando m d Y e mettendo il separatore che preferisci)
correggi in
PHP:
$ora=date('m d Y H:i:s \G\M\T P (T)');
 
ciao
in date non hai messo gli attributi, così come hai fatto ti stampa solo GMT +1 (CET), correggi in (eventualmernte spostando m d Y e mettendo il separatore che preferisci)
correggi in
PHP:
$ora=date('m d Y H:i:s \G\M\T P (T)');

Così può anche andare, ma se modifico il gmt nel db non lo cambia a video

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]; 
} 
$ora=date('Y - H:i:s \G\M\T P (T)');

Schermata 02-2456326 alle 19.51.37.png
 
Ultima modifica:
ciao
PHP:
echo "<div class=\"tabella-longTime\">".crea_data($riga['data_locale'])." ".$riga['gmt']."</div>";
Ora si, come vedi dal post precedente nel campo gtm stampa l'ultima parte 2013...ecc.

A questo punto sto tentando di fargli stampare tutta la data in modo che nel db nella campo data_locale mi risulta quella numerica e in gmt quella formattata.
Essendo 2 codici non riesco a farli coincidere, sarebbero questi

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]; 
} 
$ora=date('Y - H:i:s \G\M\T P (T)');
 
ciao
per farle conincidere, dove metti l'insert del messaggio
PHP:
<?php
//...
$data_locale=time();
$gmt=date('Y - H:i:s \G\M\T P (T)', $data_locale);
$q="INSERT .........VALEUS('$data_locale','$gmt',....";
//...
?>
 
ciao
per farle conincidere, dove metti l'insert del messaggio
PHP:
<?php
//...
$data_locale=time();
$gmt=date('Y - H:i:s \G\M\T P (T)', $data_locale);
$q="INSERT .........VALEUS('$data_locale','$gmt',....";
//...
?>
Ho trovato un altro modo, solo che non riesco a metterci i giorni e mesi in italiano, poi sarebbe a posto:

PHP:
date_default_timezone_set("Europe/Rome");
function crea_data() { 
return date(); 
}

A questo ci dovrei mettere i 2 array perché altrimenti stampa in inglese

PHP:
$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'); 

$dataGmt=date('l d F Y - H:i:s \G\M\T P');
 
ciao
intanto una cosa, ricorda che gli indici degli array, così come scritti, iniziano da 0 quindi per i nomi dei mesi devi occupare il posto 0, oppure devi toglere 1 al numero del mese, poi chiama, se vuoi conservare l'altra funzione, la funzione in modo diverso, anche perche se dovessi usarle entrambe se con lo stesso nome ti da errore
PHP:
<?php
function scrivi_data($t){//$t = data in timestamp => time()
	$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_set=date("w",$t);//w = 0 => sunday , w => saturday
	$mese=date("n",$t);//n da 1 a 12
	return $giorno[$gg_set]." ".date("d",$t)." ".$mese[$mese]." ".date("Y",$t)." GMT ".date("P",$t)." (".date("T",$t).")";
 
}
?>
ti restituisce la data es. lunedì 04 febbraio 2013 GMT +01:00 (CET)

dimenticavo
se vuoi anche l'ora ec.. modifica la parte
date("Y",$t)
in
date("Y H:i:s",$t)
 
Ultima modifica:
ciao
intanto una cosa, ricorda che gli indici degli array, così come scritti, iniziano da 0 quindi per i nomi dei mesi devi occupare il posto 0, oppure devi toglere 1 al numero del mese, poi chiama, se vuoi conservare l'altra funzione, la funzione in modo diverso, anche perche se dovessi usarle entrambe se con lo stesso nome ti da errore
PHP:
<?php
function scrivi_data($t){//$t = data in timestamp => time()
	$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_set=date("w",$t);//w = 0 => sunday , w => saturday
	$mese=date("n",$t);//n da 1 a 12
	return $giorno[$gg_set]." ".date("d",$t)." ".$mese[$mese]." ".date("Y",$t)." GMT ".date("P",$t)." (".date("T",$t).")";
 
}
?>
ti restituisce la data es. lunedì 04 febbraio 2013 GMT +01:00 (CET)

dimenticavo
se vuoi anche l'ora ec.. modifica la parte
date("Y",$t)
in
date("Y H:i:s",$t)

Ora stampa giusto a video, ma questo come lo metto per inserire la data completa nel db?

PHP:
$dataGmt=date('l d F Y - H:i:s \G\M\T P');
 
Se metto così e tolgo echo, stampa giusto nel db, però anche se la modifico nel db, a video rimane uguale

PHP:
$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');
$dataGmt=$giorno[date('w')].' '.date('d').' '.$mese[date('m')-1].' '.date('Y - H:i:s \G\M\T P');
 
Sembra tutto risolto, finalmente

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_set=date("w",$t);
    $mm=date("n",$t);
    return $giorno[$gg_set]." ".date("d",$t)." ".$mese[$mm]." ".date("Y - H:i:s",$t)." GMT ".date("P",$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');
$dataGmt=$giorno[date('w')].' '.date('d').' '.$mese[date('m')-1].' '.date('Y - H:i:s \G\M\T P');

...

echo "<div class=\"tabella-longTime\">".$riga['dataGmt']."</div>";
 
A questa riga mi da questo avviso

PHP:
return $giorno[$gg_set]." ".date("d",$t)." ".$mese[$mm]." ".date("Y - H:i:s",$t)." GMT ".date("P",$t)."";



Warning: Illegal offset type in /membri/gruppoalveo/funzioni.php on line 45
 
ciao
ho dato lo stesso nome a due variabili
PHP:
<?php
function scrivi_data($t){//$t = data in timestamp => time()
    $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_set=date("w",$t);//w = 0 => sunday , w => saturday
    $me=date("n",$t);//n da 1 a 12 CORREGGI QUESTA e l'indice di $mese[$mese] con $mese[$me]
    return $giorno[$gg_set]." ".date("d",$t)." ".$mese[$me]." ".date("Y",$t)." GMT ".date("P",$t)." (".date("T",$t).")";
}
//test***
$ora=time();
echo scrivi_data($ora);
?>
 
Ora sto sistemando il Successi, ho seguito lo stesso principio del guestbook, ma qui non stampa nel db e nemmeno a video

Riassumiamo:

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_set=date("w",$t);
    $mm=date("n",$t);
    return $giorno[$gg_set]." ".date("d",$t)." ".$mese[$mm]." ".date("Y H:i:s",$t)." GMT ".date("P",$t)." (".date("T",$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');
$dataGmtS=$giorno[date('w')].' '.date('d').' '.$mese[date('m')-1].' '.date('Y - H:i:s \G\M\T P');

...

$q="INSERT INTO successi(data_localeS,dataGmtS,oggettoS,messaggioS,nomeS,cittaS,suoemailS,ip,bandierina,country)
  VALUES('$data_localeS','$dataGmtS','$oggettoS','$messaggioS','$nomeS','$cittaS','$suoemailS','$ip','$bandierina','".$countries[$two_letter_country_code][1]."')"; 

...

echo "<div class=\"dataBox\">".$riga['dataGmtS']."<div class.....>
 
ciao
ho la vaga impressione che tu stia facendo un po' di confusione.
es scrivi la definizione della funcrion e poi non la usi
PHP:
<?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_set=date("w",$t);
    $mm=date("n",$t);
    return $giorno[$gg_set]." ".date("d",$t)." ".$mese[$mm]." ".date("Y H:i:s",$t)." GMT ".date("P",$t)." (".date("T",$t).")"; 
 }
 $adesso=time();
$dataGmtS=crea_data($adesso);
//e poi come e dove valorizzi $data_localeS ??
//ecc....
?>
 
ciao
ho la vaga impressione che tu stia facendo un po' di confusione.
es scrivi la definizione della funcrion e poi non la usi
PHP:
<?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_set=date("w",$t);
    $mm=date("n",$t);
    return $giorno[$gg_set]." ".date("d",$t)." ".$mese[$mm]." ".date("Y H:i:s",$t)." GMT ".date("P",$t)." (".date("T",$t).")"; 
 }
 $adesso=time();
$dataGmtS=crea_data($adesso);
//e poi come e dove valorizzi $data_localeS ??
//ecc....
?>

Qui

PHP:
$data_localeS = time(); 
$nomeS = htmlspecialchars(ucfirst(strtolower(trim($_POST['nomeS']))));
$cittaS = htmlspecialchars(ucwords(strtolower(trim($_POST['cittaS'])))); 
$suoemailS = htmlspecialchars(strtolower($_POST['suoemailS'])); 
$suoemailS = str_replace(" ","",$suoemailS); // Toglie gli spazi interni nella mail
$oggettoS = htmlspecialchars(ucfirst(trim($_POST['oggettoS'])));
$messaggioS = htmlspecialchars(ucfirst(trim($_POST['messaggioS']))); 
$validatorS = htmlspecialchars(trim($_POST['validatorS']));
//dichiaro le variabili e le rendo vuote, altrimenti danno errore
$dataGmtS ='';
$rand_code ='';
$erroreS = '';

Nel guestbook funziona.

Il punto è che devo stampare a video la data che poi posso modificare
 
Ho trovato l'errore, ho tolto $dataGmtS =''; e ora stampa giusto.

L'avevo messo perché mi sembrava che mi desse errore di variabile non definita, sono errori che appaiono ogni tanto non so perché.


PHP:
$data_localeS = time();  
$nomeS = htmlspecialchars(ucfirst(strtolower(trim($_POST['nomeS'])))); 
$cittaS = htmlspecialchars(ucwords(strtolower(trim($_POST['cittaS']))));  
$suoemailS = htmlspecialchars(strtolower($_POST['suoemailS']));  
$suoemailS = str_replace(" ","",$suoemailS); // Toglie gli spazi interni nella mail 
$oggettoS = htmlspecialchars(ucfirst(trim($_POST['oggettoS']))); 
$messaggioS = htmlspecialchars(ucfirst(trim($_POST['messaggioS'])));  
$validatorS = htmlspecialchars(trim($_POST['validatorS'])); 
//dichiaro le variabili e le rendo vuote, altrimenti danno errore 
$dataGmtS =''; 
$rand_code =''; 
$erroreS = '';
 
Quando viene inserita un sito proibito stampa anche http:// che non riesco a togliere.

Tieni presente che le 2 str_replace devo tenerle così

PHP:
//vanno scritti senza il prefisso
$sitiArray = array (
"/\bsito.it\b/i"
);
$replacements1 = "<span class=\"badWord\">[Sito no good]</span>";

...

      $riga['url'] = str_replace( array('http://', 'www.'), "http://", strtolower($riga['url']));  
      $riga['url'] = str_replace( array('http://http://'), "http://", strtolower($riga['url'])); 
      $riga['url1']="".$riga['url']."";
      //Se la stringa è 19 caratteri o più (con lo spazio interno), viene accorciata a 16 e mette i 3 puntini, TOT a video 19
      if (strlen($riga['url']) >= 19) {  
      $riga['url']=substr($riga['url'],0,16)."..."; 
      }elseif($riga['url'] == "") { 
       $riga['url']= "<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">-</span>";
      }
      $riga['url'] = preg_replace($sitiArray, $replacements1, $riga['url']);
      echo "Sito:<a class=\"carattere-2\" href=\"".$riga['url1']."\" target=\"_blank\">".$riga['url']."</a>";

...
 
Ultima modifica:
ciao
fammi capire da quello che vedo fai una lista di siti non consentiti
$sitiArray = array ("/\bsito.it\b/i");
e se per esempio uno scrive (metto gli spazi)
http : // www. bisito.it (che è un sito non consentito) non riesci a toglere l'http:// giusto? o ho capito male?

p.s.
devo andare a spalare la neve :(
 

Discussioni simili