note 62572 deleted from function.mail by betz
| From: | betz@php.net | Date: | Sat, 04 Mar 2006 01:19:58 +0000 |
| Subject: | note 62572 deleted from function.mail by betz | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-104804@lists.php.net to get a copy of this message | ||
Note Submitter:
----
This is untested.
function checkmail($to, $subject, $message, $from) {
// Checks the to, subject, message, and from fields.
// checks to ensure they are entered, makes sure the email address is proper format, checks for
email
// injection, and ensures that a message is not sent more than once every 30 seconds.
// GETS: to, subject, message, and from
// RETURNS: an error message or nothing. Nothing on success.
if(!session_id()) {
session_start();
}
$messageerror = "";
if (!strlen($subject) > 0) {
$messageerror = "You must enter a subject";
}
if (!strlen($message) > 0) {
$messageerror = "You must enter a message";
}
if (!strlen($from) > 0) {
$messageerror = "You must enter an email address";
}
if (!ereg("[[:alnum:]]+@[[:alnum:]]+\.[[:alnum:]]+", $from)) {
$messageerror = "You must enter a valid email address";
}
if (eregi("\r", $subject) || eregi("\n", $subject) ||
eregi("%0a", $subject) || eregi("%0d", $subject) ||
eregi("Content-Type:", $subject) || eregi("bcc:", $subject) ||
eregi("to:", $subject) || eregi("cc:", $subject)) { $messageerror = "Email
Injection detected. Your message has not been sent."; } else { }
if (eregi("\r", $to) || eregi("\n", $to) || eregi("%0a", $to)
|| eregi("%0d", $to) || eregi("Content-Type:", $to) || eregi("bcc:",
$to) || eregi("to:", $to) || eregi("cc:", $to)) { $messageerror = "Email
Injection detected. Your message has not been sent."; } else { }
if (eregi("\r", $from) || eregi("\n", $from) || eregi("%0a",
$from) || eregi("%0d", $from) || eregi("Content-Type:", $from) ||
eregi("bcc:", $from) || eregi("to:", $from) || eregi("cc:", $from)) {
$messageerror = "Email Injection detected. Your message has not been sent."; } else { }
if ($messageerror == "") {
if (isset($_SESSION['rightnow'])) {
if (date('U') > ($_SESSION['rightnow'] + 30)) {
$_SESSION['rightnow'] = date('U');
} else {
$remaintime = ($_SESSION['rightnow'] + 30) - date('U');
$messageerror = "You cannot send another message for " . $remaintime .
" seconds";
}
} else {
$_SESSION['rightnow'] = date('U');
}
}
return $messageerror;
}