Μια βοήθεια σχετικά με μια φόρμα επικοινωνίας

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

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

Απάντηση
Άβαταρ μέλους
Sfinaki
Δημοσιεύσεις: 541
Εγγραφή: 08 Ιουν 2003 22:41
Τοποθεσία: Ηράκλειο Κρήτη
Επικοινωνία:

Μια βοήθεια σχετικά με μια φόρμα επικοινωνίας

Δημοσίευση από Sfinaki » 26 Οκτ 2008 18:11

Καλησπέρα,

Έχω την παρακάτω φόρμα επικοινωνίας στο psakse.gr:

Το αρχείο contacts.tpl:

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

{include file="header.tpl"}

<h1>&#123;$lang.contact_us&#125;</h1>

&#123;if $msg&#125;
	<div class="notification"><ol>&#123;$msg&#125;</ol></div>
&#123;/if&#125;

<div class="box">
	<div class="box-content">
		<form action="&#123;$smarty.server.PHP_SELF&#125;" method="post">
			<p class="field"><strong>&#123;$lang.fullname&#125;&#58;</strong><br />
			<input type="text" name="fullname" size="25" value="&#123;$smarty.post.fullname&#125;" /></p>

			<p class="field"><strong>&#123;$lang.email&#125;&#58;</strong><br />
			<input type="text" name="email" size="25" value="&#123;$smarty.post.email&#125;"/></p>

			<p class="field"><strong>&#123;$lang.reason&#125;&#58;</strong><br />
			<textarea name="body" rows="8" cols="60">&#123;$smarty.post.body&#125;</textarea></p>

			<input type="submit" name="contact" value="&#123;$lang.submit&#125;" /></td>
		</form>
	</div>
</div>

&#123;include file="footer.tpl"&#125;
Και το αρχείο contacts.php:

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

<?php

/** requires common header file **/
require_once&#40;'header.php'&#41;;

/** defines tab name for this page **/
$gTab = 'contacts';

if &#40;$_POST&#91;'contact'&#93;&#41;
&#123;
	$fullname = &#40;get_magic_quotes_gpc&#40;&#41;&#41; ? stripslashes&#40;$_POST&#91;'fullname'&#93;&#41; &#58; $_POST&#91;'fullname'&#93;;
	if &#40;!$fullname&#41;
	&#123;
		$error = true;
		$msg = "<li>&#123;$gDirLang&#91;'error_contact_fullname'&#93;&#125;</li>";
	&#125;
	
	$email = &#40;get_magic_quotes_gpc&#40;&#41;&#41; ? stripslashes&#40;$_POST&#91;'email'&#93;&#41; &#58; $_POST&#91;'email'&#93;;
	/** check emails **/
	if &#40;!preg_match&#40;'/^&#91;a-z0-9\-_\.&#93;+@&#91;a-z0-9\-_&#93;+&#40;\.&#91;a-z0-9&#93;&#123;2,5&#125;&#41;+$/i', $email&#41;&#41;
	&#123;
		$error = true;
		$msg .= "<li>&#123;$gDirLang&#91;'error_email_incorrect'&#93;&#125;</li>";
	&#125;
	
	$body = &#40;get_magic_quotes_gpc&#40;&#41;&#41; ? stripslashes&#40;$_POST&#91;'body'&#93;&#41; &#58; $_POST&#91;'body'&#93;;
	if &#40;!$body&#41;
	&#123;
		$error = true;
		$msg .= "<li>&#123;$gDirLang&#91;'error_contact_body'&#93;&#125;</li>";
	&#125;

	if &#40;!$error&#41;
	&#123;
		$gDirDb->addContact&#40;addslashes&#40;$fullname&#41;, addslashes&#40;$email&#41;, addslashes&#40;$body&#41;&#41;;
		$msg = $gDirLang&#91;'contact_added'&#93;;
	&#125;
&#125;
$gDirSmarty->assign_by_ref&#40;'msg', $msg&#41;;

/** defines page title **/
$gDirSmarty->assign_by_ref&#40;'title', $gDirLang&#91;'contacts'&#93;&#41;;

/** menu display **/
$gDirSmarty->assign_by_ref&#40;'menu', $gDirLayout->print_menu&#40;&#41;&#41;;

/** breadcrumb formation **/
$bc&#91;'contacts'&#93;&#91;'url'&#93; = '';
$bc&#91;'contacts'&#93;&#91;'caption'&#93; = $gDirLang&#91;'contacts'&#93;;
$breadcrumb = $gDirLayout->print_breadcrumb&#40;0, $bc, 1&#41;;
$gDirSmarty->assign_by_ref&#40;'breadcrumb', $breadcrumb&#41;;

$tpl = &#40;$_POST && !$error&#41; ? 'success.tpl' &#58; 'contacts.tpl';
$gDirSmarty->display&#40;$tpl&#41;;
?>
Αυτή η φόρμα, στέλνει τα στοιχεία επικοινωνίας σε μία σελίδα στο admin panel και θέλω να μου τα στέλνει σε κάποιο email, γιατί από το admin panel, δε μου είναι εύκολο να απαντώ, δεν έχει αυτή τη δυνατότητα. Πρέπει να τα κάνω copy και να απαντάω με το email μετά.

Μπορεί κάποιος να με βοηθήσει σας παρακαλώ;

Η φόρμα επικοινωνίας είναι εδώ: http://psakse.gr/contacts.php

Ευχαριστώ!

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Μια βοήθεια σχετικά με μια φόρμα επικοινωνίας

Δημοσίευση από korgr » 27 Οκτ 2008 00:25

Βρες αυτό:

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

   if &#40;!$error&#41;
   &#123;
      $gDirDb->addContact&#40;addslashes&#40;$fullname&#41;, addslashes&#40;$email&#41;, addslashes&#40;$body&#41;&#41;;
      $msg = $gDirLang&#91;'contact_added'&#93;;
   &#125; 
και αντικατέστησέ το με αυτό:

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

 if &#40;!$error&#41;
   &#123;
function has_no_emailheaders&#40;$text&#41;
&#123;
   return preg_match&#40;"/&#40;%0A|%0D|\n+|\r+&#41;&#40;content-type&#58;|to&#58;|cc&#58;|bcc&#58;&#41;/i", $text&#41;;
&#125;
foreach&#40;$_POST as $key=>$value&#41; &#123;
$_POST&#91;$key&#93; = &#40;!has_no_emailheaders&#40;$value&#41;&#41; ? '' &#58; $value;
&#125;
$domain_name = "mydomain.gr" // εδώ βάλε το domain του site σου!!!!!!!!!!!!!!
$mailaddr="me@mydomain.gr"; // εδώ βάλε το δικό σου e-mail!!!!!!!!!!!!!!
$subject="Contact from $domain_name";
$msg="ΣΤΟΙΧΕΙΑ ΧΡΗΣΤΗ&#58;\n\nΟΝΟΜΑΤΕΠΩΝΥΜΟ &#58; ".$fullname."\n";
$msg=$msg."E-MAIL &#58; ".$email."\n\n";
$msg=$msg."ΜΗΝΥΜΑ &#58; \n".$body."\n\n";
mail&#40;$mailaddr,$subject,$msg,"From&#58; ".$domain_name."\nContent-Type&#58; text; charset=UTF-8\n"&#41;;
$gDirDb->addContact&#40;addslashes&#40;$fullname&#41;, addslashes&#40;$email&#41;, addslashes&#40;$body&#41;&#41;;
$msg = $gDirLang&#91;'contact_added'&#93;;
   &#125;
Λογικά θα δουλέψει...
Αντικατέστησε τα

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

$domain_name = "mydomain.gr" // εδώ βάλε το domain του site σου!!!!!!!!!!!!!!
$mailaddr="me@mydomain.gr"; // εδώ βάλε το δικό σου e-mail!!!!!!!!!!!!!!
με το δικό σου domain & email

Κανονικά θα στείλει το email και στη συνέχεια θα κάνει αυτό που συνήθως κάνει με το admin panel σου

Αν δεν χρησιμοποιείς στο site σου UTF-8 άλλαξε το charset=UTF-8 σε windows-1253 ή σε κάποιο ελληνικό ISO

Άβαταρ μέλους
Sfinaki
Δημοσιεύσεις: 541
Εγγραφή: 08 Ιουν 2003 22:41
Τοποθεσία: Ηράκλειο Κρήτη
Επικοινωνία:

