Φόρμα "Στείλε τη σελίδα σε ένα φίλο"

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

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

Απάντηση
Άβαταρ μέλους
plokami
Δημοσιεύσεις: 8
Εγγραφή: 25 Νοέμ 2006 16:47
Επικοινωνία:

Φόρμα "Στείλε τη σελίδα σε ένα φίλο"

Δημοσίευση από plokami » 20 Οκτ 2008 01:56

Καλησπέρα.
Στην παρακάτω έτοιμη φόρμα:


recommend.htm

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

<html> 
<head>
<title>tell a friend</title>
<script language="javascript">
<!--

function reset&#40;&#41; &#123;
document.tellafriend.name.value="";
document.tellafriend.email.value="";
document.tellafriend.friendmail1.value="";
document.tellafriend.friendmail2.value="";
document.tellafriend.friendmail3.value="";
&#125;

function validate&#40;&#41; &#123;


if &#40;document.tellafriend.friendmail1.value.length==0&#41; &#123;
alert&#40;"please enter your friend's email address"&#41;;
return false;
&#125;

if &#40;document.tellafriend.email.value.length==0&#41; &#123;
alert&#40;"please enter your email address"&#41;;
return false;
&#125;
if &#40;document.tellafriend.name.value.length==0&#41; &#123;
alert&#40;"please enter your name"&#41;;
return false;
&#125;

document.tellafriend.submit&#40;&#41;
return true;
&#125;

//-->
</script>
</head>
<body onload="reset&#40;&#41;" topmargin="0" leftmargin="0"> 
<center>
</center>
<table width="450" cellpadding="0" cellspacing="0" align="center"> 
<tr valign="top"> 
<td valign="middle" align="center"> 
<p>Complete the details below to send our link to your friends.</p> 
<form name="tellafriend" action="tellafriend.php" method="post" onsubmit="return checkfields&#40;&#41;"> 
<div align="center">
<center>
<table border="0" cellpadding="10" cellspacing="0">
<tr>
<td> *your name&#58;</td>
<td>
<input size="30" name="name" maxlength="45">
</td>
</tr>
<tr>
<td>*your email&#58;</td>
<td>
<input size="30" name="email" maxlength="45">
</td>
</tr>
<tr>
<td colspan="2">
<p align="center">please enter your friend's email addresses&#58;</td>
</tr>
<tr>
<td>*email 1&#58;</td>
<td>
<input size="30" name="friendmail1" maxlength="45">
</td>
</tr>
<tr>
<td>email 2&#58;</td>
<td>
<input size="30" name="friendmail2" maxlength="45">
</td>
</tr>
<tr>
<td>email 3&#58;</td>
<td>
<input size="30" name="friendmail3" maxlength="45">
</td>
</tr>
<tr>
<td colspan="2">
<p align="center">
The email that will be sent will contain your name and email address. <br>
<input onclick="validate&#40;&#41;;" type="button" value="click here to send">

</td>
</tr>
</table>
</center>
</div>
</form>
</td>
</tr> 
<tr valign="top"> 
<td valign="middle" align="center"> 
&nbsp;
</td>
</tr> 
</table>
</body>
</html>

tellafriend.php

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

<?php


// This following statement must be left intact.
// Copyright &#40;c&#41; Michael Bloch and Taming The Beast.  
// Tell-A-Friend script V 1.3  Updated September 20 2006
// Taming the Beast.net - http&#58;//www.tamingthebeast.net
// Free Web Marketing and Ecommerce articles and tools
// By using this code you agree to indemnify Taming the Beast
// from from any liability that might arise from its use. 
// The preceding statement be left intact. 

if&#40;count&#40;$_POST&#41;&#41; &#123;
# This section nukes nasty code that a malicious
# party may attempt to inject into the form

foreach&#40;array&#40;'friendmail1','friendmail2','friendmail3','email','name'&#41; as $key&#41; $_POST&#91;$key&#93; = strip_tags&#40;$_POST&#91;$key&#93;&#41;;
if&#40;!is_secure&#40;$_POST&#41;&#41; &#123; die&#40;"Asta la vista Hacker"&#41;;&#125;

# This section sends an email to you when 
# the form is used

// Your email address &#40;for copies to be sent to you&#41;
$emailto = "&#91;b&#93;you@yoursite.com&#91;/b&#93;"; 

// Your email subject text
$esubject = "A page has been sent"; 

// The email text for copies sent to you
$emailtext = "
$_POST&#91;name&#93; has used the tell-a-friend form. Their email address is $_POST&#91;email&#93;

The people they have recommended your site to are&#58;

$_POST&#91;friendmail1&#93;
$_POST&#91;friendmail2&#93;
$_POST&#91;friendmail3&#93;

";

# This sends the email to you

@mail&#40;"$emailto", $esubject, $emailtext, "From&#58; $_POST&#91;email&#93;"&#41;;

# This section sends to the recipients

// Target page after successful submission
// Change thankyou.htm to suit

$thankyoupage = "thankyou.htm"; 

// Change the subject text below to suit

$tsubject = "A web site recommendation from $_POST&#91;name&#93;";

// Change the text below for the email 
// Don't change any "$_POST&#91;value&#93;" items

$ttext = "
Hi,

A friend or colleague of yours, $_POST&#91;name&#93; , whose email address is $_POST&#91;email&#93; thought you may like to visit our site. 

$_POST&#91;name&#93; has used our Tell-a-Friend form to send you this email.

&#91;b&#93;http&#58;//www.yoursite.com&#91;/b&#93;

";

# This emails the recommendation to the addresses submitted
@mail&#40;"$_POST&#91;friendmail1&#93;,$_POST&#91;friendmail2&#93;,$_POST&#91;friendmail3&#93;", $tsubject, $ttext, "FROM&#58; $_POST&#91;email&#93;"&#41;;

# After successful processing, the thank you page
header&#40;"Location&#58; $thankyoupage"&#41;;
exit;

&#125;

# Don't change anything below

function is_secure&#40;$ar&#41; &#123;
$reg = "/&#40;Content-Type|Bcc|MIME-Version|Content-Transfer-Encoding&#41;/i";
if&#40;!is_array&#40;$ar&#41;&#41; &#123; return preg_match&#40;$reg,$ar&#41;;&#125;
$incoming = array_values_recursive&#40;$ar&#41;;
foreach&#40;$incoming as $k=>$v&#41; if&#40;preg_match&#40;$reg,$v&#41;&#41; return false;
return true;
&#125;

function array_values_recursive&#40;$array&#41; &#123;
$arrayValues = array&#40;&#41;;
foreach &#40;$array as $key=>$value&#41; &#123;
if &#40;is_scalar&#40;$value&#41; || is_resource&#40;$value&#41;&#41; &#123;
$arrayValues&#91;&#93; = $value;
$arrayValues&#91;&#93; = $key;
&#125;
elseif &#40;is_array&#40;$value&#41;&#41; &#123;
$arrayValues&#91;&#93; = $key;
$arrayValues = array_merge&#40;$arrayValues, array_values_recursive&#40;$value&#41;&#41;;
&#125;
&#125;
return $arrayValues;
&#125;
?>
όταν κάνουμε κλικ για να αποσταλεί το μήνυμα αντί να εμφανιστεί η σελίδα thankyou.htm η οποία γράφει ότι στάλθηκε το μήνυμα
εμφανίζεται το παρακάτω μήνυμα:

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

Warning&#58; Cannot modify header information - headers already sent by &#40;output started at C&#58;\Inetpub\vhosts\ΟΝΟΜΑSITE.gr\httpdocs\tellafriend.php&#58;13&#41; in C&#58;\Inetpub\vhosts\ONOMASITE.gr\httpdocs\tellafriend.php on line 86
Το μήνυμα αυτό το εμφανίζει ασχέτως αν έχω αλλάξει τις τιμές http://www.yoursite.com και you@yoursite.com στο tellafriend.php

Παρόλα αυτά το μήνυμα το παραλαμβάνει κανονικά ο παραλήπτης αν είναι γραμμένο με αγγλικούς χαραχτήρες όπως και ένα αντίγραφο στέλνεται στο email μου.
Οι σελίδες recommend.htm, tellafriend.php, και thankyou.htm βρίσκονται αποθηκευμένες στον ίδιο φάκελο.

Ξέρει κάποιος αν το πρόβλημα οφείλεται στον κώδικα της φόρμας ή κάτι δεν έχω κάνει σωστά;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Φόρμα "Στείλε τη σελίδα σε ένα φίλο"

Δημοσίευση από fafos » 20 Οκτ 2008 02:02

