Pagina 6 di 6 PrimoPrimo ... 456
Visualizzazione risultati 151 fino 155 di 155

Discussione: Bloccare email spam

  1. #151
    Guest

    Predefinito

    Da lo stesso risultato, non prende il focus, prova.

    Ho anche questo nel form

    Codice PHP:
    <input type="email" name="suoemail"... onblur="emailCampo(); validaMail(); spamMail()">
    Ultima modifica di photoman : 05-05-2016 alle ore 09.49.51

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

    Predefinito

    Il solito errore di copia-e-incolla da parte mia, chiedo scusa.
    Nella funzione spamMail, in formG.php, la funzione va modificata come segue:
    Codice:
    function spamMail() {
        var f = document.forms.mioform1.suoemail.value;
        var input = document.forms.mioform1.suoemail;
        ...
    Nel messaggio precedente avevo aggiunto un .value di troppo.

  3. #153
    Guest

    Predefinito

    Stessa cosa, non va

    Codice PHP:
    function spamMail() {
    var f = document.forms.mioform1.suoemail.value;
    var input = document.forms.mioform1.suoemail;
    var xxx = new Array(<?php echo "'" . implode("', '", $blacklist) . "'"; ?>);
    var fields = f.split("@");

    //Se l'indirizzo non ha dominio, non fare nulla
    if (fields.length == 0) {
    return true;
    }
    var domain = fields[fields.length -1 ];

    // Se incontri un dominio della blacklist, fermati
    for (var i = 0; i < xxx.length; i++) {
    if (domain == xxx[i]) {
    document.getElementById('spamMail').innerHTML = "&bull;&nbsp;&nbsp;Questa email non &egrave; accettata";
    input.onblur = function () { input.focus(); }
    return false;
    }
    }
    document.getElementById('spamMail').innerHTML = "";
    input.onblur = function () {}
    return true;
    }

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

    Predefinito

    Quasi certamente altre parti dello script interferiscono con il focus. In termini pratici, quello che sta succedendo è:
    • viene verificato che il dominio è in una blacklist: viene forzato il focus
    • viene verificato che l'indirizzo email è valido: il focus può essere rilasciato
    • ecc.

    Un problema di Race Condition e Side Effect.

    Servirebbero un refactoring e un'impostazione più pulita (... e qualche conoscenza di programmazione in più).

    L'idea è di ristrutturare le funzioni in modo da renderle dei predicati senza side effects, ovvero funzioni che restituiscono true/false senza però modificare lo stato esterno (in questo caso la funzione di callback onblur e senza stampare messaggi in giro per la pagina), e successivamente usare un controller che interroghi le suddette funzioni e sia lui (e lui solo) ad forzare/rilasciare il focus e stampare messaggi d'errore.

  5. #155
    Guest

    Predefinito

    Beh, allora lasciamo così, mi hai già aiutato tanto. Grazie.

    La cosa strana è che questa funzione la devo mettere in formG.php, se la metto in script-guest.js come tutte le altre, non funziona.

    Io poi con Safari, vedo la finestra del guestbook a tutto schermo, solo con Chrome, Firefox e Opera la vedo ridotta.
    Ultima modifica di photoman : 07-05-2016 alle ore 10.52.36

Pagina 6 di 6 PrimoPrimo ... 456

Regole di scrittura

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