Μια βοήθεια σχετικά με μια φόρμα επικοινωνίας

Δημοσίευση από Sfinaki » 27 Οκτ 2008 02:12

Φίλε korgr,

Σε ευχαριστώ πάρα πολύ δουλεύει άψογα! :kaloe:

Το μόνο που άλλαξα ήταν

αυτό:

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

"From&#58; ".$domain_name."
σε αυτό:

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

"From&#58; ".$email."
Για να μου έρχεται το email με το email του αποστολέα.

Για άλλη μια φορά σε ευχαριστώ πάρα πολύ!

Να είσαι καλά... :respect:

Άβαταρ μέλους
alexandr0s
Δημοσιεύσεις: 1064
Εγγραφή: 25 Απρ 2006 17:16
Τοποθεσία: localhost
Επικοινωνία:

Μια βοήθεια σχετικά με μια φόρμα επικοινωνίας

Δημοσίευση από alexandr0s » 27 Οκτ 2008 10:26

Αν δεν βαριέσαι για περισσότερες επιλογές στην αποστολή mail κτλ ψάξε το swiftmailer

Άβαταρ μέλους
Sfinaki
Δημοσιεύσεις: 541
Εγγραφή: 08 Ιουν 2003 22:41
Τοποθεσία: Ηράκλειο Κρήτη
Επικοινωνία:

Μια βοήθεια σχετικά με μια φόρμα επικοινωνίας

Δημοσίευση από Sfinaki » 27 Οκτ 2008 13:28

Φίλε Αλέξανδρε,

Απ' ότι κατάλαβα εννοείς το http://www.swiftmailer.org/ έτσι δεν είναι;

Αν ναι, δεν κατάλαβα τι ακριβώς κάνει, είναι κάποιο πρόγραμμα που εγκαθιστάς στον υπολογιστή και φτιάχνεις φόρμες επικοινωνίας με php?

Άβαταρ μέλους
mike78
Δημοσιεύσεις: 41
Εγγραφή: 20 Απρ 2008 19:08
Επικοινωνία:

Μια βοήθεια σχετικά με μια φόρμα επικοινωνίας

Δημοσίευση από mike78 » 20 Νοέμ 2008 04:14

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

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

<%
	Set reg = New RegExp
	reg.Pattern = "^&#91;A-Za-z0-9\._\-&#93;+@&#40;&#91;A-Za-z0-9\._\-&#93;+\.&#41;+&#91;A-Za-z0-9\._\-&#93;+$"
	Set m = reg.Execute&#40;Request.QueryString&#40;"your_email"&#41;&#41;
	
	if m.count > 0 then
		smtpServer = "swapper.loc"
		smtpPort = 25

		name = Request.QueryString&#40;"your_name"&#41;
		Set myMail = CreateObject&#40;"CDO.Message"&#41; 
		myMail.Subject = "from " & name
		myMail.From = Request.QueryString&#40;"your_email"&#41;
		myMail.To = Request.QueryString&#40;"recipient"&#41;
		myMail.HTMLBody = "<html><head><title>Contact letter</title></head><body><br>" & Request.QueryString&#40;"message"&#41; & "</body></html>"
		myMail.Configuration.Fields.Item&#40;"http&#58;//schemas.microsoft.com/cdo/configuration/sendusing"&#41; = 2
		myMail.Configuration.Fields.Item&#40;"http&#58;//schemas.microsoft.com/cdo/configuration/smtpserver"&#41; = smtpServer
		myMail.Configuration.Fields.Item&#40;"http&#58;//schemas.microsoft.com/cdo/configuration/smtpserverport"&#41; = smtpPort
		myMail.Configuration.Fields.Update 
		myMail.Send
		Response.Write&#40;"Your email was sent"&#41;
	else
		Response.Write&#40;"Invalid email"&#41;
	End if
	
%>
<script>
	resizeTo&#40;300, 300&#41;
	//window.close&#40;&#41;
</script>

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Μια βοήθεια σχετικά με μια φόρμα επικοινωνίας

Δημοσίευση από korgr » 20 Νοέμ 2008 07:07

Δυστυχώς δεν ασχολούμαι με asp
Πιστεύω πως κάποιος συνάδελφος θα σε διαφωτίσει :)

Απάντηση

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

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

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