koita an exeis kapoia kenh grammh prin apo to <?php sto arxeio tellafriend.php

Άβαταρ μέλους
plokami
Δημοσιεύσεις: 8
Εγγραφή: 25 Νοέμ 2006 16:47
Επικοινωνία:

Φόρμα "Στείλε τη σελίδα σε ένα φίλο"

Δημοσίευση από plokami » 20 Οκτ 2008 02:23

To έλεγξα έσβησα και ένα κενό πριν από το <?php αλλά όταν την δοκίμασα ξαναέβγαλε το ίδο μήνυμα.
Επειδή δεν την έχω αλλάξει την φόρμα φαντάζομαι ότι ή θα έχει κάποιο λάθος η φόρμα ή κάτι θα κάνω εγώ λάθος με την σελίδα thankyou.htm. Σαν thankyou.htm έχω ανεβάσει δοκιμαστικά μία σελίδα κενή με μία λέξη μόνο γραμμένη. Τα ονόματα των αποθηκευμένων σελίδων δεν τα έχω αλλάξει.

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Φόρμα "Στείλε τη σελίδα σε ένα φίλο"

Δημοσίευση από Alice_Cooper » 20 Οκτ 2008 02:32

look an to file sou einai utf me BOM

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Φόρμα "Στείλε τη σελίδα σε ένα φίλο"

Δημοσίευση από fafos » 20 Οκτ 2008 02:34

epimeno oti exeis akoma keno prin to <?php

kane zip to arxeio kai anevase to..

Άβαταρ μέλους
plokami
Δημοσιεύσεις: 8
Εγγραφή: 25 Νοέμ 2006 16:47
Επικοινωνία:

Φόρμα "Στείλε τη σελίδα σε ένα φίλο"

Δημοσίευση από plokami » 20 Οκτ 2008 03:10

Λοιπόν με την επιμονή του fafos κατάλαβα ότι κάπου την έχω κά...
Το λάθος ήταν ότι το
tellafriend.php

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

<?php 


// This following statement must be left intact. 
// Copyright &#40;c&#41; Michael Bloch and Taming The Beast.  
// Tell-A-Friend script V 1.3  Updated September 20 2006 
// Taming the Beast.net - http&#58;//www.tamingthebeast.net 
// Free Web Marketing and Ecommerce articles and tools 
// By using this code you agree to indemnify Taming the Beast 
// from from any liability that might arise from its use. 
// The preceding statement be left intact. 

if&#40;count&#40;$_POST&#41;&#41; &#123; 
# This section nukes nasty code that a malicious 
# party may attempt to inject into the form 

foreach&#40;array&#40;'friendmail1','friendmail2','friendmail3','email','name'&#41; as $key&#41; $_POST&#91;$key&#93; = strip_tags&#40;$_POST&#91;$key&#93;&#41;; 
if&#40;!is_secure&#40;$_POST&#41;&#41; &#123; die&#40;"Asta la vista Hacker"&#41;;&#125; 

# This section sends an email to you when 
# the form is used 

// Your email address &#40;for copies to be sent to you&#41; 
$emailto = "&#91;b&#93;you@yoursite.com&#91;/b&#93;"; 

// Your email subject text 
$esubject = "A page has been sent"; 

// The email text for copies sent to you 
$emailtext = " 
$_POST&#91;name&#93; has used the tell-a-friend form. Their email address is $_POST&#91;email&#93; 

The people they have recommended your site to are&#58; 

$_POST&#91;friendmail1&#93; 
$_POST&#91;friendmail2&#93; 
$_POST&#91;friendmail3&#93; 

"; 

# This sends the email to you 

@mail&#40;"$emailto", $esubject, $emailtext, "From&#58; $_POST&#91;email&#93;"&#41;; 

# This section sends to the recipients 

// Target page after successful submission 
// Change thankyou.htm to suit 

$thankyoupage = "thankyou.htm"; 

// Change the subject text below to suit 

$tsubject = "A web site recommendation from $_POST&#91;name&#93;"; 

// Change the text below for the email 
// Don't change any "$_POST&#91;value&#93;" items 

$ttext = " 
Hi, 

A friend or colleague of yours, $_POST&#91;name&#93; , whose email address is $_POST&#91;email&#93; thought you may like to visit our site. 

$_POST&#91;name&#93; has used our Tell-a-Friend form to send you this email. 

&#91;b&#93;http&#58;//www.yoursite.com&#91;/b&#93; 

