Προς το περιεχόμενο

PHP mail form Πρόβλημα!


NiKoS WSN

Προτεινόμενες αναρτήσεις

Δημοσ.

 

>
<form name="contactform" method="post" action="send_form_email.php">
<table width="450px">
</tr>
<tr>
<td valign="top">
 <label for="first_name">Όνομα*</label>
</td>
<td valign="top">
 <input  type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>

<tr>
<td valign="top">
 <label for="email">Email*</label>
</td>
<td valign="top">
 <input  type="text" name="email" maxlength="80" size="30">
</td>

</tr>
<tr>
<td valign="top">
 <label for="comments">Μήνυμα*</label>
</td>
<td valign="top">
 <textarea  name="comments" maxlength="1000" cols="25" rows="6"></textarea>
</td>

</tr>
<tr>
<td colspan="2" style="text-align:center">
 <input type="submit" value="Αποστολή"> 
</td>
</tr>
</table>
</form>

 

 

 

><?php
if(isset($_POST['email'])) {
    
   // EDIT THE 2 LINES BELOW AS REQUIRED
   $email_to = "[email protected]";
   $email_subject = "Μήνυμα από την φόρμα επικοινωνίας του site";
    
    
   function died($error) {
       // your error code can go here
       echo "We are very sorry, but there were error(s) found with the form you submitted. ";
       echo "These errors appear below.<br /><br />";
       echo $error."<br /><br />";
       echo "Please go back and fix these errors.<br /><br />";
       die();
   }
    
   // validation expected data exists
   if(!isset($_POST['first_name']) ||

       !isset($_POST['email']) ||

       !isset($_POST['comments'])) {
       died('We are sorry, but there appears to be a problem with the form you submitted.');      
   }
    
   $first_name = $_POST['first_name']; // required
   
   $email_from = $_POST['email']; // required

   $comments = $_POST['comments']; // required
    
   $error_message = "";
   $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
 if(!preg_match($email_exp,$email_from)) {
   $error_message .= 'Παρακαλώ ελέγξτε το mail σας. Δεν είναι έγκυρο<br />';
 }
 
    $email_message = "Form details below.\n\n";
    
   function clean_string($string) {
     $bad = array("content-type","bcc:","to:","cc:","href");
     return str_replace($bad,"",$string);
   }
    
   $email_message .= "First Name: ".clean_string($first_name)."\n";
   $email_message .= "Email: ".clean_string($email_from)."\n";
   $email_message .= "Comments: ".clean_string($comments)."\n";
    
    
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers); 
?>

<!-- include your own success html here -->

Ευχαριστούμε που επικοινωνήσατε μαζί μας. Θα σας απαντήσουμε όσο πιο γρήγορα μπορούμε

<?php
}
?>

 

 

Είχα βάλει αυτήν την φόρμα σε μία ιστοσελίδα η οποία δουλεύει κανονικά και τώρα θέλω να την βάλω αλλού παίρνω τους δύο κώδικες που σας παρέθεσα το βάζω στο xampp για να δουλέψει η php και ενώ δουλεύει μία χαρά το email δεν μου έρχεται! (έχω βάλει το σωστό email)

 

Δεν βρίσκω λάθος και ο ίδιος κώδικας δουλεύει αυτήν τη στιγμή! μήπως φταίει το xampp;

Δημοσ.

Δεν βρίσκω λάθος και ο ίδιος κώδικας δουλεύει αυτήν τη στιγμή! μήπως φταίει το xampp;

 

Φταίει το ότι δε θα δεις προκοπή με την mail() στα Windows.

 

>@mail($email_to, $email_subject, $email_message, $headers); 

 

Κατ' αρχήν βγάλε το @ από μπροστά γιατί σου κρύβει τα warnings. Κανονικά δε θέλεις να φαίνονται τα σφάλματα στο χρήστη, αλλά εσύ πρέπει κάπως να μπορείς να τα βλέπεις όταν κάνεις development.

 

Θα σου συνιστούσα να χρησιμοποιήσεις κάποιο έτοιμο PHP email class όπως το PHPMailer, με το οποίο και θα δουλεύεις σωστά παντού και θα είναι και πιο εύκολο για σένα.

Δημοσ.

Φταίει το ότι δε θα δεις προκοπή με την mail() στα Windows.

 

>@mail($email_to, $email_subject, $email_message, $headers); 

 

