Πολλές φορές χρειάζεται να φτιάξουμε μια φόρμα επικοινωνίας για την ιστοσελίδα μας, με τα πεδία και την λειτουργικότητα που εμείς θέλουμε. Σε αυτό το βοήθημα θα δούμε πως μπορούμε να δημιουργήσουμε μια απλή φόρμα επικοινωνίας από το μηδέν, γράφοντας κώδικα σε 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.
Μπορείτε να δείτε ένα παράδειγμα της φόρμας ΕΔΩ
Άν είστε ήδη συνδρομητής κάντε login με τα στοιχεία σας. Για να γίνετε συνδρομητής πατήστε εδώ

































































39 Σχόλια
oreo script alla iparxi ena provlima.
otan grafo sto minima kati san “asdad” me “” mu to vgazi ligo perierga sto email.
episis pos boro to email pu vazo sto mail field na fenete os to email pu mu estile to minima?
Τι πρόβλημα ακριβώς αντιμετωπίζεις? Δεν κατάλαβα να σου πω την αλήθεια.
Όσο για το email μπορείς να το εμφανίσεις βάζοντας την εντολή
$from = $_POST['email'];
είτε βάζοντας επιπλέον headers με αυτόν τον τρόπο
$headers = “From: $_POST['email']“;
στο mailer.php
Me afto pou mou edoses mou petaei afto to error:
“Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/website/site/mailer.php on line 8″
—
to allo provlima.. an grapso sto textarea ena keimeno pou exei afto to symbolo –> ‘ ή ” <– tha mou to vgali ligo perierga.. dokimase to kai des..
Λοιπόν τον αποστολέα μπορείς να τον εμφανίσεις γράφοντας τον εξής κώδικα στο mailer.php
< ?php if(isset($_POST['submit'])) { $to = "mymail@test.gr"; $subject = "Form Contact Form"; $name_field = $_POST['name']; $email_field = $_POST['email']; $message = $_POST['message']; $option = $_POST['radio']; $dropdown = $_POST['drop_down']; $headers = "From: $email"; 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, $headers); } else { echo "Error"; } ?>Ουσιαστικά δηλαδή συμπεριλαμβάνεις το email του αποστολέα σε ένα header και το συμπεριλαμβάνεις στο function mail().
Τώρα το πρόβλημα με τους χαρακτήρες είναι κάτι που παίζει με το charset, το οποίο ψάχνω και θα σου απαντήσω σύντομα
Για να ξεπεράσεις το πρόβλημα με τα ελληνικά πρέπει να αντικαταστήσεις τις εξής γραμμές κώδικα
βασικα ειμαι καινουριος στο σπορ…και σορρυ για το διπλο ποστ ….αν μπορουσε καποιος να μου εξηγησει τι κανει η εντολη isset
και η εντολη foreach..ευχαριστω
Η εντολή isset ελέγχει αν μια μεταβλητή έχει πάρει τιμή και ότι η τιμή της δεν είναι NULL, ενώ επιστρέφει True ή False.
H foreach είναι εντολή επανάληψης μόνο για πίνακες. Συντάσεται ώς εξής
Ένα απλό παράδειγμα είναι το εξής
$employeeAges; $employeeAges["Lisa"] = "28"; $employeeAges["Jack"] = "16"; $employeeAges["Ryan"] = "35"; $employeeAges["Rachel"] = "46"; $employeeAges["Grace"] = "34"; foreach( $employeeAges as $key => $value){ echo "Name: $key, Age: $value "; }To οποίο θα εμφανίσει
εμ ευχαριστω για το ενδιαφερον αλλα μου δημιουργησες και αλλες αποριες
βρηκα αυτο
$myVariable = array(“Jeff”, “Joe”, “Keith”);
foreach($myVariable as $item) {
echo “Hello ” . $item . “”;
}
Το οποιο εμφανισει
Hello Jeff
Hello Joe
Hello Keith
μπορεις να μοθ εξηγησεις τι εκανες και εβαλες 2 μεταβλητες ?δλδ
$key,$value
Το key() είναι ένα function που απλά επιστρέφει τιν τιμή του πίνακα στο μέρος που δείχνει ο εσωτερικός pointer . Αν ο εσωτερικός pointer δείχνει πέρα απο το πεδίο του πίνακα, ή αν η τιμή είναι μηδέν επιστρέφει NULL
αν σου πω πως δεν καταλαβα …καπως πιο αναλυτικα ?και ενα παραδειγμα ισως αναλυτικο να μου ελυνε τις αποριες
Ωραία δες εδώ
< ?php $array = array( 'fruit1' => 'apple', 'fruit2' => 'orange', 'fruit3' => 'grape', 'fruit4' => 'apple', 'fruit5' => 'apple'); // this cycle echoes all associative array // key where value equals "apple" while ($fruit_name = current($array)) { if ($fruit_name == 'apple') { echo key($array).''; } next($array); } ?>Το παραπάνω πρόγραμμα βγάζει αποτέλεσμα
Θα διαβάσεις καλύτερα το πρόγραμμα θα παρατηρήσεις ότι βγάζει ως αποτέλεσμα όλες τις θέσεις του πίνακα στις οποίες ο εσωτερικός pointer είναι apple
Ελπίζω να έγινα πιο κατανοητός
ευχαριστω το ρωτισα και στην σχολη ..και ειμαι τζιτζι και παλι ευχαριστω
Γεια σας, ήθελα να ρωτήσω, ποιο τμήμα του κώδικα πρέπει να αλλάξω (και τι να γράψω) ώστε όταν πατάω το κουμπί Αποστολή φόρμας, να μην εμφανίζεται ένα κείμενο οπως εδώ, αλλά μια HTML σελίδα. Ευχαριστώ εκ των προτέρον…
ston kodika ( 1. )
to programma mou bgazei error stin grammi 2 des ligo ton kodika sou kai pes mou ti na allakso!
ebala akribos ton kodia (noumero 2 .php) kai mou bgazeiu auto
Parse error: syntax error, unexpected T_ISSET in /home/a9339551/public_html/mailer.php on line 2
Το τρέχεις κανονικά σε Web Server ή σε local server?
Πολύ καλό. Το δοκίμασα και δούλεψε.
Αλλά…….έχει πολλά περισσότερα απ ότι θα ήθελα
Για την ιστοσελίδα μου θα ήθελα μια πιο απλή φόρμα επικοινωνίας.
Όνομα:
email:
Σχόλιο:
Τι αλλαγές να κάνω στον κώδικα της φόρμας και στο mailer.php ?
Καλησπέρα
Για να πετύχεις αυτό που θέλεις πρώτα απόλα θα απομακρύνεις από το contact.html τις γραμμές 19 εώς 33. Μετά στο mailer.php θα απομακρύνεις τις γραμμές 9 και 10 ενώ θα αλλάξεις τον κώδικα στην γραμμή 16 σε
$body = “From: $name_field\n E-Mail: $email_field\n Message:\n $message\n”;
merci beaucoup…..paw na to dokimasw
Εδώ είμαστε αν κάτι δεν δουλέψει όπως πρέπει
Ekana afta pou mou eipes
otan pataw “submit” mou vgazei:
Parse error: syntax error, unexpected ‘:’ in /home/geostrat/public_html/mailer.php on line 16
sti line 16 o kwdikas einai:
$body = “From: $name_field\n email: $email_field\n Message:\n $message\n”;
Χεχεχε συγνώμη γιαυτό…παλιός κώδικας….
Δοκίμασε να βγάλεις και τις γραμμές 12 εώς 14
Πάλι το ίδιο
……………………………………………………………………………………..
contact form:
……………………………………………………………………………………..
ONOMA:
E-Mail:
MHNYMA:
…………………………………………………………………………………………
mailer.php :
…………………………………………………………………………………………
Το mailer.php πρέπει να είναι έτσι
< ?php
if(isset($_POST['submit'])) {
$to = "info@pantso.gr";
$subject = "Form COntact Form";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message\n";
echo "Your Mail Was Sent To $to!";
mail($to, $subject, $body);
} else {
echo "Error";
}
?>
akrivws etsi (ektos ap to info@pantso.gr)
alla pali to idio error
Parse error: syntax error, unexpected ‘:’ in /home/geostrat/public_html/mailer.php on line 10
sto stelnw sto emai sou
Κατέβασε και δοκίμασε αυτό
http://greektuts.net/wp-content/uploads2/2010/04/contact.zip
Γιατί εγώ το δοκιμάζω και σε local και σε live server και παίζει μια χαρά
Sorry…..kati allo tha symvainei
to idio error mou vgazei kai me ta:
http://greektuts.net/wp-content/uploads2/2010/04/contact.zip
Βρήκα ένα συντακτικό λάθος
Κάνε τον κώδικα
$body = “From: $name_field\n E-Mail: $email_field\n Message: $message\n”;
yessssssss…..leitoyrgei !!!!!!!!
an afairesw ti grammi:
echo “Your Mail Was Sent To $to!”;
tha parameinei o visitor stin idia selida?
Αυτό είναι ένα άλλο θέμα. Λογικά μπορείς να χρησιμοποιήσεις αυτό
< ?php
$ref = $_SERVER['HTTP_REFERER'];
header( 'refresh: 5; url='.$ref);
?>
αλλά άσε με να το ψάξω λίγο και σου λέω
καλημέρα
χθες το ξενυχτησαμε αλλά είχαμε αποτέλεσμα !
Αυτό στη θέση του: echo “Your Mail Was Sent To $to!”; (??)
ή μετά το: mail($to, $subject, $body); (??)
KALHMERAAAAAAAA !!!!!!!
telika to:
$ref = $_SERVER['HTTP_REFERER'];
header( ‘refresh: 5; url=’.$ref);
pou tha to topothetisw???
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
)
Γεια σας. Η φόρμα δουλεύει μια χαρά. Θα ήθελα να κάνω μια ερώτηση. Πως μπορώ να βάλω required fields, τα οποία δε θα επιτρέπουν αποστολή με κενά πεδία;
Καλησπέρα
Ο πιό εύκολος τρόπος για validation σε φόρμα επικοινωνίας είναι να xρησιμοποιήσεις Javascript. Δες εδώ τι κάνει και θα καταλάβεις
http://javascript.internet.com/forms/required-fields.html
Γεια σας
Θα κάνω μια ερώτηση που πιθανόν για κάποιους να είναι χαζή.
Αφού γράψουμε τον κώδικα στα δυό αρχεία μετά πως θα τα ανεβάσουμε στο server?
π.χ. σε ένα blog?
Καλησπέρα
Χαζή δεν είναι καμία ερώτηση!!!Οι ερωτήσεις είναι the way to knowledge !
,
Πρώτα από όλα χρειάζεσαι έναν server
μετά χρειάζεσαι τα στοιχεία σύνδεσης στον FTP. Αυτά συνήθως σου έρχονται με email μετά την παραγγελία.
Μετά μπορείς να χρησιμοποιήσεις ένα πρόγραμμα όπως το FileZilla, όπου θα βάλεις τα στοιχεία που σου έδωσαν, και θα πατήσεις connect.
Τα αρχεία της ιστοσελίδας είναι συνήθως σε ένα φάκελο με το όνομα www ή httpdocs. Thats all