"; 

# This emails the recommendation to the addresses submitted 
@mail&#40;"$_POST&#91;friendmail1&#93;,$_POST&#91;friendmail2&#93;,$_POST&#91;friendmail3&#93;", $tsubject, $ttext, "FROM&#58; $_POST&#91;email&#93;"&#41;; 

# After successful processing, the thank you page 
header&#40;"Location&#58; $thankyoupage"&#41;; 
exit; 

&#125; 

# Don't change anything below 

function is_secure&#40;$ar&#41; &#123; 
$reg = "/&#40;Content-Type|Bcc|MIME-Version|Content-Transfer-Encoding&#41;/i"; 
if&#40;!is_array&#40;$ar&#41;&#41; &#123; return preg_match&#40;$reg,$ar&#41;;&#125; 
$incoming = array_values_recursive&#40;$ar&#41;; 
foreach&#40;$incoming as $k=>$v&#41; if&#40;preg_match&#40;$reg,$v&#41;&#41; return false; 
return true; 
&#125; 

function array_values_recursive&#40;$array&#41; &#123; 
$arrayValues = array&#40;&#41;; 
foreach &#40;$array as $key=>$value&#41; &#123; 
if &#40;is_scalar&#40;$value&#41; || is_resource&#40;$value&#41;&#41; &#123; 
$arrayValues&#91;&#93; = $value; 
$arrayValues&#91;&#93; = $key; 
&#125; 
elseif &#40;is_array&#40;$value&#41;&#41; &#123; 
$arrayValues&#91;&#93; = $key; 
$arrayValues = array_merge&#40;$arrayValues, array_values_recursive&#40;$value&#41;&#41;; 
&#125; 
&#125; 
return $arrayValues; 
&#125; 
?> 
tο είχα αποθηκεύσει μέσα στο body μιας κενής σελίδας ενώ έπρεπε να σβήσω τα head body κτλ και να κάνω επικόλληση-αποθήκευση μόνο τον παραπάνω κώδικα.

Σας ευχαριστώ πολύ. :wink:

Άβαταρ μέλους
fiskilis
Honorary Member
Δημοσιεύσεις: 14093
Εγγραφή: 16 Νοέμ 2003 22:44
Τοποθεσία: Athens
Επικοινωνία:

Φόρμα "Στείλε τη σελίδα σε ένα φίλο"

Δημοσίευση από fiskilis » 20 Οκτ 2008 18:33

οριστε και αλλο ενα σε html που δουλευει μια χαρα

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

<!-- START OF SCRIPT -->


<!-- HOW TO INSTALL EMAIL THIS PAGE&#58;

  1.  Copy code into the HEAD section of document
  2.  Put last coding into the BODY section of document  -->

<!-- STEP ONE&#58; Add code into HEAD section of document  -->

<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- Original&#58;  Ronnie T. Moore -->
<!-- Web Site&#58;  Evrsoft -->


<!-- Begin
function initMail&#40;form&#41; &#123;
text = "Check out this page&#58;  " + window.location;
form.message.value = "Hi " + form.sendto.value + " &#40;" + form.to.value + "&#41;&#58;\n\n"
 + text + "\n\nYour Friend,\n" + form.sendername.value + "&#40;" + form.senderemail.value + "&#41;";
return &#40;form.to.value != ""&#41;;
&#125;
//  End -->
</script>
</HEAD>

<!-- STEP TWO&#58; Add code into BODY section of document  -->

<BODY>

<center>
<form name=emailform method=post action="http&#58;//cgi.freedback.com/mail.pl" target="_new" onSubmit="return initMail&#40;this&#41;;">
<input type=hidden name=subject value="** Check Out This Site! **">
<input type=hidden name=message value="">
<table>
<tr><td colspan=2 align=center>Tell a friend about this page!</td></tr>
<tr><td>Their Name&#58;</td><td><input type=text name=sendto></td></tr>
<tr><td>Their Email&#58;</td><td><input type=text name=to></td></tr>
<tr><td>Your Name&#58;</td><td><input type=text name=sendername></td></tr>
<tr><td>Your Email&#58;</td><td><input type=text name=senderemail></td></tr>
<tr><td colspan=2 align=center><input type=submit value="Ok!"></td></tr>
</table>
</form>
</center>



<!-- END OF SCRIPT -->


Απάντηση

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

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

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