Κατ' αρχήν βγάλε το @ από μπροστά γιατί σου κρύβει τα warnings. Κανονικά δε θέλεις να φαίνονται τα σφάλματα στο χρήστη, αλλά εσύ πρέπει κάπως να μπορείς να τα βλέπεις όταν κάνεις development.

 

Θα σου συνιστούσα να χρησιμοποιήσεις κάποιο έτοιμο PHP email class όπως το PHPMailer, με το οποίο και θα δουλεύεις σωστά παντού και θα είναι και πιο εύκολο για σένα.

 

Άμα το βάλω στον server θα δουλεύει;

Δημοσ.

Άμα το βάλω στον server θα δουλεύει;

 

Δε μπορώ να μαντέψω σήμερα, έχω δώσει την κρυστάλλινη σφαίρα για σέρβις.

Δημοσ.

Εγώ έβαλα το παρακάτω πολύ πιο απλό script της php στον server και δεν δουλεύει.

 

>
<?php
  $name = stripslashes(strip_tags($_POST['name']));
  $email = stripslashes(strip_tags($_POST['email']));
  $message = stripslashes(strip_tags($_POST['msg']));
ob_start();
  
   $headers = 'From: ' . $email . "\r\n" .
             'Reply-To: ' . $email . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
  
  $myEmail = '[email protected]';
  $todayis = date("l, F j, Y, g:i a") ;
  $subject = "A message";   
  $message = "Message: $message  \r \n From: $name  \r \n Reply to: $email";
  
  //sending data
  mail($myEmail, $subject, $message, $headers);
?>


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1253">
<title></title>
</head>
<body>
<form action="mail.php" method="post">
Name
<input type="text" name="name"><p/>Email address
<input type="text" name="email"><p/>Message<br/>
<textarea name="message" cols="40" rows="5"></textarea><p/>
<input type="submit" value="Send"><br/>
</form>
</body>
</html>

 

Όταν συμπληρώσω τα δεδομένα της φόρμας και πατάω το Send βγαίνει μια νέα σελίδα που γράφει: This Account may have reached its limit, is suspended or this domain no longer exists. Γιατί δεν δουλεύει;

Δημοσ.

Δε μπορώ να μαντέψω σήμερα, έχω δώσει την κρυστάλλινη σφαίρα για σέρβις.

Μα αυτά δεν είναι στανταράκια; Εγώ ρωτάω γιατί δεν ξέρω και πολλά απο php!

 

Εγώ έβαλα το παρακάτω πολύ πιο απλό script της php στον server και δεν δουλεύει.

 

>
<?php
  $name = stripslashes(strip_tags($_POST['name']));
  $email = stripslashes(strip_tags($_POST['email']));
  $message = stripslashes(strip_tags($_POST['msg']));
ob_start();
  
   $headers = 'From: ' . $email . "\r\n" .
             'Reply-To: ' . $email . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
  
  $myEmail = '[email protected]';
  $todayis = date("l, F j, Y, g:i a") ;
  $subject = "A message";   
  $message = "Message: $message  \r \n From: $name  \r \n Reply to: $email";
  
  //sending data
  mail($myEmail, $subject, $message, $headers);
?>


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1253">
<title></title>
</head>
<body>
<form action="mail.php" method="post">
Name
<input type="text" name="name"><p/>Email address
<input type="text" name="email"><p/>Message<br/>
<textarea name="message" cols="40" rows="5"></textarea><p/>
<input type="submit" value="Send"><br/>
</form>
</body>
</html>

 

Όταν συμπληρώσω τα δεδομένα της φόρμας και πατάω το Send βγαίνει μια νέα σελίδα που γράφει: This Account may have reached its limit, is suspended or this domain no longer exists. Γιατί δεν δουλεύει;

 

Τι να σου πω; Αν είναι τσέκαρε τον δικό μου γιατί στο ένα μου site δουλεύει άρα το πιο λογικό είναι να σου δουλέψει! Αν δεν δουλέψει μίλα με την εταιρία γιατί λογικά θα έχεις άλλο πρόβλημα εσύ!

Δημοσ.

Τι να σου πω; Αν είναι τσέκαρε τον δικό μου γιατί στο ένα μου site δουλεύει άρα το πιο λογικό είναι να σου δουλέψει! Αν δεν δουλέψει μίλα με την εταιρία γιατί λογικά θα έχεις άλλο πρόβλημα εσύ!

 

