Πρόβλημα με φόρμα επικοινωνίας.

Ερωτήσεις και απαντήσεις σχετικές με την HTML, XHTML και την κατασκευή σελίδων για το Web.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
ibizakias
Δημοσιεύσεις: 154
Εγγραφή: 23 Απρ 2008 11:34

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από ibizakias » 09 Μάιος 2009 22:05

Έχω φτιάξει μια φόρμα επικοινωνίας σε html και συνδέεται με ένα αρχείο php. Το πρόβλημα που αντιμετωπίζω είναι πως δεν μου έρχονται στο mail όλα τα στοιχεία της φόρμας. Παρακάτω παραθέτω τον κώδικα που έχω γράψει. Τι πρέπει να αλλάξω; Ευχαριστώ προκαταβολικά.

Κώδικας στο αρχείο html:

Κώδικας: Επιλογή όλων

<form id="contactForm" method="" action="mail.php">
 <table align="center" width="400">
  <tr>
   <td align="right"><label for="name">Ονοματεπώνυμο&#58;</label></td>
   <td><input id="name" name="name" type="text" size="35" maxlength="35" /></td>
  </tr>
  <tr>
   <td align="right"><label for="address">Διεύθυνση&#58;</label></td>
   <td><input id="address" name="address" type="text" size="35" /></td>
  </tr>
  <tr>
   <td align="right"><label for="zc">Τ.Κ.&#58;</label></td>
   <td><input id="zc" name="zc" type="text" size="5" maxlength="5" /></td>
  </tr>
  <tr>
   <td align="right"><label for="phone">Τηλέφωνο&#58;</label></td>
   <td><input id="phone" name="phone" type="text" size="10" maxlength="10" /></td>
  </tr>
  <tr>
   <td align="right"><input type="submit" value="Αποστολή" /></td>
   <td align="left"><input type="reset" value="Καθαρισμός" /></td>
  </tr>
 </table>
</form>
Κώδικας στο αρχείο php:

Κώδικας: Επιλογή όλων

<?php
//declare our variables
$name = $_GET&#91;'name'&#93;;
$address = $_GET&#91;'address'&#93;;
$zc = $_GET&#91;'zc'&#93;;
$phone = $_GET&#91;'phone'&#93;;
//get todays date
$todayis = date&#40;"l, F j, Y, g&#58;i a"&#41; ;
//set a title for the message
$subject = "A message";
$message = " Message&#58; $comment \r \n From&#58; $name  \r \n Reply to&#58; $email";

//put your email address here
mail&#40;"mail@mail.gr", $subject, $message&#41;;
?>
<!--Display a thankyou message in the callback -->
<h1><span>Thank you  <h10><?php echo $name ?></h10></span></h1>
<p>
  <span>Your message will be answered as soon as possible.</span>
</p>
<h3>Message sent on&#58; </h3>
<p>
  <span><?php echo $todayis ?></span>
</p>


Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από vassilism » 09 Μάιος 2009 23:13

Στο αρχείο html βάλε:

Κώδικας: Επιλογή όλων

method="post"
Και το mail.php κάνε το έτσι:

Κώδικας: Επιλογή όλων

<?php
//declare our variables
$name = $_POST&#91;'name'&#93;;
$address = $_POST&#91;'address'&#93;;
$zc = $_POST&#91;'zc'&#93;;
$phone = $_POST&#91;'phone'&#93;;
//get todays date
$todayis = date&#40;"l, F j, Y, g&#58;i a"&#41; ;
//set a title for the message
$subject = "A message";
$message = "<b>name</b>&#58; " .$name."<br>\n".
           "<b>address</b>&#58; " .address."<br>\n".
		   "<b>zc</b>&#58; " .zc."<br>\n".
		   "<b>phone</b>&#58; " .phone; 

//put your email address here
mail&#40;"mail@mail.gr", $subject, $message&#41;;
?>
<!--Display a thankyou message in the callback -->
<h1><span>Thank you  <h10><?php echo $name ?></h10></span></h1>
<p>
  <span>Your message will be answered as soon as possible.</span>
</p>
<h3>Message sent on&#58; </h3>
<p>
  <span><?php echo $todayis ?></span>
</p>

ibizakias
Δημοσιεύσεις: 154
Εγγραφή: 23 Απρ 2008 11:34

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από ibizakias » 09 Μάιος 2009 23:37

Καταρχήν ευχαριστώ για την απάντηση σου. Έγραψα τον κώδικα που μου είπες αλλά έχω τα εξής 2 προβλήματα:

1)Το mail έρχεται σαν ενοχλητική αλληλογραφεία
2)Στο mail εμφανίζεται το παρακάτω:

<b>name</b>: Μάκης<br>
<b>address</b>: address<br>
<b>zc</b>: zc<br>
<b>phone</b>: phone

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

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από vassilism » 10 Μάιος 2009 03:21

Εμ πώς να τα πάρει αφού στα έδωσα λάθος :doh: :lol:
Την μεταβλητή message κάνε την έτσι:

Κώδικας: Επιλογή όλων

$message = "<b>name</b>&#58; " .$name."<br>\n". 
"<b>address</b>&#58; " .$address."<br>\n". 
"<b>zc</b>&#58; " .$zc."<br>\n". 
"<b>phone</b>&#58; " .$phone; 

ibizakias
Δημοσιεύσεις: 154
Εγγραφή: 23 Απρ 2008 11:34

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από ibizakias » 10 Μάιος 2009 14:02

Να 'σαι καλά φίλε! Παίζει άψογα. Θα μπορούσα να έχω στην φόρμα και ένα πεδίο που να έχει κάποιο προκαθορισμένο κείμενο; Δηλαδή το πεδίο να μην το συμπληρώνει ο χρήστης αλλά να έχει από μόνο του κάποιο κείμενο μέσα. Τι πρέπει να αλλάξω στο αρχείο html και στο php για να γίνει αυτό; Ευχαριστώ και πάλι!

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από vassilism » 10 Μάιος 2009 21:19

Κώδικας: Επιλογή όλων

<input value="Vassilis" id="name" name="name" type="text" size="35" maxlength="35" />
Το παραπάνω θα σου εμφανίσει το κείμενο Vassilis στο πεδίο name της φόρμας σου, επειδή πρόσθεσα το value="Vassilis".

ibizakias
Δημοσιεύσεις: 154
Εγγραφή: 23 Απρ 2008 11:34

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από ibizakias » 10 Μάιος 2009 22:09

Ωραία! Αν θέλω όμως να προσθέσω ένα extra πεδίο, θα γράψω αυτό που μου είπες και μετά τι πρέπει να αλλάξω στο php αρχείο; Επίσης πως κάνω ένα πεδίο να είναι υποχρεωτικό; Πάλι δεν θα πρέπει να αλλάξει κάτι στο php αρχείο για να το τσεκάρει και σε περίπτωση που δεν το συμπληρώσει ο χρήστης να του βγάζει κάποιο μήνυμα;


ibizakias
Δημοσιεύσεις: 154
Εγγραφή: 23 Απρ 2008 11:34

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από ibizakias » 11 Μάιος 2009 13:50

Λοιπόν το html αρχείο το έκανα έτσι:

Κώδικας: Επιλογή όλων

<form id="contactForm" method="post" action="mail.php">
 <table align="center" width="400">
  <tr>
   <td align="right"><label for="name">Ονοματεπώνυμο&#58;</label></td>
   <td><input id="name" name="name" type="text" size="35" maxlength="35" /></td>
  </tr>
  <tr>
   <td align="right"><label for="address">Διεύθυνση&#58;</label></td>
   <td><input id="address" name="address" type="text" size="35" /></td>
  </tr>
  <tr>
   <td align="right"><label for="zc">Τ.Κ.&#58;</label></td>
   <td><input id="zc" name="zc" type="text" size="5" maxlength="5" /></td>
  </tr>
  <tr>
   <td align="right"><label for="phone">Τηλέφωνο&#58;</label></td>
   <td><input id="phone" name="phone" type="text" size="10" maxlength="10" /></td>
  </tr>
  <tr>
   <td align="right"><label for="fsubject">Θέμα&#58;</label></td>
   <td><input id="fsubject" name="fsubject" type="text" size="35" maxlength="35" value="otidipote" /></td>
  </tr>
  <tr>
   <td align="right"><input type="submit" value="Αποστολή" /></td>
   <td align="left"><input type="reset" value="Καθαρισμός" /></td>
  </tr>
 </table>
</form>
Και το php αρχείο το έκανα έτσι:

Κώδικας: Επιλογή όλων

<?php 
//declare our variables 
$name = $_POST&#91;'name'&#93;; 
$address = $_POST&#91;'address'&#93;; 
$zc = $_POST&#91;'zc'&#93;; 
$phone = $_POST&#91;'phone'&#93;; 
//get todays date 
$todayis = date&#40;"l, F j, Y, g&#58;i a"&#41; ; 
//set a title for the message 
$subject = "A message"; 
$message = "<b>name</b>&#58; " .$name."<br>\n". 
"<b>address</b>&#58; " .$address."<br>\n". 
"<b>zc</b>&#58; " .$zc."<br>\n". 
"<b>phone</b>&#58; " .$phone."<br>\n".
"<b>fsubject</b>&#58; " .$fsubject;

