Hello all!

I have a newsletter script that works fine but I receive some undefined
variables errors in Apache's error log:

PHP Notice:  Undefined variable:  action in
C:\Apache\htdocs\easyletter2\easyletter.php on line 73
PHP Notice:  Undefined variable:  action in
C:\Apache\htdocs\easyletter2\easyletter.php on line 100
PHP Notice:  Undefined variable:  pw in
C:\Apache\htdocs\easyletter2\easyletter.php on line 123
PHP Notice:  Undefined variable:  pw in
C:\Apache\htdocs\easyletter2\easyletter.php on line 159
PHP Notice:  Undefined variable:  disp in
C:\Apache\htdocs\easyletter2\easyletter.php on line 159
PHP Notice:  Undefined variable:  found in
C:\Apache\htdocs\easyletter2\easyletter.php on line 75
PHP Notice:  Undefined variable:  pw in
C:\Apache\htdocs\easyletter2\easyletter.php on line 123
PHP Notice:  Undefined variable:  pw in
C:\Apache\htdocs\easyletter2\easyletter.php on line 159

Why do I get an undefined variable error for $action, $pw, $disp, $found
when they do not have to be declared in the script?

And the script is:
<?

# Version 1.1 Debugged, please upgrade older ones...

########################################################################

# Global Settings...

########################################################################

# Set the password for the eMail List editor!

$pass="secret";

# Name of the datafile

$filelocation="subscribers.txt";

# Title of the newsletter, will be displayed in the FROM field of the
mailclient

$lettername="Test";

# Your email, will be the reply-to mail

$youremail="[EMAIL PROTECTED]";

########################################################################

# Displayed Messages

########################################################################

# Welcome message displayed above the form for subscribing/unsubscribing

$welcomemessage = "This is the place to subscribe and unsubscribe for the
Onlinetools.org Newsletter. I will be sending this letter out every time
there are some new tools or changes to the page. Your data will not be given
to anyone and I send out small text mails only.";

# Sorrymessage for failed subscription, will be followed by the email!

$sorrysignmessage = "Sorry, there is already an entry for ";

# Subscribe message, will be displayed when subscribing

$subscribemessage = "Thank you for subscribing to the newsletter, a
confirmation email is on its way!";

# Subscribemail, will be sent when someone subscribes.

$subscribemail = "Thank you for subscribing to the newsletter.";

# Unsubscribemessage for deletion, will be followed by the email!

$unsubscribemessage = "We deleted the following entry: ";

# Unsubscribemessage for failed deletion, will be followed by the email!

$failedunsubscriptionmessage = "Sorry, you cannot unssubscribe as we didn't
find an entry for ";

########################################################################

# Let the code begin...

########################################################################

# Checks if the file exists, if not creates a new one

if (!file_exists($filelocation)) {

$newfile = fopen($filelocation,"w+");

fclose($newfile);

}

# Open the datafile and read the content

$newfile = fopen($filelocation,"r");

$content = fread($newfile, filesize($filelocation));

fclose($newfile);

# Remove the slashes PHP automatically puts before special characters

$content=stripslashes($content);

# Reset the output of the "search result"

$out="";

# Put the entries into the array lines

$lines = explode("%",$content);

for ($key=1;$key<sizeof($lines);$key++){

# when the email is not in the list, add the old entries

if ($lines[$key] != $email){

$out .= "%".$lines[$key];

}

# when it's already in the list, set found

else {

$found=1;

}

}

########################################################################

# Signing in

########################################################################

if ($action=="sign"){

# When there is already a subscription for this email *duh*

if ($found==1){

# Display Sorrymessage

echo "<div
align=\"center\"><b>".$sorrysignmessage.$email."</b></div><br><br>";

$disp="yes";

}

# otherwise, add the email to the list

else {

$disp="no";

$newfile = fopen($filelocation,"a+");

$add = "%".$email;

fwrite($newfile, $add);

fclose($newfile);

# display the message of subscription

echo "<div
align=\"center\"><b>".$subscribemessage.$email."</b></div><br><br>";

# send confirmation Mail

$submailheaders = "From: $lettername subscription form\n";

$submailheaders .= "Reply-To: $youremail\n";

mail ($email,$lettername." subscription",$subscribemail,$submailheaders);

}

}

########################################################################

# Signing out

########################################################################

if ($action=="delete"){

$disp="no";

# If the email is in the list...

if ($found == 1){

$newfile = fopen($filelocation,"w+");

fwrite($newfile, $out);

fclose($newfile);

# display the message for deleted items...

echo "<div
align=\"center\"><b>".$unsubscribemessage.$email."</b></div><br><br>";

$disp="no";

}

# if the email is not in the list

if ($found != 1){

# display the message that tells that...

echo "<div
align=\"center\"><b>".$failedunsubscriptionmessage.$email."</b></div><br><br
>";

$disp="YES";

}

}

########################################################################

# The core for the owner of the letter

########################################################################

if ($pw == $pass){

# When nothing was entered so far, display the form

if ($send != "yes" && $send != "test"){

print'<form method="post"><input type="hidden" name=pw
value='.$pass.'><input type="hidden" name=send value=yes>

<br><b>Newsletter editor:</b><br><br>

Subject:<br>

<input type="text" name="subject" size=20><br>

Message:<br>

<textarea cols=50 rows=10 wrap="virtual" name="message"></textarea><br><br>

<input type="submit" value="send">

</form>';

}

# Predefine the Mail Settings for sending...

$mailheaders = "From: $lettername\n";

$mailheaders .= "Reply-To:$youremail\n";

# add data in bcc fields

# Data was ok, send button is pressed

if ($send == "yes"){

$message=stripslashes($message);

$subject=stripslashes($subject);

$lines = explode("%",$content);

for ($key=1;$key<sizeof($lines);$key++){

mail ($lines[$key],$subject,$message,$mailheaders);

}

print "<b>The following email has been sent!</b>";

print "<pre>$mailheaders\n$subject\n$message</pre>";

}

}



########################################################################

# The Form for the users...

########################################################################

if ($pw != $pass && $disp != "no"){

print $welcomemessage;

print'

<div align="center"><form method="post">

<input type="text" name="email" value="[EMAIL PROTECTED]" size=30>

<input type="radio" name="action" value="sign" checked>subscribe

<input type="radio" name="action" value="delete">unsubscribe<br>

<input type="submit" value="send">

</form></div>

';

}

print "<!-- Easyletter v1.1 Newsletterscript by Chris Heilmann, get yours @
http://www.onlinetools.org/easyletter/ -->";

?>

Thanks a lot,
gabi.





-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to