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

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
Άβαταρ μέλους
canopus
Δημοσιεύσεις: 148
Εγγραφή: 23 Φεβ 2009 12:05

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

Δημοσίευση από canopus » 31 Ιούλ 2012 19:58

Καλημέρα /καλησπέρα


Αντιμετωπίζω το εξής πρόβλημα:

Έχω μια φόρμα επικοινωνίας με έναν αριθμό από πεδία. Η φόρμα λειτουργεί κανονικά.

Αυτό που θέλω να κάνω είναι το εξής.

Στην φόρμα θέλω να προσθέσω 1 πεδίο επισύναψης αρχείου. Όταν ο χρήστης συμπληρώσει την φόρμα τα στοιχεία θέλω να φεύγουν στο mail μου χωρίς τα αρχεία να αποθηκεύονται στον Server.

Είδα και το παράδειγμα :o με την φόρμα του vassilism (http://www.freestuff.gr/forums/viewtopic.php?t=32228 ) αλλά δεν έβγαλα και πολλά συμπεράσματα για το πώς θα το κάνω..

Η φόρμα είναι εδώ.
aggelies-akiniton.eu/1/contacts.html

τα αρχεία που χρησιμοποιούνται για την φόρμα είναι

forms/js/form-validation.js ( πεδία που δεν έχουν να κάνουν με το attach )
forms/send-mail.php ( εδώ έχω και τον κώδικα για το attach : δεν βγάζω άκρη!!! )

ΥΣ. Στην φόρμα δεν έχει μπει ακόμα έλεγχος.
Το mail φεύγει κανονικά. τα στοιχεία έρχονται όλα, εκτός από την φωτογραφία.

Άβαταρ μέλους
canopus
Δημοσιεύσεις: 148
Εγγραφή: 23 Φεβ 2009 12:05

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

Δημοσίευση από canopus » 01 Αύγ 2012 10:51

Τι @:##$@ είμαι…


Ο κώδικας για το forms/send-mail.php είναι αυτός:

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

<?php
//vars
$subject = $_POST&#91;'subject'&#93;;
$to = explode&#40;',', $_POST&#91;'to'&#93; &#41;;

$from = $_POST&#91;'email'&#93;;

//data
$msg = "category&#58; "  .$_POST&#91;'category'&#93;    ."<br>\n";
$msg .= "nomos&#58; "  .$_POST&#91;'nomos'&#93;    ."<br>\n";
$msg .= "place&#58; "  .$_POST&#91;'place'&#93;    ."<br>\n";
$msg .= "idws&#58; "  .$_POST&#91;'idws'&#93;    ."<br>\n";
$msg .= "address&#58; "  .$_POST&#91;'adrs'&#93;    ."<br>\n";
$msg .= "price&#58; "  .$_POST&#91;'price'&#93;    ."<br>\n";
$msg .= "T.M&#58; "  .$_POST&#91;'tm'&#93;    ."<br>\n";
$msg .= "Rooms&#58; "  .$_POST&#91;'roomss'&#93;    ."<br>\n";
$msg .= "bathroom&#58; "  .$_POST&#91;'bothrm'&#93;    ."<br>\n";
$msg .= "floor&#58; "  .$_POST&#91;'frst'&#93;    ."<br>\n";
$msg .= "kalorifer&#58; "  .$_POST&#91;'hot'&#93;    ."<br>\n";
$msg .= "epitreponte-zwa&#58; "  .$_POST&#91;'year'&#93;    ."<br>\n";
$msg .= "palaiotita&#58; "  .$_POST&#91;'cnstr'&#93;    ."<br>\n";
$msg .= "prking&#58; "  .$_POST&#91;'prking'&#93;    ."<br>\n";
$msg .= "mpalkonia&#58; "  .$_POST&#91;'vrnt'&#93;    ."<br>\n";
$msg .= "apothiki&#58; "  .$_POST&#91;'dsk'&#93;    ."<br>\n";
$msg .= "platos&#58; "  .$_POST&#91;'tzk'&#93;    ."<br>\n";
$msg .= "thesh&#58; "  .$_POST&#91;'posttion'&#93;    ."<br>\n";
$msg .= "klasi&#58; "  .$_POST&#91;'clss'&#93;    ."<br>\n";
$msg .= "COMMENTS&#58; "  .$_POST&#91;'comments'&#93;    ."<br>\n";
$msg .= "name&#58; "  .$_POST&#91;'name'&#93;    ."<br>\n";
$msg .= "last&#58; "  .$_POST&#91;'last'&#93;    ."<br>\n";
$msg .= "EMAIL&#58; "  .$_POST&#91;'email'&#93;    ."<br>\n";
$msg .= "web&#58; "  .$_POST&#91;'web'&#93;    ."<br>\n";


//Headers
$headers  = "MIME-Version&#58; 1.0\r\n";
$headers .= "Content-type&#58; text/html; charset=UTF-8\r\n";
$headers .= "From&#58; <".$from. ">" ;


	$strSid = md5&#40;uniqid&#40;time&#40;&#41;&#41;&#41;;
	$strHeader .= "MIME-Version&#58; 1.0\n";
	$strHeader .= "Content-Type&#58; multipart/mixed; boundary=\"".$strSid."\"\n\n";
	$strHeader .= "This is a multi-part message in MIME format.\n";

	$strHeader .= "--".$strSid."\n";
	$strHeader .= "Content-type&#58; text/html; charset=utf-8\n";
	$strHeader .= "Content-Transfer-Encoding&#58; 7bit\n\n";
	$strHeader .= $strMessage."\n\n";





	if&#40;$_FILES&#91;"fileAttach"&#93;&#91;"name"&#93; != ""&#41;
	&#123;
		$strFilesName = $_FILES&#91;"fileAttach"&#93;&#91;"name"&#93;;
		$strContent = chunk_split&#40;base64_encode&#40;file_get_contents&#40;$_FILES&#91;"fileAttach"&#93;&#91;"tmp_name"&#93;&#41;&#41;&#41;; 
		$strHeader .= "--".$strSid."\n";
		$strHeader .= "Content-Type&#58; application/octet-stream; name=\"".$strFilesName."\"\n"; 
		$strHeader .= "Content-Transfer-Encoding&#58; base64\n";
		$strHeader .= "Content-Disposition&#58; attachment; filename=\"".$strFilesName."\"\n\n";
		$strHeader .= $strContent."\n\n";
	&#125;




//send for each mail
foreach&#40;$to as $mail&#41;&#123;
   mail&#40;$mail, $subject, $msg, $headers, $strHeader&#41;;
&#125;

?>

Άβαταρ μέλους
canopus
Δημοσιεύσεις: 148
Εγγραφή: 23 Φεβ 2009 12:05

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

Δημοσίευση από canopus » 02 Αύγ 2012 14:22

ούτε με αυτόν τον τρόπο φεύγει η φωτογραφεία...

τι λάθος κάνω ρε παιδια;

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

<?php 

//vars
$subject = $_POST&#91;'subject'&#93;;
$to = explode&#40;',', $_POST&#91;'to'&#93; &#41;;

$from = $_POST&#91;'email'&#93;;

$mime_boundary=  "==Multipart_Boundary_x".md5&#40;mt_rand&#40;&#41;&#41;."x"; 
$headers =       "From&#58; $check_email\r\n" .
                 "MIME-Version&#58; 1.0\r\n" . 
                 "Content-Type&#58; multipart/mixed;\r\n" . 
                 " boundary=\"&#123;$mime_boundary&#125;\""; 

$message = "category&#58; "  .$_POST&#91;'category'&#93;    ."<br>\n";
$message .= "nomos&#58; "  .$_POST&#91;'nomos'&#93;    ."<br>\n";
$message .= "place&#58; "  .$_POST&#91;'place'&#93;    ."<br>\n";
$message .= "idws&#58; "  .$_POST&#91;'idws'&#93;    ."<br>\n";
$message .= "address&#58; "  .$_POST&#91;'adrs'&#93;    ."<br>\n";
$message .= "price&#58; "  .$_POST&#91;'price'&#93;    ."<br>\n";
$message .= "T.M&#58; "  .$_POST&#91;'tm'&#93;    ."<br>\n";
$message .= "Rooms&#58; "  .$_POST&#91;'roomss'&#93;    ."<br>\n";
$message .= "bathroom&#58; "  .$_POST&#91;'bothrm'&#93;    ."<br>\n";
$message .= "floor&#58; "  .$_POST&#91;'frst'&#93;    ."<br>\n";
$message .= "kalorifer&#58; "  .$_POST&#91;'hot'&#93;    ."<br>\n";
$message .= "epitreponte-zwa&#58; "  .$_POST&#91;'year'&#93;    ."<br>\n";
$message .= "palaiotita&#58; "  .$_POST&#91;'cnstr'&#93;    ."<br>\n";
$message .= "prking&#58; "  .$_POST&#91;'prking'&#93;    ."<br>\n";
$message .= "mpalkonia&#58; "  .$_POST&#91;'vrnt'&#93;    ."<br>\n";
$message .= "apothiki&#58; "  .$_POST&#91;'dsk'&#93;    ."<br>\n";
$message .= "platos&#58; "  .$_POST&#91;'tzk'&#93;    ."<br>\n";
$message .= "thesh&#58; "  .$_POST&#91;'posttion'&#93;    ."<br>\n";
$message .= "klasi&#58; "  .$_POST&#91;'clss'&#93;    ."<br>\n";
$message .= "COMMENTS&#58; "  .$_POST&#91;'comments'&#93;    ."<br>\n";
$message .= "name&#58; "  .$_POST&#91;'name'&#93;    ."<br>\n";
$message .= "last&#58; "  .$_POST&#91;'last'&#93;    ."<br>\n";
$message .= "EMAIL&#58; "  .$_POST&#91;'email'&#93;    ."<br>\n";
$message .= "web&#58; "  .$_POST&#91;'web'&#93;    ."<br>\n";

$message = "This is a multi-part message in MIME format.\n\n" . 
           "--&#123;$mime_boundary&#125;\n" . 
           "Content-Type&#58; text/plain; charset=UTF-8\r\n" . 
           "Content-Transfer-Encoding&#58; 7bit\n\n" . $message . "\n\n"; 
		   
   foreach&#40;$_FILES as $userfile&#41;&#123; 
      $tmp_name = $userfile&#91;'tmp_name'&#93;; 
      $type = $userfile&#91;'type'&#93;; 
      $name = $userfile&#91;'name'&#93;; 
      $size = $userfile&#91;'size'&#93;; 

      if &#40;file_exists&#40;$tmp_name&#41;&#41;&#123; 
         if&#40;is_uploaded_file&#40;$tmp_name&#41;&#41;&#123; 
            $file = fopen&#40;$tmp_name,'rb'&#41;; 
            $data = fread&#40;$file,filesize&#40;$tmp_name&#41;&#41;; 
            fclose&#40;$file&#41;; 
            $data = chunk_split&#40;base64_encode&#40;$data&#41;&#41;; 
         &#125; 

         $message .= "--&#123;$mime_boundary&#125;\n" . 
            "Content-Type&#58; &#123;$type&#125;;\n" . 
            " name=\"&#123;$name&#125;\"\n" . 
            "Content-Disposition&#58; attachment;\n" . 
            " filename=\"&#123;$fileatt_name&#125;\"\n" . 
            "Content-Transfer-Encoding&#58; base64\n\n" . $data . "\n\n"; 
      &#125; 
   &#125; 

$message.="--&#123;$mime_boundary&#125;--\n";  
   

foreach&#40;$to as $mail&#41;&#123;
   mail&#40;$mail,$subject, $message, $headers&#41;;
&#125;

?>


στην html το κουμπί Επισύναψη είναι αυτό.

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

<tr>
 <td><font class="mailformtext">Επισύναψη&#58;</font></td>
<td><input class=mailformfield type="file" name="file1"></td>
</tr>

τα υπόλοιπα στοιχεία φεύγουν κανονικά στο mail.


αυτός ο τρόπος είναι βασισμένος στο παράδειγμα του vassilism. χωρίς τους ελέγχους για μαιλ κλπ

:roll: :roll: :roll:

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

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

Δημοσίευση από alou » 02 Αύγ 2012 17:05

Αφού το action της φόρμας σου είναι #, θα πρέπει να είναι path/tade.php

Έχεις ξεχάσει και μία τελεία εδώ

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

$message .= "This is a multi-part message in MIME format.\n\n" . 
Πιθανώς να υπάρχουν και κάποια άλλα θέματα αλλά δες αυτά πρώτα.

Άβαταρ μέλους
canopus
Δημοσιεύσεις: 148
Εγγραφή: 23 Φεβ 2009 12:05

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

Δημοσίευση από canopus » 02 Αύγ 2012 17:16

Ευχαριστώ για την απάντηση.

Το Θέμα λύθηκε με διαφορετικό τρόπο.

το action το δηλώνω στο κάτω μέρος της φόρμας


<input type="hidden" value="forms/send-mail.php" name="sendMailUrl" id="sendMailUrl" />

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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