Re: Studying IF statements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux