Δημιουργήστε Μια Απλή Φόρμα Επικοινωνίας Σε PHP

Post Pic
στις 28.09.09. Kατηγορίες PHP με 42 Σχόλια

Πολλές φορές χρειάζεται να φτιάξουμε μια φόρμα επικοινωνίας για την ιστοσελίδα μας, με τα πεδία και την λειτουργικότητα που εμείς θέλουμε. Σε αυτό το βοήθημα θα δούμε πως μπορούμε να δημιουργήσουμε μια απλή φόρμα επικοινωνίας από το μηδέν, γράφοντας κώδικα σε PHP και HTML.

Πρώτα από όλα θα πρέπει να δημιουργήσουμε το αρχείο που θα περιέχει την φόρμα επικοινωνίας. Το αρχείο αυτό θα ονομάζεται contact.html. Για να το δημιουργήσουμε μπορούμε πολύ απλά να δημιουργήσουμε ένα κενό αρχείο κειμένου (txt) και να το μετονομάσουμε σε contact.html.

Η Φόρμα Επικοινωνίας

Ανοίγοντας το νέο αρχείο που δημιουργήσαμε θα αρχίσουμε να γράφουμε τον κώδικα την φόρμας. Η φόρμα συν των άλλων θα έχει radio buttons, drop down selections και checkboxes, απλά για να δούμε την λειτουργία τους.

<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>My Contact Form</title>
</head>
<body>
<form method="POST" action="mailer.php">
 ONOMA:
 <input type="text" name="name" size="19"><br>
 <br>
 EMail:
 <input type="text" name="email" size="19"><br>
 <br>
 <input type="checkbox" name="check[]" value="blue"> MPLE<br>
 <input type="checkbox" name="check[]" value="green"> PRASSINO<br>
 <input type="checkbox" name="check[]" value="orange"> PORTOKALI <br>
 <br>
 <input type="radio" value="yes" name="radio"> NAI<br>
 <input type="radio" value="no" name="radio"> OXI
 <br>
 <br>
 <select size="1" name="drop_down">
 <option>php</option>
 <option>xml</option>
 <option>asp</option>
 <option>jsp</option>
 </select><br>
 <br>
 MHNYMA:<br>
 <textarea rows="9" name="message" cols="30"></textarea><br>
 <br>
 <input type="submit" value="Submit" name="submit">
</form>
</body>
</html>

Ο παραπάνω κώδικας, δημιουργεί τον πίνακα στον οποίο εμπεριέχεται η φόρμα επικοινωνίας μας. Πρέπει να προσέξουμε στις τιμές που έχει κάθε πεδίο, ώστε να μπορέσουμε να τα αποστείλουμε σωστά στο δεύτερο αρχείο μας που θα αναλάβει να αποστέιλει το email.

Αποστολή Των Στοιχείων

Έχοντας τελειώσει με την φόρμα μας, πρέπει να δημιουργήσουμε ένα δεύτερο αρχείο με όνομα mailer.php, το οποίο θα αποστέλλει τα στοιχεία που συμπληρώνει ο χρήστης στο email που θα επιλέξουμε . Μέσα σε αυτό θα επικολλήσουμε τον κώδικα που ακολουθεί

<?php
if(isset($_POST['submit'])) {
 $to = "email@email.gr";
 $subject = "Form Contact Form";
 $name_field = $_POST['name'];
 $email_field = $_POST['email'];
 $message = $_POST['message'];
 $option = $_POST['radio'];
 $dropdown = $_POST['drop_down'];
 foreach($_POST['check'] as $value) {
 $check_msg .= "Checked: $value\n";
 }
 $body = "From: $name_field\n E-Mail: $email_field\n $check_msg Option: $option\n Drop-Down: $dropdown\n Message:\n $message\n";
 echo "Your Mail Was Sent To $to!";
 mail($to, $subject, $body);
} else {
 echo "Error";
}
?>

Ο παραπάνω κώδικας αναλαμβάνει να αποστείλει όλα τα στοιχεία που έχει εισάγει ο χρήστης στο email μας. Αυτό το κάνει παίρνοντας τις αξίες email,message,radio,drop_down,checkbox και name απο την φόρμα επικοινωνίας μας. Μας στέλνει λοιπόν ένα email με όλες τις επιλογές και τα στοιχεία που συμπλήρωσε ο χρήστης. Επίσης ειδοποιεί τον χρήστη αν το μήνυμα εστάλλει ή παρουσιάστηκε πρόβλημα.

Αντικαθιστούμε το email@email.gr με το email μας στο οποίο θέλουμε να λαμβάνουμε τα στοιχεία της φόρμας, και σώζουμε τα 2 αυτά αρχεία. Τώρα το μόνο που έμεινε είναι να ανεβάσουμε τα αρχεία μας στον server μας, και να δοκιμάσουμε την φόρμα που δημιουργήσαμε. Αυτό θα το κάνουμε αν περιηγηθούμε στην τοποθεσία που ανεβάσαμε τα αρχεία. Για παράδειγμα http://www.test.gr/contact.html.

Μπορείτε να δείτε ένα παράδειγμα της φόρμας ΕΔΩ


Member Area
Άν είστε ήδη συνδρομητής κάντε login με τα στοιχεία σας. Για να γίνετε συνδρομητής πατήστε εδώ

Tags: , , , ,

Pantso { Προσωπική Ιστοσελίδα / Άρθρα Στο GreekTuts }
Ο Παναγιώτης έχει σπουδάσει προγραμματιστής και προγραμματιστής Video Games ενώ τώρα κάνει το Bachelor του σε Computer Science από το Πανεπιστήμιο του Roehampton στο Λονδίνο. Έχει εργαστεί στο Darkfall Online , το πρώτο ελληνικό MMORPG, ως World Builder, είναι BlackBoard Support Certified , ενώ σήμερα εργάζεται ώς HTML Author στην Atcom SA.

42 Σχόλια στο άρθρο Δημιουργήστε Μια Απλή Φόρμα Επικοινωνίας Σε PHP

← Προηγούμενα σχόλια
  • Nancy says:

    Καλημέρα! Έφτιαξα τη φόρμα πολύ εύκολα και δουλεύει ! Όμως τα Ελληνικά τα βλέπω “ιερογλυφικά”. Αλλαξα το “charset=utf-8″ αλλά δεν βλέπω διαφορά. Μήπως μπορείτε να με βοηθήσετε;
    Ευχαριστώ!

    • Pantso says:

      Δοκίμασε στο HTML αρχείο να αλλάξεις στο header το content σε

      http-equiv="Content-Type" content="text/html; charset=iso-8859-7"

      ή σε

      http-equiv="Content-Language" content="el"
  • Anonymous says:

    Γειά χαρά είμαι καινούργιο μέλος και θέλω να πω ευχαριστώ, πήρα μεγάλη βοήθεια κατάφερα να φτιάξω φόρμα επικοινωνίας!!! Και όχι μόνο!

  • Pantso says:

    Καλησπέρα

    Χαζή δεν είναι καμία ερώτηση!!!Οι ερωτήσεις είναι the way to knowledge !
    Πρώτα από όλα χρειάζεσαι έναν server :P ,

    μετά χρειάζεσαι τα στοιχεία σύνδεσης στον FTP. Αυτά συνήθως σου έρχονται με email μετά την παραγγελία.

    Μετά μπορείς να χρησιμοποιήσεις ένα πρόγραμμα όπως το FileZilla, όπου θα βάλεις τα στοιχεία που σου έδωσαν, και θα πατήσεις connect.

    Τα αρχεία της ιστοσελίδας είναι συνήθως σε ένα φάκελο με το όνομα www ή httpdocs. Thats all

  • panor31 says:

    Γεια σας
    Θα κάνω μια ερώτηση που πιθανόν για κάποιους να είναι χαζή.
    Αφού γράψουμε τον κώδικα στα δυό αρχεία μετά πως θα τα ανεβάσουμε στο server?
    π.χ. σε ένα blog?

  • Pantso says:

    Καλησπέρα :D

    Ο πιό εύκολος τρόπος για validation σε φόρμα επικοινωνίας είναι να xρησιμοποιήσεις Javascript. Δες εδώ τι κάνει και θα καταλάβεις

    http://javascript.internet.com/forms/required-fields.html

  • Stratos says:

    Γεια σας. Η φόρμα δουλεύει μια χαρά. Θα ήθελα να κάνω μια ερώτηση. Πως μπορώ να βάλω required fields, τα οποία δε θα επιτρέπουν αποστολή με κενά πεδία;

  • telika kati katafera
    evala arthro ki apo katw ti forma….kai doulevei
    an thes des:

    http://www.geostrategy.gr/contact1.html

    s efxaristw gia ti voithia sou !! (isws se ksanaenoxlisw :P )

  • Giannakopoulos Vas says:

    KALHMERAAAAAAAA !!!!!!!
    telika to:

    $ref = $_SERVER['HTTP_REFERER'];
    header( ‘refresh: 5; url=’.$ref);

    pou tha to topothetisw???

  • καλημέρα
    χθες το ξενυχτησαμε αλλά είχαμε αποτέλεσμα !

    Αυτό στη θέση του: echo “Your Mail Was Sent To $to!”; (??)
    ή μετά το: mail($to, $subject, $body); (??)

  • Pantso says:

    Αυτό είναι ένα άλλο θέμα. Λογικά μπορείς να χρησιμοποιήσεις αυτό

    < ?php
    $ref = $_SERVER['HTTP_REFERER'];
    header( 'refresh: 5; url='.$ref);
    ?>

    αλλά άσε με να το ψάξω λίγο και σου λέω :D

← Προηγούμενα σχόλια

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>