Pagina 5 di 6 PrimoPrimo ... 3456 UltimoUltimo
Visualizzazione risultati 121 fino 150 di 155

Discussione: Bloccare email spam

  1. #121
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Anche se cambio nome da lo stesso errore.
    L'hai inserita all'interno di un ciclo while, diversamente da quando indicato.

    Io non ho ancora capito perché il mio codice, che funziona, non va bene, e questo si.
    Prima di dire che funziona dovresti essere in grado di dimostrarlo formalmente, cosa difficile viste le premesse.
    In concreto, il problema è che può dare risultati inattesi nei casi limite: prevedi delle sostituzioni con "www" e "http", ma cosa succederebbe se un utente volesse usare "https", "ftp" o protocolli meno comuni?

  2. #122
    Guest

    Predefinito

    Ho fatto varie prove con il mio codice (che puoi fare anche tu sul mio guestbook) sia con www. http:// e https:// e funziona tutto
    Ultima modifica di photoman : 03-05-2016 alle ore 22.15.31

  3. #123
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Ho fatto alcuni tentativi nel tuo guestbook (mi sono firmato col nome di betaTest, così saprai quali commenti rimuovere).
    Nessuno di essi ha funzionato correttamente.

    In particolare nell'ultimo ho usato https://teradatanet0.teradata.com/Si...c/portal/login (URL di un sito web qualunque pescato su internet). Nota che il link sul tuo guestbook è rotto, se provi ad aprirlo otterrai una pagina di errore. Questo perché hai modificato "https" in "http", ed il sito in questione è progettato per funzionare solo su https.
    Diciamo che questo è un "errore critico", perché rende inservibile un link.

    I tentativi precedenti producono URL sbagliati, ad esempio http://google.it anziché https://www.google.it. In questo caso, però, l'errore si nota di meno perché il browser è "abbastanza intelligente da correggere autonomamente l'errore" e contattare l'URL corretto anziché quello da te indicato (se provi ad aprire il link che nel tuo guestbook appare come "http://google.it", vedrai che il browser apre invece "https://www.google.it").
    Diciamo che questo è un "errore non critico" perché non influenza significativamente la navigazione.
    Ho il sospetto che questo errore comporti un rallentamento, il quanto il browser deve effettuare due richieste anziché una, ma non ho verificato, quindi soprassediamo.

  4. #124
    Guest

    Predefinito

    Si, l'ho notato anch'io, in Mail client, mi arriva così Sito: http://http://google.it

    Beh, allora se è da sistemare, sistemiamolo, posto ancora una volta il codice da modificare

    Codice PHP:
    $q="SELECT * FROM formG ORDER BY id DESC";
    //Lancio la query
    $ris=mysql_query($q);
    if (
    mysql_num_rows($ris) > 0) { //Conto i record (i campi nella tabella del db)
    //Leggo un record alla volta e lo stampo
    while($riga=mysql_fetch_array($ris)) {
    ...
    else{
    $riga['url1'] = "http://".$riga['url'];
    //Se la stringa è 10 caratteri o più, viene accorciata a 7 e mette i 3 puntini, TOT a video 10
    if(strlen($riga['url']) >= 10) {
    $riga['url'] = substr($riga['url'],0,7)."...";
    }
    echo
    "<div class=\"site\"><span class=\"voci2\">Sito:</span><a class=\"carattere-2\" href=\"".$riga['url1']."\" target=\"_blank\">http://".$riga['url']."</a></div>";
    }
    $url = str_ireplace("www.","http://",$url);
    $url = str_ireplace("https://","http://",$url);
    Ultima modifica di photoman : 03-05-2016 alle ore 22.48.14

  5. #125
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Codice PHP:
    $q="SELECT * FROM formG ORDER BY id DESC";
    //Lancio la query
    $ris = mysql_query($q);

    if (
    mysql_num_rows($ris) > 0) { //Conto i record (i campi nella tabella del db)
    //Leggo un record alla volta e lo stampo
    while ($riga = mysql_fetch_array($ris)) {
    ...
    else {
    $url = $riga['url'];
    $short_url = (strlen($url) >= 10) ? substr($url, 0, 7) . "..." : $url;

    echo
    "<div class=\"site\"><span class=\"voci2\">Sito:</span>";
    echo
    "<a class=\"carattere-2\" href=\"$url\" target=\"_blank\">$short_url</a></div>";
    }
    Ora bisogna risistemare la parte di inserimento, se non ricordo male anche lì usavi delle sostituzioni per fare i controlli (puoi riportare il codice?).

  6. #126
    Guest

    Predefinito

    Questo?

    Codice PHP:
    <input type="url" name="url" class="campi" value="<?php if(isset($_SESSION['url'])){ echo $_SESSION['url'];}else{ echo "";} ?>" onkeyup="contaUrl(); validaUrl()" onblur="validaUrl()">
    Questo potrei anche lasciarlo

    Codice PHP:
    $url = str_ireplace("www.","http://",$url);
    Ultima modifica di photoman : 04-05-2016 alle ore 13.21.00

  7. #127
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Tu accetti solo http o https? Se è si al momento dell'invio del modulo fai il controllo che ti ho proposto, poi da database recuperi ed eventualmente accorci la url. (non ho mai visto un link di un sito che porti al protocollo ftp, o comunque diversi da http o https)
    Per le sessioni da altervista questo codice non è corretto si crei un file test.php
    Codice PHP:
    <?php
    $i
    = 0;
    if(!(isset(
    $_COOKIE['url']) || isset($_COOKIE['PHPSESSID']))){
    $i = 1;
    session_start();
    $url = 'http://www.example.com';
    $_SESSION['url'] = $url;
    }
    if(
    $i == 1){
    $i = 0;
    header('Location: http://photoman.altervista.org/test.php');
    }
    if(
    $i == 0 && (isset($_COOKIE['url']) || isset($_COOKIE['PHPSESSID']))){
    echo
    'cookie settati<br>';
    print_r($_COOKIE);
    }else{
    echo
    'browser non supporta i cookie';
    }
    ?>
    usa la funzione setcookie().
    Alcuni web server potrebbero essere sprovvisti dalla riscrittura del proprio dominio. (cioè senza www.) Se ipoteticamente io installo apache è non lo configuro, il mio link sarà visibile solo con il www.
    riguardo http://google.it fa un redirect (header) su https://www.google.it.
    Ultima modifica di darbula : 04-05-2016 alle ore 13.46.29

  8. #128
    Guest

    Predefinito

    Io questo lo lascerei, così accetta anche www.

    Codice PHP:
    $url = str_ireplace("www.","http://",$url);

  9. #129
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    No in pratica stai togliendo www. per mettere http://. Già ti ho detto che il www non deve essere tolto.
    Ultima modifica di darbula : 04-05-2016 alle ore 13.35.07

  10. #130
    Guest

    Predefinito

    Ok, l'ho tolto. ma nella barra di stato, quella in basso appare doppio url e non si linea


  11. #131
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Questo?
    Codice PHP:
    <input type="url" name="url" class="campi" value="<?php if(isset($_SESSION['url'])){ echo $_SESSION['url'];}else{ echo "";} ?>" onkeyup="contaUrl(); validaUrl()" onblur="validaUrl()">
    No, intendevo la pagina PHP che riceve i dati tramite POST e li inserisce nella base di dati.

    (non ho mai visto un link di un sito che porti al protocollo ftp, o comunque diversi da http o https)
    C'è sempre una prima volta: ftp://ftp.debian.org/debian/, ftp://bo.mirror.garr.it/0/, ftp://ftp.dei.unipd.it/pub/DEI/...
    Utile quando hai bisogno di un magazzino di file, più che di un sito web.

  12. #132
    Guest

    Predefinito

    La pagina è sempre una, c'è il form e i codici php.

    Dici questi?

    Codice PHP:
    if(isset($_POST['invia'])) {
    $data_locale = time(); //Stampa nel db la data numerica es. 1360585588
    $nome = htmlspecialchars(addslashes(ucfirst(trim($_POST['nome']))));
    $citta = htmlspecialchars(addslashes(ucfirst(trim($_POST['citta']))));
    $suoemail = htmlspecialchars(strtolower($_POST['suoemail']));
    $suoemail = str_replace(" ","",$suoemail); // Toglie gli spazi interni nell'email
    $url = htmlspecialchars(strtolower($_POST['url']));
    $url = str_replace(" ","",$url); // Toglie gli spazi interni nell'url
    $messaggio = htmlspecialchars(addslashes(ucfirst(trim($_POST['messaggio']))));
    $validator = htmlspecialchars(trim($_POST['validator']));

    $_SESSION['nome'] = $nome;
    $_SESSION['citta'] = $citta;
    $_SESSION['suoemail'] = $suoemail;
    $_SESSION['url'] = $url;
    $_SESSION['messaggio'] = $messaggio;
    ...

  13. #133
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    @maznella questo è riferito ad uso esclusivo di siti web echo "<div class="site"><span class="voci2">Sito:</span>"; Altrimenti il termine non dovrebbe chiamarsi sito.
    @photoman Devi accettare solo siti web, quindi l'utente deve inserire obbligatoriamente un sito web, togli il placeholder da html è aggiungi http://nel codice php come proposto qui. http://forum.it.altervista.org/php-m...ml#post1293764
    EDIT:
    ps esiste solo l'array della sessione ma non il cookie. già ti ho spiegato che visualizzi PHPSESSID invece dei cookie definiti da te.
    EDIT2: @mazanella In linea teorica concordo, ma pensa come faccio ad evitare spam?? Devo consentire un certo tipo di cose dal momento che non potrei verificare se il protocollo ftp è un sito o solo delle riposerse. Comunque l'intento dell'autore sarebbe di dare la possibilità di conoscere meglio l'utente in questione, insomma una pagina che descrive chi è,cosa faccia e cosa ha già fatto in sintesi.
    Ultima modifica di darbula : 04-05-2016 alle ore 15.56.27

  14. #134
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La pagina è sempre una, c'è il form e i codici php.

    Dici questi?
    Sì, intendevo quelli. In particolare la parte in cui controlli la validità dell'URL (con filter_var e tutto il resto). Se hai già rimosso le sostituzioni di "www" però non è necessario.

    @maznella questo è riferito ad uso esclusivo di siti web ; Altrimenti il termine non dovrebbe chiamarsi sito
    Formalmente ha tutti i requisiti per definirsi "sito": "collezione di pagine web correlate, ovvero una struttura ipertestuale di documenti" (Sito web).
    La definizione non pone restrizioni sul protocollo utilizzato per recuperare un contenuto, sulle tecnologie per produrre la pagina, né sulle post-operazioni necessarie alla visualizzazione.
    What is an FTP site?.
    Naturalmente se l'autore, per motivazioni qualunque, non vuole accettare nulla che non viaggi su http o https, ha il diritto di farlo. E di farcelo sapere, così ci regoliamo di conseguenza .

  15. #135
    Guest

    Predefinito

    Che faccio allora? Questo funziona, si tratta solo di fargli accettare www.

    Codice PHP:
    else {
    $url = $riga['url'];
    //Se la stringa è 10 caratteri o più, viene accorciata a 7 e mette i 3 puntini, TOT a video 10
    $short_url = (strlen($url) >= 10) ? substr($url, 0, 7) . "..." : $url;
    echo
    "<div class=\"site\"><span class=\"voci2\">Sito:</span>";
    echo
    "<a class=\"carattere-2\" href=\"$url\" target=\"_blank\">$short_url</a></div>";
    }

  16. #136
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Quello è il codice della stampa, lascialo così.

    Occorre intervenire piuttosto sul codice di inserimento, nella pagina formG.php, in particolare nella sezione in cui hai
    Codice PHP:
    //Valida URL (Campo non obbligatorio)
    if (isset($_POST['url'])) {
    $url = $_POST['url'];
    $url = str_ireplace("www.","http://", $url);
    if (
    filter_var($url, FILTER_VALIDATE_URL) === false) {
    $errore .= "&bull;&nbsp;&nbsp;Inserire un URL valido<br><br>";
    }
    }
    Questo codice l'ho preso da un tuo messaggio precedente, potrebbe essere stato modificato da allora. Puoi mostrare per favore la versione aggiornata, così lavoriamo su quella?

  17. #137
    Guest

    Predefinito

    Codice PHP:
    //Valida URL (Campo non obbligatorio), se il campo è vuoto gli fa saltare il controllo
    if (isset($_POST['url']) && !empty($_POST['url'])) {
    if (
    filter_var($url, FILTER_VALIDATE_URL) === false) {
    $errore .= "&bull;&nbsp;&nbsp;Inserire un URL valido<br><br>";
    }
    }

  18. #138
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Bene, procederei come segue:
    1. se l'URL non è valido, prova aggiungendo "http://"
    2. se l'URL ancora non è valido, prepara un messaggio d'errore
    3. (altrimenti, l'URL è valido)

    Che si traduce così:
    Codice PHP:
    //Valida URL (Campo non obbligatorio), se il campo è vuoto gli fa saltare il controllo
    if (isset($_POST['url']) && !empty($_POST['url'])) {
    // Se l'URL non è valido, prova aggiungendo "http://"
    if (filter_var($url, FILTER_VALIDATE_URL) === false) {
    $url = "http://" . $url;

    // Se ancora non è valido, prepara un messaggio d'errore
    if (filter_var($url, FILTER_VALIDATE_URL) === false) {
    $errore .= "&bull;&nbsp;&nbsp;Inserire un URL valido<br><br>";
    }
    }
    }
    In questo modo, gli URL validi fin dall'inizio non vengono alterati.
    Gli URL non validi a causa della mancanza del protocollo di navigazione vengono assunti usare http e modificati di conseguenza.
    Gli URL non validi, a prescindere dal protocollo, sono rifiutati.

    Mi sembra di ricordare che tu effettuassi un controllo analogo con AJAX, in questo caso anche la pagina PHP usata con AJAX va modificata allo stesso modo.

  19. #139
    Guest

    Predefinito

    Ho questo, ma è diverso. Questo va bene, si può anche lasciare

    Codice PHP:
    <?php
    //Questa funzione si collega a script-guest.js e serve a validare in js FILTER_VALIDATE_URL
    header('Content-Type: application/json');

    // Stops if no URL is given
    if (!isset($_GET['url'])) {
    echo
    json_encode(array("valid" => false));
    return;
    }

    // Stops if URL is empty or invalid
    $url = $_GET['url'];
    $url = str_ireplace("www.","http://",$url);
    if (empty(
    $url) || filter_var($url, FILTER_VALIDATE_URL) === false) {
    echo
    json_encode(array("valid" => false));
    return;
    }
    // URL is valid
    echo json_encode(array("valid" => true));
    Ultima modifica di photoman : 04-05-2016 alle ore 19.07.53

  20. #140
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La modifica in questo caso diventa:
    Codice PHP:
    //Questa funzione si collega a formG.php e serve a validare in js FILTER_VALIDATE_URL
    header('Content-Type: application/json');

    // Stops if no URL is given or it is empty
    if (!isset($_GET['url']) || empty($url)) {
    echo
    json_encode(array("valid" => false));
    return;
    }

    // Stops if URL is invalid
    $url = $_GET['url'];
    if (
    filter_var($url, FILTER_VALIDATE_URL) === false) {
    $url = "http://" . $url;

    if (
    filter_var($url, FILTER_VALIDATE_URL) === false) {
    echo
    json_encode(array("valid" => false));
    return;
    }
    }

    // URL is valid
    echo json_encode(array("valid" => true));

  21. #141
    Guest

    Predefinito

    Ho notato che il codice precedente, il php, non va bene, se inserisco http://www.photoman.altervista.org/ succede che a video non inserisce http:// e poi non si linca. In fondo nella barra di stato appare un doppio url

  22. #142
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Mostra il codice (completo) relativo all'inserimento, dalla lettura di POST fino all'inserimento nella base di dati.

  23. #143
    Guest

    Predefinito

    E' un codice un po strano, posto fino alla validazione url

    Codice PHP:
    $q="SELECT * FROM formG ORDER BY id DESC";
    //Lancio la query
    $ris=mysql_query($q);
    if (
    mysql_num_rows($ris) > 0) { //Conto i record (i campi nella tabella del db)
    //Leggo un record alla volta e lo stampo
    while($riga=mysql_fetch_array($ris)) {
    //Verifico se il conteggio è pari o dispari e in alternato cambio il colore
    if($contatore%2==0) {
    $sfondo="#fff";
    }else{
    $sfondo="#e5e8ea";
    }
    echo
    "<div class=\"w\">";
    echo
    "<div class=\"tabella-small\">";

    $tolgo_http_www = array('http://', 'www.');
    $riga['nome'] = trim(str_ireplace($tolgo_http_www,"",$riga['nome']));
    echo
    "<div class=\"carattereNome\">".preg_replace($paroleArray, $replacements, $riga['nome'])."</div>";

    $tolgo_http_www = array('http://', 'www.');
    $riga['citta'] = trim(str_ireplace($tolgo_http_www,"",$riga['citta']));
    if(
    $riga['citta'] == "") {
    $riga['citta'] = "<span style=\"color:#a8a8a8; text-shadow:0px 1px 0px white;\">N/A</span>";
    }
    echo
    "<div class=\"city\"><span class=\"voci1\">Citt&agrave;:</span><span class=\"carattere-1\">".preg_replace($paroleArray, $replacements, $riga['citta'])."</span></div>";

    $replacements = "[Censura]";
    $tolgo_http_www = array('http://', 'www.');
    $riga['url'] = trim(str_ireplace($tolgo_http_www,"",$riga['url']));
    $riga['url'] = preg_replace($paroleArray, $replacements, $riga['url']);
    if(
    $riga['url'] == "") {
    echo
    "<div class=\"site\"><span class=\"voci2\">Sito:</span><span style=\"margin-left:11px; color:#a8a8a8; text-shadow:0px 1px 0px white;\">N/A</span></div>";
    }elseif(
    $riga['url'] == "[Censura]") {
    echo
    "<div class=\"site\"><span class=\"voci2\">Sito:</span><span style=\"margin-left:9px;\"><span class=\"badWord\">[Censura]</span></span></div>";
    }
    else {
    $url = $riga['url'];
    //Se la stringa è 10 caratteri o più, viene accorciata a 7 e mette i 3 puntini, TOT a video 10
    $short_url = (strlen($url) >= 10) ? substr($url, 0, 7) . "..." : $url;
    echo
    "<div class=\"site\"><span class=\"voci2\">Sito:</span>";
    echo
    "<a class=\"carattere-2\" href=\"$url\" target=\"_blank\">$short_url</a></div>";
    }
    //Questo mette a video la Country di provenienza
    //Se la stringa è 14 caratteri o più (con lo spazio interno), viene accorciata a 11 e mette i 3 puntini, TOT a video 14
    $country = $riga['country'];
    if(
    strlen($country) >= 14) {
    $country=substr($country,0,11)."...";
    }
    echo
    "<div class=\"nazione\"><span class=\"voci3\">Country:</span><span class=\"carattere-3\" title=\"".$riga['country']."\">$country</span></div>";
    //Questo mette a video l'ip originale di provenienza + 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>";
    echo
    "</div>"; /*tabella-small*/
    echo "<div class=\"tabella-longTime\">".$riga['dataGmt']."</div>";
    echo
    "<div class=\"tabella-long\" style=\"background-color: $sfondo\">";
    $replacements = "<span class=\"badWord\">[Censura]</span>";
    $riga['messaggio'] = preg_replace($paroleArray, $replacements, $riga['messaggio']);
    //Rende l'URL linkabile nel campo messaggio, va messo qui
    $riga['messaggio'] = preg_replace("/(ftp(s|es)?:\/\/|sftp:\/\/|http(s)?:\/\/|www\.)(\w)+([.]*(\w)+[-]*)*(\w)*(\.[a-z]{2,20})((\/)[-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]*)*/","<a class=\"carattereText\" href=\"$0\" target=\"_blank\">$0</a>",$riga['messaggio']);
    //Faccine, vanno messe in QUESTO punto DELLA PAG...
    $riga['messaggio'] = str_ireplace(":CONFUSO:","<img src=\"../faccine/cxonfuso.gif\" alt=\"Confuso\" title=\"Confuso\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":IMPOSSIBILE:","<img src=\"../faccine/ixmpossibile.gif\" alt=\"Impossibile\" title=\"impossibile\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":TESTARDO:","<img src=\"../faccine/txestardo.gif\" alt=\"Testardo\" title=\"Testardo\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":PIANGE:","<img src=\"../faccine/pxiange.gif\" alt=\"Piange\" title=\"Piange\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":BACIO:","<img src=\"../faccine/bxacio.gif\" alt=\"Bacio\" title=\"Bacio\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":FELICE:","<img src=\"../faccine/fxelice.gif\" alt=\"Felice\" title=\"Felice\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":RIDE:","<img src=\"../faccine/rxide.gif\" alt=\"Ride\" title=\"Ride\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":OCCHIOLINO:","<img src=\"../faccine/oxcchiolino.gif\" alt=\"Occhiolino\" title=\"Occhiolino\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":CIAO:","<img src=\"../faccine/cxiao.gif\" alt=\"Ciao\" title=\"Ciao\">",$riga['messaggio']);
    $riga['messaggio'] = str_ireplace(":PAURA:","<img src=\"../faccine/pxaura.gif\" alt=\"Paura\" title=\"Paura\">",$riga['messaggio']);
    echo
    "<div class=\"carattereMess\">".$riga['messaggio']."</div>";
    echo
    "</div>"; /* tabella-long */
    echo "</div>"; /* w */
    $contatore ++; //Ad ogni giro incremento di uno
    }
    }
    if(isset(
    $_POST['invia'])) {
    $data_locale = time(); //Stampa nel db la data numerica es. 1360585588
    $nome = htmlspecialchars(addslashes(ucfirst(trim($_POST['nome']))));
    $citta = htmlspecialchars(addslashes(ucfirst(trim($_POST['citta']))));
    $suoemail = htmlspecialchars(strtolower($_POST['suoemail']));
    $suoemail = str_replace(" ","",$suoemail); // Toglie gli spazi interni nell'email
    $url = htmlspecialchars(strtolower($_POST['url']));
    $url = str_replace(" ","",$url); // Toglie gli spazi interni nell'url
    $messaggio = htmlspecialchars(addslashes(ucfirst(trim($_POST['messaggio']))));
    $validator = htmlspecialchars(trim($_POST['validator']));

    $_SESSION['nome'] = $nome;
    $_SESSION['citta'] = $citta;
    $_SESSION['suoemail'] = $suoemail;
    $_SESSION['url'] = $url;
    $_SESSION['messaggio'] = $messaggio;

    //dichiaro la variabile e la rendo vuota, altrimenti da errore
    $errore = '';

    //strlen = numero di byte occupati dalla stringa, questo significa compresi gli spazi interni fra le parole
    if (strlen($nome) > 20) {
    $errore .= "&bull;&nbsp;&nbsp;NOME: max 20 caratteri<br><br>";
    }
    if (
    strlen($citta) > 20) {
    $errore .= "&bull;&nbsp;&nbsp;CITTÀ: max 20 caratteri<br><br>";
    }
    if (
    strlen($suoemail) > 320) {
    $errore .= "&bull;&nbsp;&nbsp;EMAIL: max 320 caratteri<br><br>";
    }
    if (
    strlen($url) > 2083) {
    $errore .= "&bull;&nbsp;&nbsp;URL: max 2083 caratteri<br><br>";
    }
    // Non conteggia le new line
    if (strlen(str_replace(array("\n", "\r"),"", $messaggio)) > 300) {
    $errore .= "&bull;&nbsp;&nbsp;MESSAGGIO: max 300 caratteri<br><br>";
    }
    if (
    strlen($validator) > 4 ) {
    $errore .= "&bull;&nbsp;&nbsp;VALIDATORE: max 4 caratteri<br><br>";
    }


    //Rende l'email linkabile nel campo messaggio, va messo qui
    $messaggio = preg_replace("/(\w)+([.]*(\w)+[-]*)*(\w)*[@](\w)+([.]*(\w)+)*(\w)*(\.[a-z]{2,})/","<a class=\"carattereText\" href=\"mailto:$0\">$0</a>",$messaggio);

    //Formattazione testo
    $messaggio = str_replace("[G]","<b>",$messaggio);
    $messaggio = str_replace("[/G]","</b>",$messaggio);
    $messaggio = str_replace("[C]","<i>",$messaggio);
    $messaggio = str_replace("[/C]","</i>",$messaggio);
    $messaggio = str_replace("[S]","<u>",$messaggio);
    $messaggio = str_replace("[/S]","</u>",$messaggio);

    //Colora il testo selezionato
    $messaggio = str_replace("[COLOR=cayenne]","<span style=\"color:#800000\">",$messaggio);
    $messaggio = str_replace("[COLOR=rosso]","<span style=\"color:#ff0000\">",$messaggio);
    $messaggio = str_replace("[COLOR=verde]","<span style=\"color:#008000\">",$messaggio);
    $messaggio = str_replace("[COLOR=grigio]","<span style=\"color:#808080\">",$messaggio);
    $messaggio = str_replace("[/COLOR]","</span>",$messaggio);

    //Nome (Campo obbligatorio)
    if((isset($_POST['invia']) || !empty($_POST['invia']))) { // Fa stampare a video gli alert dei campi obbligatori DOPO l'invio errato
    if ($nome == "") {
    $errore .= "&bull;&nbsp;&nbsp;Inserire il Nome<br><br>";
    }
    else {
    $nome;
    }
    }

    //Email (Campo obbligatorio), valida email e intercetta il dominio spam
    function get_domain($email) {
    if (
    filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
    return
    "";
    }
    return
    array_pop(explode('@', $email));
    }
    function
    in_blacklist($domain) {
    global
    $blacklist;
    return
    in_array($domain, $blacklist);
    }
    $domain = get_domain($suoemail);
    if (empty(
    $suoemail)) {
    $errore .= "&bull;&nbsp;&nbsp;Inserire l'email<br><br>";
    }
    else {
    if (
    filter_var($suoemail, FILTER_VALIDATE_EMAIL) === false) {
    $errore .= "&bull;&nbsp;&nbsp;Inserire un'email valida<br><br>";
    }
    elseif (empty(
    $domain) || in_blacklist($domain)) {
    $errore .= "&bull;&nbsp;&nbsp;Questa email non &egrave; accettata<br><br>";
    }
    }

    //Valida URL (Campo non obbligatorio), se il campo è vuoto gli fa saltare il controllo
    if (isset($_POST['url']) && !empty($_POST['url'])) {
    // Se l'URL non è valido,fa la prova aggiungendo "http://"
    if (filter_var($url, FILTER_VALIDATE_URL) === false) {
    $url = "http://" . $url;

    // Se ancora non è valido, prepara un messaggio d'errore
    if (filter_var($url, FILTER_VALIDATE_URL) === false) {
    $errore .= "&bull;&nbsp;&nbsp;Inserire un URL valido<br><br>";
    }
    }
    }

  24. #144
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Queste due righe vanno tolte:
    Codice PHP:
    $tolgo_http_www = array('http://', 'www.');
    $riga['url'] = trim(str_ireplace($tolgo_http_www,"",$riga['url']));
    Credo che questa modifica sia sufficiente a risolvere il problema, ma ti invito a verificarlo con qualche prova.

  25. #145
    Guest

    Predefinito

    Va meglio però aggiunge un http:// di troppo. Se inserisco www.sito.it stampa http://www.sito.it

  26. #146
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Va meglio però aggiunge un http:// di troppo. Se inserisco www.sito.it stampa http://www.sito.it
    Come è giusto che sia : www.sito.it non è un URL valido, ma lo diventa aggiungendo http://.

  27. #147
    Guest

    Predefinito

    Ok. io però questo lo lascerei così perché se inserisco www.sito.it me lo accetta nel form, con il codice che mi hai modificato tu, non lo accetta.

    Codice PHP:
    <?php
    //Questa funzione si collega a script-guest.js e serve a validare in js FILTER_VALIDATE_URL
    header('Content-Type: application/json');

    // Stops if no URL is given
    if (!isset($_GET['url'])) {
    echo
    json_encode(array("valid" => false));
    return;
    }

    // Stops if URL is empty or invalid
    $url = $_GET['url'];
    $url = str_ireplace("www.","http://",$url);
    if (empty(
    $url) || filter_var($url, FILTER_VALIDATE_URL) === false) {
    echo
    json_encode(array("valid" => false));
    return;
    }
    // URL is valid
    echo json_encode(array("valid" => true));

  28. #148
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Conteneva un errore di sintassi. Ora è corretto:
    Codice PHP:
    //Questa funzione si collega a script-guest.js e serve a validare in js FILTER_VALIDATE_URL
    header('Content-Type: application/json');

    // Stops if no URL is given or it is empty
    if (!isset($_GET['url']) || empty($_GET['url'])) {
    echo
    json_encode(array("valid" => false));
    return;
    }

    // Stops if URL is invalid
    $url = $_GET['url'];
    if (
    filter_var($url, FILTER_VALIDATE_URL) === false) {
    $url = "http://" . $url;

    if (
    filter_var($url, FILTER_VALIDATE_URL) === false) {
    echo
    json_encode(array("valid" => false));
    return;
    }
    }

    // URL is valid
    echo json_encode(array("valid" => true));

  29. #149
    Guest

    Predefinito

    Ora va bene. C'è un ultima cosa però nella validazione dei domini spam dell'email. Come potrai verificare, nessun browser tiene il focus se il dominio è spam 163.com

    Codice PHP:
    //Questa funzione richiama il file email_ajax.php
    function validaMail() {
    var
    input = document.forms.mioform1.suoemail;
    var
    email = input.value;
    var
    container = document.getElementById('validaMail');

    // Stops if no address was given
    if (email === "") {
    input.onblur = function () {}
    return;
    }
    $.
    get("email_ajax.php", { "email": email }, function (data) {
    if (
    data.valid) {
    container.innerHTML = "";
    input.onblur = function () {}
    }
    else {
    container.innerHTML = "&bull;&nbsp;&nbsp;Inserire un'email valida";
    input.onblur = function () { input.focus(); }
    }
    });
    }

  30. #150
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La funzione da modificare è spamMail, in formG.php. Aggiungi questa riga:
    Codice:
    var input = document.forms.mioform1.suoemail;
    subito dopo l'assegnamento ad f. Il risultato finale sarà:

    Codice:
    function spamMail() {
        var f = document.forms.mioform1.suoemail.value;
        var input = document.forms.mioform1.suoemail.value;
        ...
    Lascia inalterato il resto della funzione.

Pagina 5 di 6 PrimoPrimo ... 3456 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •