Post Pic

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

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

Γίνετε Συνδρομητής

Γραφτείτε στις ενημερώσεις

Powered by FeedBurner

Γίνετε Συνδρομητής

39 Σχόλια

17:11 / 11.10.09
#1

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?

00:56 / 12.10.09
#2

Τι πρόβλημα ακριβώς αντιμετωπίζεις? Δεν κατάλαβα να σου πω την αλήθεια.
Όσο για το email μπορείς να το εμφανίσεις βάζοντας την εντολή

$from = $_POST['email'];

είτε βάζοντας επιπλέον headers με αυτόν τον τρόπο

$headers = “From: $_POST['email']“;

στο mailer.php

10:38 / 12.10.09
#3

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..

12:07 / 12.10.09
#4

Λοιπόν τον αποστολέα μπορείς να τον εμφανίσεις γράφοντας τον εξής κώδικα στο 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, το οποίο ψάχνω και θα σου απαντήσω σύντομα :D




18:06 / 12.10.09
#5

Για να ξεπεράσεις το πρόβλημα με τα ελληνικά πρέπει να αντικαταστήσεις τις εξής γραμμές κώδικα

21:59 / 02.12.09
#6

βασικα ειμαι καινουριος στο σπορ…και σορρυ για το διπλο ποστ ….αν μπορουσε καποιος να μου εξηγησει τι κανει η εντολη isset
και η εντολη foreach..ευχαριστω

23:42 / 02.12.09
#7

Η εντολή isset ελέγχει αν μια μεταβλητή έχει πάρει τιμή και ότι η τιμή της δεν είναι NULL, ενώ επιστρέφει True ή False.

H foreach είναι εντολή επανάληψης μόνο για πίνακες. Συντάσεται ώς εξής

foreach (array_expression as $value)

Ένα απλό παράδειγμα είναι το εξής

$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 οποίο θα εμφανίσει

Name: Lisa, Age: 28
Name: Jack, Age: 16
Name: Ryan, Age: 35
Name: Rachel, Age: 46
Name: Grace, Age: 34
02:11 / 04.12.09
#8

εμ ευχαριστω για το ενδιαφερον αλλα μου δημιουργησες και αλλες αποριες

βρηκα αυτο

$myVariable = array(“Jeff”, “Joe”, “Keith”);
foreach($myVariable as $item) {
echo “Hello ” . $item . “”;
}
Το οποιο εμφανισει
Hello Jeff
Hello Joe
Hello Keith

μπορεις να μοθ εξηγησεις τι εκανες και εβαλες 2 μεταβλητες ?δλδ
$key,$value

14:50 / 04.12.09
#9

Το key() είναι ένα function που απλά επιστρέφει τιν τιμή του πίνακα στο μέρος που δείχνει ο εσωτερικός pointer . Αν ο εσωτερικός pointer δείχνει πέρα απο το πεδίο του πίνακα, ή αν η τιμή είναι μηδέν επιστρέφει NULL

16:21 / 04.12.09
#10

αν σου πω πως δεν καταλαβα …καπως πιο αναλυτικα ?και ενα παραδειγμα ισως αναλυτικο να μου ελυνε τις αποριες

19:50 / 04.12.09
#11

Ωραία δες εδώ

< ?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);
}
?>

Το παραπάνω πρόγραμμα βγάζει αποτέλεσμα

fruit1
fruit4
fruit5

Θα διαβάσεις καλύτερα το πρόγραμμα θα παρατηρήσεις ότι βγάζει ως αποτέλεσμα όλες τις θέσεις του πίνακα στις οποίες ο εσωτερικός pointer είναι apple

Ελπίζω να έγινα πιο κατανοητός :D

03:16 / 16.12.09
#12

ευχαριστω το ρωτισα και στην σχολη ..και ειμαι τζιτζι και παλι ευχαριστω

12:00 / 27.12.09
#13

Γεια σας, ήθελα να ρωτήσω, ποιο τμήμα του κώδικα πρέπει να αλλάξω (και τι να γράψω) ώστε όταν πατάω το κουμπί Αποστολή φόρμας, να μην εμφανίζεται ένα κείμενο οπως εδώ, αλλά μια HTML σελίδα. Ευχαριστώ εκ των προτέρον…

18:31 / 11.04.10
#14

ston kodika ( 1. )
to programma mou bgazei error stin grammi 2 des ligo ton kodika sou kai pes mou ti na allakso!

20:18 / 11.04.10
#15

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

00:21 / 12.04.10
#16

Το τρέχεις κανονικά σε Web Server ή σε local server?

17:24 / 21.04.10
#17

Πολύ καλό. Το δοκίμασα και δούλεψε.
Αλλά…….έχει πολλά περισσότερα απ ότι θα ήθελα :)

Για την ιστοσελίδα μου θα ήθελα μια πιο απλή φόρμα επικοινωνίας.

Όνομα:
email:
Σχόλιο:

