embedding php inside of php
| From: | Tim Dunphy | Date: | Sun, 01 Jul 2012 00:00:04 +0000 |
| Subject: | embedding php inside of php | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-318353@lists.php.net to get a copy of this message | ||
Hello,
I am trying to get the hang of php using some examples that I found
in a book. I've been making progress lately, but one thing has me a
bit stumped.
In an HTML form that I am echoing through PHP I would like to embed
smaller chunks of php in the code like so:
echo '<br /><br />
<form method="post" action="sendemail.php">
<label for="subject">Subject of email:</label><br />
<input id="subject" name="subject" type="text"
value="<?php
echo $subject;?>"><br />
<label for="elvismail">Body of email:</label><br />
<textarea id="elvismail" name="elvismail" rows="8"
cols="40">"<?php echo $text;?>" </textarea><br />
<input type="submit" name="Submit" value="Submit" />
</form>';
If I do embed the smaller chunks of php in the form the way I've just
shown you the script instantly breaks and the web page shows only a
white screen of death.
And I see this in the web server logs
[Sat Jun 30 19:12:54 2012] [notice] child pid 7769 exit signal
Segmentation fault (11)
If I remove the smaller bits of php as I show here the web page starts
working again
echo '<br /><br />
<form method="post" action="sendemail.php">
<label for="subject">Subject of email:</label><br />
<input id="subject" name="subject" type="text"><br
/>
<label for="elvismail">Body of email:</label><br />
<textarea id="elvismail" name="elvismail" rows="8"
cols="40"></textarea><br />
<input type="submit" name="Submit" value="Submit" />
</form>';
Here, I'll show the entire script so you can get a better sense of what it does
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Make Me Elvis - Send Email</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<img src="blankface.jpg" width="161" height="350"
alt=""
style="float:right" />
<img name="elvislogo" src="elvislogo.gif" width="229"
height="32"
border="0" alt="Make Me Elvis" />
<p><strong>Private:</strong> For Elmer's use ONLY<br /><br
Write and send an email to mailing list members.</p>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
if (isset($_POST['Submit'])) {
$from = 'bluethundr@mydomain.com';
$subject = $_POST['subject'];
$text = $_POST['elvismail'];
$output_form = "false";
if (empty($subject) && empty($text)) {
echo 'You forgot the email subject and body.<br />';
$output_form = 'true';
}
if (empty($subject) && !empty($text)) {
echo 'You forgot the email subject.<br />';
$output_form="true";
}
if ((!empty($subject)) && empty($text)) {
echo 'You forgot the email body text.<br />';
$output_form="true";
}
} else {
$output_form = 'true';
}
if ($output_form == 'true') {
echo '<br /><br />
<form method="post" action="sendemail.php">
<label for="subject">Subject of email:</label><br />
<input id="subject" name="subject" type="text"><br
/>
<label for="elvismail">Body of email:</label><br />
<textarea id="elvismail" name="elvismail" rows="8"
cols="40"></textarea><br />
<input type="submit" name="Submit" value="Submit" />
</form>';
} else {
$dbc = mysqli_connect('127.0.0.1', 'admin', 'secret
', 'elvis_store')
or die('Error connecting to MySQL server.');
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query)
or die('Error querying database.');
while ($row = mysqli_fetch_array($result)){
$to = $row['email'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$msg = "Dear $first_name $last_name,\n$text";
mail($to, $subject, $msg, 'From:' . $from);
echo 'Email sent to: ' . $to . '<br />';
}
mysqli_close($dbc);
}
?>
</body>
</html>
I was hoping that someone might be out there that could understand
this problem and point out where I'm going wrong.
Thanks!
--
GPG me!!
gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B