Δυστυχώς δεν δουλεύει ούτε το δικό σου script.

Πάει αμέσως το message ή μήπως πρέπει να περάσει λίγη ώρα και ύστερα να ελέγξω το ταχυδρομείο μου;

Δημοσ.

Κάτι δεν έχεις κάνει καλά δες το πάλι απ την αρχή κ βάλε σε ξεχωριστή σελίδες του κώδικες ίσως να δουλέψει η αντέστρεψε τα βάλε επάνω το html code

και μετά to php!

 

Ελπίζω να δουλέψει!

Δημοσ.

Δεν είναι εκεί το πρόβλημα. Και άλλες σελίδες μου έχουν το ίδιο style και λειτουργούν.

Όπως π.χ. το add τεχνικού άρθρου στην βάση δεδομένων. Οι σελίδες αποτελούνται από ενιαία αρχεία ανάμεικτα (html, javascript, css και php).

Δημοσ.

Δυστυχώς δεν δουλεύει ούτε το δικό σου script.

Πάει αμέσως το message ή μήπως πρέπει να περάσει λίγη ώρα και ύστερα να ελέγξω το ταχυδρομείο μου;

 

Πάει κατευθείαν! Σου δείχνει ότι δουλεύει; Έχεις κάνει σωστά αντιγραφή τα αρχεία; σε ένα το html και ξεχωριστό php (send_form_email.php)

Δημοσ.

Να κάνω μια ερώτηση ??

 

Απλά επειδη έχω αναλάβει ένα project και αυτό θα είναι σηκωμένο στο ιντερνετ σε κάποιον server.. (εδω δεν εχω προβλημα το εχω δοκίμάσει και δουλευει)

 

Το ιδιο project θα τρέχει και σε τοπικο επιπέδο για αλλους λόγους... Οι υπολογιστές που θα το τρέχουν θα έχουν προσβαση στο ιντερνετ και θα χρησιμοποιούν ας πουμε τον XAMPP

Λέτε να έχω πρόβλημα στην αποστολή των mail όταν η εφαρμογή τρέχει σε τοπικο επιπεδό; Κανω χρήση της συναρτησης mail. Επίσης τα mail που αποστελονται δεν ειναι απλο κείμενο αλλα και επισυναψεις κυρίως αρχεία .xls και .xlsx ..

Δημοσ.

Να κάνω μια ερώτηση ??

 

Απλά επειδη έχω αναλάβει ένα project και αυτό θα είναι σηκωμένο στο ιντερνετ σε κάποιον server.. (εδω δεν εχω προβλημα το εχω δοκίμάσει και δουλευει)

 

Το ιδιο project θα τρέχει και σε τοπικο επιπέδο για αλλους λόγους... Οι υπολογιστές που θα το τρέχουν θα έχουν προσβαση στο ιντερνετ και θα χρησιμοποιούν ας πουμε τον XAMPP

Λέτε να έχω πρόβλημα στην αποστολή των mail όταν η εφαρμογή τρέχει σε τοπικο επιπεδό; Κανω χρήση της συναρτησης mail. Επίσης τα mail που αποστελονται δεν ειναι απλο κείμενο αλλα και επισυναψεις κυρίως αρχεία .xls και .xlsx ..

 

Τι να σου πω λογικά θα έπρεπε να δουλεύει αλλά ο defacer λέει πως έχουν πρόβλημα τα windows...

Δημοσ.

Πάει κατευθείαν! Σου δείχνει ότι δουλεύει; Έχεις κάνει σωστά αντιγραφή τα αρχεία; σε ένα το html και ξεχωριστό php (send_form_email.php)

 

Δουλεύουν τα δύο files.... Όταν πιέζω το "Αποστολή" δείχνει ένα waiting στην status bar και ψάχνω να βρω που πήγε το message! :rolleyes:

Δημοσ.

Δουλεύουν τα δύο files.... Όταν πιέζω το "Αποστολή" δείχνει ένα waiting στην status bar και ψάχνω να βρω που πήγε το message! :rolleyes:

 

Άμα δουλεύει (το δικό μου script) θα πρέπει να σου πετάει αυτό "Ευχαριστούμε που επικοινωνήσατε μαζί μας. Θα σας απαντήσουμε όσο πιο γρήγορα μπορούμε" το μήνυμα! Στο πετάει;

Αρχειοθετημένο

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

  • Δημιουργία νέου...