Hi everyone, I was trying to do this postcard tutorial with php. But I’m not sure how to add a field where users can type in their names before sending it to someone. Here’s the script:
<?php
// CHANGE PARAMETERS HERE BEGIN
$columns = 5;
$senderName = ‘E-card’; // Eg.: John’s Postcards
$senderEmail = ‘Sender EMAIL here’; // Eg.: john@postcard.com
// Change only if you have problems with urls
$postcardURL = ‘http://’.$_SERVER[‘HTTP_HOST’].$_SERVER[‘SCRIPT_NAME’];
// CHANGE PARAMETERS HERE END
// This function displays the available images
function displayPhotos(){
global $columns;
$act = 0;
// Open the actual directory
if ($handle = opendir("thumbs")) {
// Read all file from the actual directory
while ($file = readdir($handle)) {
if (!is_dir($file)) {
if ($act == 0) echo "<tr>";
echo "<td align='center'><img src='thumbs/$file' alt='postcard' /><br/><input type='radio' name='selimg' value='$file' /></td>";
$act++;
if ($act == $columns){
$act = 0;
echo "</tr>";
}
}
}
echo "</tr>";
}
}
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “DTD/xhtml1-transitional.dtd”>
<html>
<head>
<title>Postcard</title>
<link href=“style/style.css” rel=“stylesheet” type=“text/css” />
</head>
<body>
<div id=“container”>
<div id="content">
<div id="caption"></div>
<?php if ( (!isset($_POST['submit'])) && (!isset($_GET['show'])) ) { ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table align="center">
<?php displayPhotos(); ?>
</table>
<h2>Fill the form</h2>
<table width="100%">
<tr><td>Send to (email address):</td><td><input type="text" name="email" size="30"/></td></tr>
<tr><td>Message:</td><td><textarea name="message" rows="10" cols="40"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Send card!" name="submit"/></td></tr>
</table>
</form>
<?php } else if ( (isset($_POST['submit'])) && (!isset($_GET['show'])) ) {
$pic = isset ($_POST['selimg']) ? $_POST['selimg'] : '';
$filename = date('YmdGis');
$f = fopen('messages/'.$filename.".txt","w+");
fwrite($f,$pic."
“);
fwrite($f,$_POST[‘email’].”
“);
fwrite($f,htmlspecialchars($_POST[‘message’]).”
");
fclose($f);
// Compose the mail
$from = "From: $senderName <$senderEmail>
";
$replay = "Reply-To: $senderEmail
";
$params = "MIME-Version: 1.0
";
$params .= "Content-type: text/plain; charset=iso-8859-1
";
$mailtext = "You have just received an E-card!
"
. “You can pick up your e-card at the following web address:
"
. “$postcardURL”.”?show=$filename
"
. "We hope you enjoy your postcard, and if you do, please take a moment to send a few yourself!
"
. "Regards,
"
. "takeitbackin08.com
"
. $postcardURL;
// Send email
@mail($_POST['email'],"You've received a postcard",$mailtext,$from.$replay.$params);
?>
<center>
Your postcard was sent!<br/><br/>
<img src='images/<?php echo $pic; ?>' alt="postcard" /><br/><br/><br/><?php echo nl2br(htmlspecialchars($_POST['message'])); ?></center>
<?php } else if ( (!isset($_POST['submit'])) && (isset($_GET['show'])) ) {
$file = isset($_GET['show']) ? $_GET['show'] : '' ;
$content = file('messages/'.$file.".txt");
$pic = $content['0'];
unset ($content['0']);
unset ($content['1']);
$main = "";
foreach ($content as $value) {
$main .= $value;
}
?>
<center>
Your postcard!<br/><br/>
<img src=‘images/<?php echo $pic; ?>’ alt=“postcard” /><br/><br/><br/><?php echo nl2br(htmlspecialchars($main)); ?></center>
<?php } ?>
<div id=“source”></div>
</div></div>
</body>