Τι αλλαγές να κάνω στον κώδικα της φόρμας και στο mailer.php ?

22:13 / 21.04.10
#18

Καλησπέρα

Για να πετύχεις αυτό που θέλεις πρώτα απόλα θα απομακρύνεις από το contact.html τις γραμμές 19 εώς 33. Μετά στο mailer.php θα απομακρύνεις τις γραμμές 9 και 10 ενώ θα αλλάξεις τον κώδικα στην γραμμή 16 σε

$body = “From: $name_field\n E-Mail: $email_field\n Message:\n $message\n”;

22:23 / 21.04.10
#19

merci beaucoup…..paw na to dokimasw

22:50 / 21.04.10
#20

Εδώ είμαστε αν κάτι δεν δουλέψει όπως πρέπει :D

23:28 / 21.04.10
#21

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”;

23:36 / 21.04.10
#22

Χεχεχε συγνώμη γιαυτό…παλιός κώδικας….
Δοκίμασε να βγάλεις και τις γραμμές 12 εώς 14

00:00 / 22.04.10
#23

Πάλι το ίδιο :(
……………………………………………………………………………………..
contact form:
……………………………………………………………………………………..

ONOMA:

E-Mail:

MHNYMA:

…………………………………………………………………………………………
mailer.php :
…………………………………………………………………………………………

00:02 / 22.04.10
#24

Το 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";
}
?>

00:08 / 22.04.10
#25

akrivws etsi (ektos ap to info@pantso.gr)
alla pali to idio error

00:09 / 22.04.10
#26

Parse error: syntax error, unexpected ‘:’ in /home/geostrat/public_html/mailer.php on line 10

00:13 / 22.04.10
#27

sto stelnw sto emai sou

00:14 / 22.04.10
#28

Κατέβασε και δοκίμασε αυτό

http://greektuts.net/wp-content/uploads2/2010/04/contact.zip

Γιατί εγώ το δοκιμάζω και σε local και σε live server και παίζει μια χαρά

00:23 / 22.04.10
#29

Sorry…..kati allo tha symvainei
to idio error mou vgazei kai me ta:
http://greektuts.net/wp-content/uploads2/2010/04/contact.zip

00:32 / 22.04.10
#30

Βρήκα ένα συντακτικό λάθος

Κάνε τον κώδικα
$body = “From: $name_field\n E-Mail: $email_field\n Message: $message\n”;

00:43 / 22.04.10
#31

yessssssss…..leitoyrgei !!!!!!!!

an afairesw ti grammi:
echo “Your Mail Was Sent To $to!”;

tha parameinei o visitor stin idia selida?

00:55 / 22.04.10
#32

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

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

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

10:29 / 22.04.10
#33

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

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

00:50 / 23.04.10
#34

KALHMERAAAAAAAA !!!!!!!
telika to:

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

pou tha to topothetisw???

14:04 / 23.04.10
#35

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 )

14:40 / 18.06.10
#36

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

18:42 / 18.06.10
#37

Καλησπέρα :D

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

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

15:55 / 09.07.10
#38

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

16:23 / 09.07.10
#39

Καλησπέρα

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

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

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

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

Trackbacks - Pingbacks

Αφήστε ένα σχόλιο

* Το όνομα σας, το Email, και το σχόλιο είναι απαιτούμενα

Γραφτείτε στις Email Ενημερώσεις

Εισάγετε το email σας:

Powered by FeedBurner

Log In

Register

Lost your Password?

Tag Cloud

Οι Φίλοι μας στο Twitter

lennondtps
FORADA
papaki
gegenos
jsclavos
tophostGR
gkapraras
wdfgr
nfountas
zouri9
Th3Ag3nt
ThodorisV
thevoyager
techfansGR
wp2blog
St0iK
andreas_m68
herath72
Dimitraakis
silve992
kymagr
papano
amorphis_
g_argyrakis
gstam78
nikos171984
gkatsampirhs
GamesHellasGR
kalliophhhh
dimsim7
giorgioret
Zoitsa_2010
ultrathunder
Weird_AL
fotisk
payne4life
splusgr
Chrysanthospro
Serderides
LewisHowes
bartvii
hambos227
ideodoxeio
BeBestT
gamosgamos
Φίλοι: 271 Μας ακολουθούν: 221

To GreekTuts Στο Διαδύκτιο

Bookmark & Share

Γίνε Συνδρομητής Στο GreekTuts


Κερδίστε πρόσβαση σε επιπλέον υλικό και άρθρα, αλλά και πολλές άλλες παροχές και προσφορές αγοράζοντας μία απο τις συνδρομές που σας προσφέρει το GreekTuts.

Γράψτε Για Το GreekTuts


Θέλετε και εσείς να γράψετε άρθρα για το GreekTuts; Διαβάστε περισσότερα εδώ. Οποιοσδήποτε μπορεί να στείλει, γι'αυτό αδράξτε την ευκαιρία και στείλτε μας και εσείς.