bluethundr Posted June 30, 2012 Share Posted June 30, 2012 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="<?php echo $_SERVER['PHP_SELF']; ?>"> <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 = '[email protected]'; $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! Link to comment https://forums.phpfreaks.com/topic/265060-embedding-phpside-of-php/ Share on other sites More sharing options...
johnsmith153 Posted June 30, 2012 Share Posted June 30, 2012 echo '<br /><br /> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> should be: echo '<br /><br /> <form method="post" action="' . $_SERVER['PHP_SELF'] . '"> ..and the same for the other PHP you've used. Also, it might be worth searching on Google for the 'dangers of PHP_SELF' or something like that, as it's not the best way to do it. Link to comment https://forums.phpfreaks.com/topic/265060-embedding-phpside-of-php/#findComment-1358243 Share on other sites More sharing options...
Pikachu2000 Posted July 1, 2012 Share Posted July 1, 2012 You are trying to issue an opening <?php tag without closing the previously opened <?php tag. I've never seen it cause that particular error, though. http://www.php.net/manual/en/language.basic-syntax.php Link to comment https://forums.phpfreaks.com/topic/265060-embedding-phpside-of-php/#findComment-1358244 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.