PHP Form Example su 3schools.com

di il
6 risposte

PHP Form Example su 3schools.com

Salve,

vorrei utilizzare il modello base pubblicato su www.w3schools.com/php/php_form_complete.as, ma per questioni di "Demo" non hanno messo la parte relativa al setup della email di recapito ed io, non essendo un esperto di PHP, non riesc a capire come vada scritto.

Potreste cortesemente darmi una mano?

Grazie1000!
Mario

6 Risposte

  • Re: PHP Form Example su 3schools.com

    É solo del testo scritto nel markup html (se nel form non é presente method POST i dati sono inoltrati tramite url) , se vuoi verificare l'e-mail devi aggiungere controlli più approfonditi. https://www.w3schools.com/php/php_form_url_email.as
    Qui il codice completo https://tryphp.w3schools.com/showphp.php?filename=demo_form_validation_complete
  • Re: PHP Form Example su 3schools.com

    Ciao Hormus,

    forse non mi sono spiegato bene. Partendo dalla demo completa qui: https://tryphp.w3schools.com/showphp.php?filename=demo_form_validation_complete, vorrei modificare il codice in modo che i dati NON vengano "stampati" sotto il form, ma che vengato recapitati ad un "destinatario". Dovrebbe essere una cosa abbastanza banale, ma non c'arrivo proprio

    Grazie Mille!
  • Re: PHP Form Example su 3schools.com

    Alcuni web server inibiscono l'uso della funzione mail https://www.php.net/manual/en/function.mail.ph , altri hanno limiti temporali o altri tipi di limiti, oppure l'IP del tuo server é bloccato dal server di posta del ricevente.
    Google cerca uno script di newsletter integrabile tramite API per il servizio che vuoi scegliere (se vuoi essere sicuro che i tuoi clienti ricevano l'e-mail).
  • Re: PHP Form Example su 3schools.com

    Perdonami, ma mi sa che stiamo parlando di due cose diverse Mi sa che sei troppo avanti.

    Io devo solo modificare il form qui sotto il modo che la compilazione dei dati arrivi a
    Qual'è la porzione di codice da inserire/modificare?
    
    
    <!DOCTYPE HTML>  
    <html>
    <head>
    <style>
    .error {color: #FF0000;}
    </style>
    </head>
    <body>  
    
    <?php
    // define variables and set to empty values
    $nameErr = $emailErr = $genderErr = $websiteErr = "";
    $name = $email = $gender = $comment = $website = "";
    
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
      if (empty($_POST["name"])) {
        $nameErr = "Name is required";
      } else {
        $name = test_input($_POST["name"]);
        // check if name only contains letters and whitespace
        if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
          $nameErr = "Only letters and white space allowed";
        }
      }
      
      if (empty($_POST["email"])) {
        $emailErr = "Email is required";
      } else {
        $email = test_input($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
          $emailErr = "Invalid email format";
        }
      }
        
      if (empty($_POST["website"])) {
        $website = "";
      } else {
        $website = test_input($_POST["website"]);
        // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
        if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
          $websiteErr = "Invalid URL";
        }
      }
    
      if (empty($_POST["comment"])) {
        $comment = "";
      } else {
        $comment = test_input($_POST["comment"]);
      }
    
      if (empty($_POST["gender"])) {
        $genderErr = "Gender is required";
      } else {
        $gender = test_input($_POST["gender"]);
      }
    }
    
    function test_input($data) {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      return $data;
    }
    ?>
    
    <h2>PHP Form Validation Example</h2>
    <p><span class="error">* required field</span></p>
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
      Name: <input type="text" name="name" value="<?php echo $name;?>">
      <span class="error">* <?php echo $nameErr;?></span>
      <br><br>
      E-mail: <input type="text" name="email" value="<?php echo $email;?>">
      <span class="error">* <?php echo $emailErr;?></span>
      <br><br>
      Website: <input type="text" name="website" value="<?php echo $website;?>">
      <span class="error"><?php echo $websiteErr;?></span>
      <br><br>
      Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
      <br><br>
      Gender:
      <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">Female
      <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">Male
      <input type="radio" name="gender" <?php if (isset($gender) && $gender=="other") echo "checked";?> value="other">Other  
      <span class="error">* <?php echo $genderErr;?></span>
      <br><br>
      <input type="submit" name="submit" value="Submit">  
    </form>
    
    <?php
    echo "<h2>Your Input:</h2>";
    echo $name;
    echo "<br>";
    echo $email;
    echo "<br>";
    echo $website;
    echo "<br>";
    echo $comment;
    echo "<br>";
    echo $gender;
    ?>
    
    </body>
    </html>
    
  • Re: PHP Form Example su 3schools.com

    Echo é un costrutto linguistico per stampare a video del testo, il carattere $ in genere indica la variabile contenitore, leggi il link fornito per la funzione mail e $email é il valore dell'email.
    Mentre questo se l'utente possiede almeno un cliente mail invia la mail https://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_mail
  • Re: PHP Form Example su 3schools.com

    Allora, partendo dal modello di 3schools.com, la mia intenzione era quella di prendere il codice php e metterlo in un file a parte, denominato 'process.php'
    
    <?php
    // define variables and set to empty values
    $nameErr = $emailErr = $genderErr = $websiteErr = "";
    $name = $email = $gender = $comment = $website = "";
    
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
      if (empty($_POST["name"])) {
        $nameErr = "Name is required";
      } else {
        $name = test_input($_POST["name"]);
        // check if name only contains letters and whitespace
        if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
          $nameErr = "Only letters and white space allowed";
        }
      }
      
      if (empty($_POST["email"])) {
        $emailErr = "Email is required";
      } else {
        $email = test_input($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
          $emailErr = "Invalid email format";
        }
      }
        
      if (empty($_POST["website"])) {
        $website = "";
      } else {
        $website = test_input($_POST["website"]);
        // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
        if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
          $websiteErr = "Invalid URL";
        }
      }
    
      if (empty($_POST["comment"])) {
        $comment = "";
      } else {
        $comment = test_input($_POST["comment"]);
      }
    
      if (empty($_POST["gender"])) {
        $genderErr = "Gender is required";
      } else {
        $gender = test_input($_POST["gender"]);
      }
    }
    
    function test_input($data) {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      return $data;
    }
    ?>
    

    linkarlo al posto di : <?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>
    
    <h2>PHP Form Validation Example</h2>
    <p><span class="error">* required field</span></p>
    <form method="post" action="process.php">  
      Name: <input type="text" name="name" value="<?php echo $name;?>">
      <span class="error">* <?php echo $nameErr;?></span>
      <br><br>
      E-mail: <input type="text" name="email" value="<?php echo $email;?>">
      <span class="error">* <?php echo $emailErr;?></span>
      <br><br>
      Website: <input type="text" name="website" value="<?php echo $website;?>">
      <span class="error"><?php echo $websiteErr;?></span>
      <br><br>
      Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
      <br><br>
      Gender:
      <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">Female
      <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">Male
      <input type="radio" name="gender" <?php if (isset($gender) && $gender=="other") echo "checked";?> value="other">Other  
      <span class="error">* <?php echo $genderErr;?></span>
      <br><br>
      <input type="submit" name="submit" value="Submit">  
    </form>
    
    fatto questo dovrei scrivere una cosa del genere nella parte PHP per fare in modo che la email venga recapitata a un destinatario:
    
    <?php
    
    $recipients = array(
      "info@miodominio.com"
    );
    $email_to = implode(',', $recipients); // your email address
    $email_subject = "Richiesta Informazioni"; // email subject line
    $thankyou = "thank-you.html"; // thank you page
    
    ?>
    
    Vorrei aggiustare questo form perché ha i required fields. Specifico che sono un Web Designer, ho un'ottima padronanza di Html+CSS, ma non so programmare in PHP. Ecco perché chiedevo un mano su questo forum per modificarlo.

    Grazie Mille per la Disponibilità
Devi accedere o registrarti per scrivere nel forum
6 risposte