Guestbook con file singolo o multipli?

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
Qui non riesco a risolvere vedi #17, tra l'altro ho notato che se inserisco un url nel campo poi lo stampa, ma se lo clicc o apre il mio sito, se invece inserisco un url nel campo messaggio apre il sito giusto
 
ciao
ho guardato #17 (la parte url)
PHP:
<?php
//......
$url1 = $url;
if (strlen($url1) >= 19) {  
    $url=substr($url,0,14)."..."; 
}elseif($url == ''){ 
    $url ="<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">-</span>"; 
}
//....
?>
non capisco cosa intendi per stampa? dove deve stampartelo? e cosa vuoi che ti stampi?
 
ciao
ho guardato #17 (la parte url)
PHP:
<?php
//......
$url1 = $url;
if (strlen($url1) >= 19) {  
    $url=substr($url,0,14)."..."; 
}elseif($url == ''){ 
    $url ="<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">-</span>"; 
}
//....
?>
non capisco cosa intendi per stampa? dove deve stampartelo? e cosa vuoi che ti stampi?

Per stampa intendo che lo scrive nel box messaggi e questo è corretto, questo codice che mi hai dato è come quello che ho io, se ci clicco sopra apre la mia pagina, non apre il sito corretto, e non mette nemmeno i 3 puntini, non lo accorcia
 
Ho messo online il Guestbook ma da un errore, pare sia il codice data

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); //LINEA 39
}
 
ciao
non mi sembra la funzione crea_data
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=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); //LINEA 39
}
$ora=time();
var_dump(crea_data($ora));
?>
questo è l'output
string(56) "giovedì 24 gennaio 2013 17:01:10 GMT +01:00 (CET)"
che è giusto
 
ciao
sto notando quello che penso sia un grosso difetto.
dopo il submit appare il box di messaggio inviato, ma dopo qualche secondo la pagina si chiude e sparisce tutto, è voluto?
 
ciao
sto notando quello che penso sia un grosso difetto.
dopo il submit appare il box di messaggio inviato, ma dopo qualche secondo la pagina si chiude e sparisce tutto, è voluto?
Si, la faccio chiudere, ma c'è qualcosa che non va: non stampa i dati dl db, le barrette se il campo è vuoto, l'url non si lika correttamente, per me c'è un bug da qualche parte

PHP:
$_SESSION=array();
echo "Messaggio inviato!"; 
echo "<script type=\"text/javascript\">window.onload=function(){setTimeout(\"window.close()\",2000)}</script>";
 
ciao
modifica la riga che mostra l'url (guardando con visualizza sorgente è sbagliata)
HTML:
Sito:</span><a class="carattere-2" href="" target="_blank">http://www.borgo-italia.it</a>
sarebbe giusto che venisse scritta così
HTML:
Sito:</span><a class="carattere-2" href="http://www.borgo-italia.it" target="_blank">borgo-italia.it</a>

la parte che ti modifica l'url la modificherei in questa maniera
PHP:
<?php
//......
if(!filter_var($url,FILTER_VALIDATE_URL)){
	//se non è un url valido comunque lo elimino
	$url ="<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">-</span>";
}else{
	//tolgo http
	$txt=str_replace("http://","",$url);
	//tolgo il www
	$txt=str_replace("www.","",$url);
	//se più lungo l'accorcio
	if(strlen($txt) >= 19) {
		$txt=substr($txt,0,14)."...";
	}
	$url="<a class=\"carattere-2\" href=\"$url\" target=\"_blank\">$txt</a>";
}
//....
?>
nel form devi avvisare o
- di mettere anche l'http://
- di scrivere solo www.sito.xxx in questo caso devi aggiungere in automatico l'http://
altrimenti l'utente si confonde (sulla scritta che appare sotto potresti aggiungere le indicazioni)

p.s.
mi è arrivata email di ringraziamento
 
Io ho questo

PHP:
echo "<div  class=\"site\"><span class=\"voci2\">Sito:</span><a class=\"carattere-2\" href=\"$url1\" target=\"_blank\">".$riga['url']."</a></div>";

poi ho questi, sono gli stessi che avevo prima di mettere il db

PHP:
// Converte in minuscolo http:// e www. (la parte array è Case-insensitive perché c'è str_ireplace)
// $paroleText va messo solo 2 volte senza apici
$paroleText = array('http://','www.');  
$messaggio = str_ireplace($paroleText, $paroleText, $messaggio); 

$url = str_replace("www.","http://www.",$url);
$url = str_replace("http://http://","http://",$url);  
$messaggio = str_replace("www.","http://www.",$messaggio);
$messaggio = str_replace("http://http://","http://",$messaggio);
 
ciao
eppure con visualizza sorgente si vede che è scritto errato, quindi da qualche parte sbagli a mettere le variabili

dimenticavo:
che sia sbagliato te lo evidenzia anche passando col mouse sopra il link es se passi col muuse su quello che ti ho guestato vedi nella parte in basso sul bw il tou url mentre dovresti vedere il mio
 
Ultima modifica:
ciao
eppure con visualizza sorgente si vede che è scritto errato, quindi da qualche parte sbagli a mettere le variabili

dimenticavo:
che sia sbagliato te lo evidenzia anche passando col mouse sopra il link es se passi col muuse su quello che ti ho guestato vedi nella parte in basso sul bw il tou url mentre dovresti vedere il mio
Si questo l'avevo notato; guardi il guestbook vedrai che i gli ultimi post non danno errore di data, quelli prima danno errore perché ho modificato la data e gli ip manualmente nel db, ma mi sembra corretto il db

Schermata 01-2456317 alle 18.05.13.jpg
 
ciao
vedo che nel db gli url sono scritti giusti (es http://eccetera...) allora modifica la riga
PHP:
<?php
//....
echo "<div  class=\"site\"><span class=\"voci2\">Sito:</span><a class=\"carattere-2\" href=\"$url1\" target=\"_blank\">".$riga['url']."</a></div>"; 
//....
?>
mettendo prima la riduzione dell'url
PHP:
<?php
//.....
if(trim($riga['url'])==""){//per sicurezza un trim
	//se il campo url è vuoto
	$sito="<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">-</span>";
}else{
	$sito=str_replace("http://www.", "", $riga['url']);//tolgo http://www.
	if(strlen($sito >= 19){// se più lungo accorcio
		substr($sito,0,14)."...";
	}
	$sito="<a class=\"carattere-2\" href=\"".$riga['url']."\" target=\"_blank\">$sito</a>";
}
echo "<div class=\"site\"><span class=\"voci2\">Sito:</span> $sito</div>";
//.........
?>
prova e sappimi dire
 
Ho messo così ma mi da errore qui: Parse error: syntax error, unexpected '{' on line 170

PHP:
...
 if(trim($riga['url'])=="") {//per sicurezza un trim 
    //se il campo url è vuoto 
    $sito="<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">-</span>"; 
}
else { 
    $sito=str_replace("http://www.", "", $riga['url']);//tolgo http://www. 
    if(strlen($sito >= 19) {// se più lungo accorcio  // LINEA 170
        substr($sito,0,14)."..."; 
    } 
    $sito="<a class=\"carattere-2\" href=\"".$riga['url']."\" target=\"_blank\">$sito</a>"; 
} 
echo "<div class=\"site\"><span class=\"voci2\">Sito:</span> $sito</div>"; 
      
     
...
 
Ultima modifica:
Bene, barretta e puntini tutto risolto.

PHP:
  //Se la stringa è 14 caratteri o più (con lo spazio interno), viene accorciata a 13 e mette i 3 puntini, TOT a video 16
       if (strlen($riga['citta']) >= 14) {  
       $riga['citta']=substr($riga['citta'],0,13)."..."; 
      }elseif($riga['citta'] == '') { 
      $riga['citta'] ="<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">-</span>";
      }  
      echo "<div  class=\"city\"><span class=\"voci1\">Citt&agrave;:</span><span class=\"carattere-1\">".$riga['citta']."</span></div>";
      
      $riga['url'] = str_replace("www.","http://",$riga['url']);
      $riga['url'] = str_replace("http://http://","http://",$riga['url']); 
      $riga['url'] = str_replace("http://www.","http://",$riga['url']);
 
       //Se la stringa è 19 caratteri o più (con lo spazio interno), viene accorciata a 15 e mette i 3 puntini, TOT a video 18
       if (strlen($riga['url']) >= 19) {  
       $riga['url']=substr($riga['url'],0,15)."..."; 
      }elseif($riga['url'] == '') { 
      $riga['url'] ="<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">-</span>";
      }  
      echo "<div  class=\"site\"><span class=\"voci2\">Sito:</span><a class=\"carattere-2\" href=\"".$riga['url']."\" target=\"_blank\">".$riga['url']."</a></div>";

Ora però non capisco perché modificando l'ip nel db non si stampa come l'ho modificato io.
 

Discussioni simili