Gary wrote: > Shawn > > Thanks for your reply. Some of what you are saying is a little ahead of my > lessons, but let me address as best I can. The script worked fine in the > previous lesson where I was to send emails from my DB, this lesson is to > kill the email from being sent if empty. > >> On your very first line you haven't surround the email in quotes (only >> one quote). > > That worked fine with the single quotes and is listed in the book that way. > > Then later in the line $dbc = >> mysqli_connect(hostet',UN,'PW','DB') or die('Error connecting to MySQL >> server'); you're missing a quote before hostet. > > The single quote was deleted when I was sanitizing the code to post here, > but it is in the code...sorry. > > So the jist of what you are saying is to add "die" after the if > statements...but they are not in the book > > ***** > > I tried your code and it was not working either, am getting a parse error > > Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in > on line 109 > Line 109 die 'You forgot to enter a subject and or text in the > body! <br/>Click the back button<br />'; > > "Shawn McKenzie" <nospam@xxxxxxxxxxxxx> wrote in message > news:B8.22.22219.724FEB94@xxxxxxxxxxxxxxx >> Gary wrote: >>> Reading a book on php/mysql (Head First) and the following code is not >>> working, athough I am pretty sure I have it as they say to. Trying to >>> kill a >>> sendmail script if I forget to enter a subject or text in body of email. >>> I >>> am getting the echo, but it is still sending the emails out. >>> >>> What am I missing here? >>> >>> Thanks. >>> >>> Gary >>> >>> <?php >>> $from = emial@xxxxxxxxx'; >>> $subject =$_POST['subject']; >>> $text =$_POST['body_of_mail']; >>> >>> if(empty($subject)) { >>> if(empty($body_of_mail)){ >>> >>> echo 'You forgot to enter a subject and or text in the body! <br />'; >>> >>> >>> $dbc = mysqli_connect(hostet',UN,'PW','DB') >>> or die('Error connecting to MySQL server'); >>> >>> $query = "SELECT * FROM table"; >>> $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 />'; >>> } >>> $msg ="Dear $first_name.' '.$last_name\n $text"; >>> mail($to,$subject,$msg,$from); >>> echo "Email sent to: $to <br /> "; >>> >>> mysqli_close($dbc); >>> >>> } >>> } >>> >>> ?> >>> >>> >> Well, first, it shouldn't do anything because you have parse errors that >> should stop the script. >> >> On your very first line you haven't surround the email in quotes (only >> one quote). Then later in the line $dbc = >> mysqli_connect(hostet',UN,'PW','DB') or die('Error connecting to MySQL >> server'); you're missing a quote before hostet. >> >> Second, you look for empty vars and if they are empty then you echo that >> they forgot to enter them but go on to send the emails anyway. >> >> Then you loop through a database result and send to everyone and then >> you send another one to the last person you just sent to. >> >> Try this: >> >> <?php >> >> $from = 'emial@xxxxxxxxx'; >> $subject =$_POST['subject']; >> $text =$_POST['body_of_mail']; >> >> if(empty($subject) || empty($body_of_mail)) { >> die 'You forgot to enter a subject and or text in the body! <br >> />Click the back button<br />'; >> } else { >> $dbc = mysqli_connect('hostet',UN,'PW','DB') or die('Error connecting >> to MySQL server'); >> >> $query = "SELECT * FROM table"; >> $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); >> } >> >> ?> >> >> -- >> Thanks! >> -Shawn >> http://www.spidean.com > > So goes the typing code in to email :-) Try replacing the die line with: die('You forgot to enter a subject and or text in the body!<br />Click the back button.<br />'); -- Thanks! -Shawn http://www.spidean.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php