//put your email address here 
mail&#40;"xxx@xxx.gr", $subject, $message&#41;; 
?> 
<!--Display a thankyou message in the callback --> 
<h3><span>Το μήνυμα έσταλη. Ευχαριστούμε! <h5><?php echo $name ?></h5></span></h3> 
<p> 
  <span></span> 
</p> 
<h3>Το μήνυμα εστάλη&#58;</h3> 
<p> 
  <span><?php echo $todayis ?></span> 
</p>
Αλλά στο mail που έρχεται δεν μου βγάζει το θέμα. Μάλλον κάτι είναι λάθος κάτι στο php αρχείο.
Τελευταία επεξεργασία από το μέλος ibizakias την 12 Ιουν 2009 17:35, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από vassilism » 11 Μάιος 2009 16:24

Λογικά στο θέμα σου βγάζει το κείμενο A message.
Σωστά?

ibizakias
Δημοσιεύσεις: 154
Εγγραφή: 23 Απρ 2008 11:34

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από ibizakias » 11 Μάιος 2009 16:43

Ναι τελικά το έλυσα αυτό! Τώρα προσπαθώ να κάνω ένα validation των πεδίων πριν σταλεί το mail. Απλά να τσεκάρει ότι το πεδίο δεν είναι κενό. Προς το παρόν έχω φτιάξει αυτό:

Κώδικας: Επιλογή όλων

if &#40;!empty&#40;$_POST&#91;'name'&#93;&#41;&#41;&#123;
$msg = "name&#58; $_POST&#91;name&#93; ";
&#125;else&#123;
$name = NULL;
echo "Παρακαλώ συμπληρώστε το ονοματεπώνυμό σας!<br />";
&#125;
αλλά δεν συμβαδίζει και πολύ με τα υπόλοιπα...

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από vassilism » 11 Μάιος 2009 20:28

Χωρίς να το έχω τρέξει:

Κώδικας: Επιλογή όλων

<?php 
//declare our variables
$name = $_POST&#91;'name'&#93;;
$address = $_POST&#91;'address'&#93;;
$zc = $_POST&#91;'zc'&#93;;
$phone = $_POST&#91;'phone'&#93;;
//get todays date
$todayis = date&#40;"l, F j, Y, g&#58;i a"&#41; ;
//set a title for the message
$subject = "A message";
$message = "<b>name</b>&#58; " .$name."<br>\n".
"<b>address</b>&#58; " .$address."<br>\n".
"<b>zc</b>&#58; " .$zc."<br>\n".
"<b>phone</b>&#58; " .$phone."<br>\n".
"<b>fsubject</b>&#58; " .$fsubject; 

if&#40;$name == '' || $address == '' || $zc == '' || $phone == ''&#41;
&#123;
if&#40;$name == ''&#41; &#123;  $error .= 'Den grapsate to onoma sas<br />';&#125;
if&#40;$address == ''&#41; &#123; $error .= 'Den grapsate to address sas<br />';&#125;
if&#40;$zc ==''&#41;&#123; $error .= 'Den grapsate to zc sas<br />';&#125;
if&#40;$phone ==''&#41;&#123; $error .= 'Den grapsate to phone sas<br />';&#125;
&#125;  
else&#123;
//put your email address here
mail&#40;"sales@2helpu.gr", $subject, $message&#41;;
$all_ok ='Το μήνυμα έσταλη. Ευχαριστούμε!';
?>
<!--Display a thankyou message in the callback -->
<? if&#40;$all_ok&#41; &#123; ?><h3><span><? echo $all_ok;  &#125; ?><h5><?php echo $name ?></h5></span></h3>
<p>
  <span></span>
</p>
<h3>Το μήνυμα εστάλη&#58;</h3>
<p>
  <span><?php echo $todayis ?></span>
</p> 
<? if&#40;$error !=''&#41; &#123; ?><? echo $error; &#125;?>

ibizakias
Δημοσιεύσεις: 154
Εγγραφή: 23 Απρ 2008 11:34

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από ibizakias » 13 Μάιος 2009 15:30

Μου βγάζει ότι υπάρχει κάποιο σφάλμα αλλά δεν μου λέει τι συγκεκριμένα. Πάντως το mail δεν στέλνετε. Επίσης για να μην είναι το τηλέφωνο υποχρεωτικό αλλά να είναι τα υπόλοιπα έκανα τον κώδικα έτσι:

Κώδικας: Επιλογή όλων

<?php 
//declare our variables 
$name = $_POST&#91;'name'&#93;; 
$address = $_POST&#91;'address'&#93;; 
$zc = $_POST&#91;'zc'&#93;; 
$phone = $_POST&#91;'phone'&#93;; 
//get todays date 
$todayis = date&#40;"l, F j, Y, g&#58;i a"&#41; ; 
//set a title for the message 
$subject = "A message"; 
$message = "<b>name</b>&#58; " .$name."<br>\n". 
"<b>address</b>&#58; " .$address."<br>\n". 
"<b>zc</b>&#58; " .$zc."<br>\n". 
"<b>phone</b>&#58; " .$phone."<br>\n". 
"<b>fsubject</b>&#58; " .$fsubject; 

if&#40;$name == '' || $address == '' || $zc == ''&#41; 
&#123; 
if&#40;$name == ''&#41; &#123;  $error .= 'Den grapsate to onoma sas<br />';&#125; 
if&#40;$address == ''&#41; &#123; $error .= 'Den grapsate to address sas<br />';&#125; 
if&#40;$zc ==''&#41;&#123; $error .= 'Den grapsate to zc sas<br />';&#125; 
&#125;  
else&#123; 
//put your email address here 
mail&#40;"mail@mail.gr", $subject, $message&#41;; 
$all_ok ='Το μήνυμα έσταλη. Ευχαριστούμε!'; 
?> 
<!--Display a thankyou message in the callback --> 
<? if&#40;$all_ok&#41; &#123; ?><h3><span><? echo $all_ok;  &#125; ?><h5><?php echo $name ?></h5></span></h3> 
<p> 
  <span></span> 
</p> 
<h3>Το μήνυμα εστάλη&#58;</h3> 
<p> 
  <span><?php echo $todayis ?></span> 
</p> 
<? if&#40;$error !=''&#41; &#123; ?><? echo $error; &#125;?>
Απλά υπάρχει το πρόβλημα που ανέφερα και πιο πάνω. Το ψάχνω και εγώ αν και από php δεν ξέρω σχεδόν τίποτα!

ibizakias
Δημοσιεύσεις: 154
Εγγραφή: 23 Απρ 2008 11:34

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από ibizakias » 13 Μάιος 2009 16:50

Μετά από ψάξιμο έβαλα το παρακάτω μέσα στην html σελίδα. Βέβαια δεν παίζει επειδή ίσως φταίει κάποια ρύθμιση αλλά ίσως να είμαι κοντά!

Κώδικας: Επιλογή όλων

<script language="JavaScript" type="text/javascript">

//function to check empty fields

function isEmpty&#40;strfield1, strfield2, strfield3&#41; &#123;


//change "field1, field2 and field3" to your field names
strfield1 = document.forms&#91;0&#93;.name.value 
strfield2 = document.forms&#91;0&#93;.address.value
strfield3 = document.forms&#91;0&#93;.zc.value

  //name field
    if &#40;strfield1 == "" || strfield1 == null || !isNaN&#40;strfield1&#41; || strfield1.charAt&#40;0&#41; == ' '&#41;
    &#123;
    alert&#40;"\"Name\" is a mandatory field.\nPlease amend and retry."&#41;
    return false;
    &#125;

  //url field 
    if &#40;strfield2 == "" || strfield2 == null || strfield2.charAt&#40;0&#41; == ' '&#41;
    &#123;
    alert&#40;"\"URL\" is a mandatory field.\nPlease amend and retry."&#41;
    return false;
    &#125;

  //title field 
    if &#40;strfield3 == "" || strfield3 == null || strfield3.charAt&#40;0&#41; == ' '&#41;
    &#123;
    alert&#40;"\"Link title\" is a mandatory field.\nPlease amend and retry."&#41;
    return false;
    &#125;
    return true;
&#125;



//function that performs all functions, defined in the onsubmit event handler

function check&#40;form&#41;&#123;
if &#40;isEmpty&#40;form.field1&#41;&#123;
  if &#40;isEmpty&#40;form.field2&#41;&#123;
    if &#40;isEmpty&#40;form.field3&#41;&#123;
		  return true;
		&#125;
	  &#125;
  &#125;
&#125;
return false;
&#125;

</script>
Αυτό το έβαλα μέσα στο head της σελίδας!

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με φόρμα επικοινωνίας.

Δημοσίευση από vassilism » 13 Μάιος 2009 18:35

Αυτό να το βγάλεις γιατί δεν χρειάζεται.
Στην ουσία κάνεις validation με javascript ενώ έχουμε κάνει το ίδιο ακριβώς παραπάνω με php που είναι και η καλύτερη μέθοδος.
Είναι καλύτερα και ποιο ασφαλές με php διότι εκτελείτε στον server ενώ με javascript είναι πολύ εύκολο κάποιος να προσπεράσει το validation.

Στείλε σε ένα zip τα αρχεία που χρησιμοποιείς αυτή τη στιγμή να τα τρέξω.

Απάντηση

Επιστροφή στο “HTML και XHTML”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες