Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Form per l'invio di una e-mail risposta
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • S
      sups User Attivo • ultima modifica di

      Metti un campo di testo dove scrivere l'utente deve ricopiare il codice dell'immagine.
      Poi all'invio, controlli il codice inserito se è uguale a quello utilizzato dall'immagine.
      Puoi utilizzare le sessioni per questo:

      
      session_start();
      $_SESSION["code"] = "test";
      ...
      <img src="captcha.php" />
      Ricopia codice: <input type="text" name="nospam" />
      
      ... in "captcha.php" aggiungi ...
      session_start();
      header("Content-type: image/png");
      $code = substr($_SESSION['code'],0,9);
      
      ... nella pagina che riceve ...
      if($_POST["nospam"] != $_SESSION["code"])
          echo "Errore SPAM";
      
      
      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • S
        sups User Attivo • ultima modifica di

        Metti un campo di testo dove scrivere l'utente deve ricopiare il codice dell'immagine.
        Poi all'invio, controlli il codice inserito se è uguale a quello utilizzato dall'immagine.
        Puoi utilizzare le sessioni per questo:

        
        session_start();
        $_SESSION["code"] = "test";
        ...
        <img src="captcha.php" />
        Ricopia codice: <input type="text" name="nospam" />
        
        ... in "captcha.php" aggiungi ...
        session_start();
        header("Content-type: image/png");
        $code = substr($_SESSION['code'],0,9);
        
        ... nella pagina che riceve ...
        if($_POST["nospam"] != $_SESSION["code"])
            echo "Errore SPAM";
        
        
        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • P
          patric User • ultima modifica di

          Scusa, questa prima parte

          session_start();
          $_SESSION["code"] = "test"

          dove la dovrei mettere?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • S
            sups User Attivo • ultima modifica di

            Devi metterla nella pagina dove c'è il form da compilare, così come il tag img che punta al file captcha.php

            Es.

            
            <?php
            session_start();
            $_SESSION["code"] = "test"
            ?>
            <html ...
            ...
            <form ...
            ...
            <img src="captcha.php" />
            Ricopia codice: <input type="text" name="nospam" />
            
            
            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • P
              patric User • ultima modifica di

              😞 si, ma in ch-regio-info.ch/eintragen.htm non mi appare nessun testo.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • S
                sups User Attivo • ultima modifica di

                Converti la pagina html in php "eintragen.php", altrimenti non viene interpretato il codice php iniziale.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • P
                  patric User • ultima modifica di

                  Ciao, ho fatto e in effetti funziona, o meglio appare la scritta, solo che invece di generare un testo questa riproduce sempre solo la parola "test" e inoltre anche scrivendo la parola giusta da errore come SPAM.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • S
                    sups User Attivo • ultima modifica di

                    Nella pagina con il form di invio:

                    
                    $_SESSION["code"] = "test";
                    
                    

                    definisce la parola chiave che deve essere copiata dall'utente.
                    Se vuoi del testo casuale metti in questo caso:

                    
                    function codice_casuale($len)
                    {
                        $caratteri = "abcdefghiljkmnopqrstuvwxyz0123456789";
                        $codice = "";
                    
                        for($i =  0; $i <= $len; $i++)
                        {
                            $random = rand(0, strlen($caratteri) - 1);
                    
                            $codice .= substr($caratteri, $random, 1);
                        }
                    
                        return $codice;
                    }
                    
                    $_SESSION["code"] = codice_casuale(5);
                    
                    

                    Mentre, per risolvere il controllo che restituisce sempre spam, devi aggiungere session_start(); all'inizio del file che invia l'email, mi sono dimenticato di metterlo nel post precedente.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • P
                      patric User • ultima modifica di

                      Grazie mille, mi hai dato veramente un grande aiuto!
                      Ora sembra funzionare correttamente 🙂
                      Grazie ancora

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • S
                        sups User Attivo • ultima modifica di

                        Prego! 😉

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        Caricamento altri post
                        Rispondi
                        • Topic risposta
                        Effettua l'accesso per rispondere
                        • Da Vecchi a Nuovi
                        • Da Nuovi a Vecchi
                        • Più Voti