version 2 in progress
This commit is contained in:
commit
884256130e
|
@ -0,0 +1,230 @@
|
|||
//--------------------
|
||||
// READ ME
|
||||
//--------------------
|
||||
BellaBuffs v2 Copyright © Jem Turner 2006-2012
|
||||
|
||||
You are free to customise BellaBuffs (php code, style, appearance)
|
||||
as much as you like providing the link to http://www.jemjabella.co.uk
|
||||
remains ON the fanlisting management script. Because I'm a tightarse.
|
||||
|
||||
Installation of BellaBuffs is at your own risk. By using BellaBuffs
|
||||
you agree not to hold Jem Turner of jemjabella.co.uk responsible for
|
||||
any damages that may occur upon installing BellaBuffs or related plugins.
|
||||
You also agree not to sell copies of the script, or services relating to the
|
||||
script (i.e. installation, customisation, etc) without written permission
|
||||
of Jem Turner. Because I'm a tightarse.
|
||||
|
||||
Support is currently on hold while I pop out sprogs.
|
||||
Check the Girls Who Geek forums as most questions have already been answered:
|
||||
http://girlswhogeek.com/forums/forum/jemjabella-scripts
|
||||
|
||||
|
||||
|
||||
//--------------------
|
||||
// INSTRUCTIONS
|
||||
//--------------------
|
||||
1. Customise prefs.php - set your username, password and various preferences (yes or no etc)
|
||||
2. Upload all of the files to a directory
|
||||
3. CHMOD all of the txt files to 666 - this makes them writeable
|
||||
4. CHMOD the buttons directory to 777
|
||||
(BEWARE: can be a security risk! CHMOD 'buttons' to 755 when not using the upload feature)
|
||||
|
||||
NOTE: some hosts run PHP as CGI, which usually eradicates the need to change
|
||||
the permissions on files and folders. Try joining as a test member before
|
||||
CHMODing any files to see if this is true for you. This makes the script more
|
||||
secure overall. If you get an error, CHMOD the files as above.
|
||||
|
||||
|
||||
__________________________ HOW DO I CHMOD/CHANGE FILE PERMISSIONS?
|
||||
|
||||
There are lots of tutorials on CHMODing which can be found through Google:
|
||||
http://www.google.com/search?q=chmod+tutorial
|
||||
|
||||
|
||||
__________________________ HOW DO I ADD A LAYOUT TO MY FANLISTING?
|
||||
|
||||
The script is set up to use the popular header/footer include system. That
|
||||
means you add the 'top' of your layout - things like divs, header images
|
||||
etc. to the header.php file and the bottom of your layout - closing notices
|
||||
and copyright signs - to the footer.php file.
|
||||
|
||||
For more information on PHP includes (for layout purposes) see this tutorial:
|
||||
http://girlswhogeek.com/tutorials/2006/php-includes
|
||||
|
||||
|
||||
__________________________ HOW DO I UPDATE MY FANLISTING?
|
||||
|
||||
Open your admin panel - this will be located in your online BellaBuffs folder
|
||||
as admin.php. E.g. http://your-domain.com/bellabuffs/admin.php
|
||||
|
||||
Login and choose "Add Update". The date will automatically be inserted for you
|
||||
into the form with the timestamp format set in config.php
|
||||
|
||||
Add your update. If you have no details, leave the details field blank and only
|
||||
the date will be updated. Each update will replace the previous.
|
||||
|
||||
|
||||
__________________________ HOW DO I ADD A BUTTON/CODE?
|
||||
|
||||
Open your admin panel - this will be located in your online BellaBuffs folder
|
||||
as admin.php. E.g. http://your-domain.com/bellabuffs/admin.php
|
||||
|
||||
Login and choose "Add Button". Find the button/code on your computer.
|
||||
|
||||
If the button was donated, fill in the fields. If not, leave them blank. Buttons
|
||||
will automatically be added and sorted on the buttons.php page.
|
||||
|
||||
|
||||
__________________________ HOW DO I DISPLAY THE MEMBER/BUTTON/ETC COUNT?
|
||||
|
||||
This is done using the custom countfile() function. Simply add the
|
||||
name of the file, as defined in config.php, between the brackets.
|
||||
|
||||
For example, to count the members, put: <?php countfile(MEMBERS); ?>
|
||||
..to count the newbies: <?php countfile(NEWBIES); ?>
|
||||
..to count the buttons: <?php countfile(BUTTONS); ?> .. etc.
|
||||
|
||||
|
||||
__________________________ WHAT'S A CAPTCHA?
|
||||
|
||||
A captcha is generally an image that is automatically generated with a mixture of
|
||||
letters and numbers on it that a person must fill out exactly right before they
|
||||
are able to submit information through a form - in the case of the BellaBuffs
|
||||
captcha, before they are allowed to join.
|
||||
|
||||
Because captchas are image based, they have accessibility implications. Please
|
||||
consider those who browse with images turned off and/or those with eyesight
|
||||
related disabilities before turning on the captcha - it is only needed if you suffer
|
||||
from large amounts of bot-based spam.
|
||||
|
||||
You can read more about captchas at wikipedia: http://en.wikipedia.org/wiki/Captcha
|
||||
|
||||
|
||||
__________________________ I AM LISTED AT THEFANLISTINGS.ORG, CAN I USE THE CAPTCHA?
|
||||
|
||||
I contacted the Senior Staff of TheFanlistings.Org because I wasn't sure - I was
|
||||
told that the usage of captchas is allowed providing an alternative method is
|
||||
displayed so that users who cannot for some reason display/use the captcha can
|
||||
join too. This means that you MUST link to an e-mail address or other method of
|
||||
contact as an alternative if you use the captcha.
|
||||
|
||||
|
||||
__________________________ CAN I MANAGE MULTIPLE FANLISTINGS THROUGH BELLABUFFS?
|
||||
|
||||
You will need to install a separate version of BellaBuffs for each fanlisting you
|
||||
wish to have on your site. Also, there is currently no collective feature for
|
||||
BellaBuffs so each fanlisting has to be managed through it's own admin panel.
|
||||
|
||||
|
||||
|
||||
//--------------------
|
||||
// FEATURES
|
||||
//--------------------
|
||||
* Spam word and IP blocking
|
||||
* Valid country checking to prevent text injection
|
||||
* E-mail scrambling and JavaScript protection
|
||||
* Optional favourites field and spam-preventing captcha
|
||||
* 'Paginate' members in admin panel too
|
||||
* Sort members by country/join date
|
||||
* Button ('code') upload & management
|
||||
* Affiliate management (inc. button upload)
|
||||
* Valid XHTML Transitional by default
|
||||
* Auto-update date when approving member
|
||||
* Optional update 'details' (single-entry) log
|
||||
|
||||
//--------------------
|
||||
// FIXES IN VERS 2
|
||||
//--------------------
|
||||
- Update to countries list, as provided by Haley
|
||||
- Updated contact form based on latest vers of Jem's PHP Mail Form (jemsmailform.com)
|
||||
- New functions in functions.php for contact.php
|
||||
- Updated join form to fix deprecated ereg errors + update spammy checks
|
||||
- $maxpoints added to prefs.php
|
||||
|
||||
|
||||
//--------------------
|
||||
// FIXES IN VERS 1b-1f
|
||||
//--------------------
|
||||
In admin.php on line 216, !ctype_digit($line) replaced with !ctype_digit($_GET['mem'])
|
||||
In join.php on line 62, checkTXTfile(SPAMWDS, $clean['name'] replaced with (checkTXTfile(SPAMWDS, $clean['name']
|
||||
In join.php on line 62, checkTXTfile(SPAMWDS, $clean['fave'], "spamword") === true) { replaced with checkTXTfile(SPAMWDS, $clean['fave'], "spamword") === true)) {
|
||||
More rigorous testing of file names added to prevent broken images if a comma is in button/affiliate file name.
|
||||
Added check to see if member exists before sending update info form
|
||||
Search functionality added to admin panel
|
||||
Added meta injection checks (this should have been added before the script was released!)
|
||||
|
||||
//--------------------
|
||||
// FIXES IN VERS 1g-1k
|
||||
//--------------------
|
||||
Fixed XHTML validity issue in admin.php (Thank you Shawna: http://www.eruantale.net)
|
||||
Added extra checks to join.php & update.php, fixed email check in update.php
|
||||
Fixed issue with uppercase emails being used in admin search
|
||||
|
||||
//--------------------
|
||||
// FIXES IN VERS 1h: Suggestions and bug reports courtesy of Tea P. (http://colorfilter.net)
|
||||
//--------------------
|
||||
Fixed XHTML validity issue in form textareas in: join.php, update.php and contact.php
|
||||
Changed value of submit button in contact.php (copy&paste error!)
|
||||
Included footer.php in join.php error messages
|
||||
Added fixEmail() to "Reply-To: " in e-mail admin section of join.php
|
||||
Added "Please select a country:" option to join.php and update.php
|
||||
Added dynamic link to approved/pending members edit section after editing member
|
||||
Added count of members for each country in members.php
|
||||
Changed broken $email to $admin_email in "Reply-To: " in approval section of admin.php
|
||||
More sanitisation of dispemail in join.php to prevent empty lines/commas being submitted
|
||||
Further improvements to cleanUp() in config.php to strip stray new lines not caught by trim()
|
||||
|
||||
//--------------------
|
||||
// FIXES IN VERS 1l-1p
|
||||
//--------------------
|
||||
Fixed typos/wording errors in join.php, contact.php and update.php (Thanks Julie: http://jul13.ju.funpic.org)
|
||||
checkTXTfile() function altered (config.php) to use in_array instead of preg_match
|
||||
Footer link changed to match new URL (jemjabella.co.uk/scripts)
|
||||
Closed file after blanklinefix() (config.php) as a safety precaution
|
||||
Fixed data sanitisation bug in join.php caused by fix in 1k
|
||||
Altered lastupdate() function making details optional (config.php)
|
||||
Fixed dynamic "approve more members"/"no members to be approved" link (admin.php)
|
||||
Fixed IP issue (blocked IPs caused country error) in config.php & join.php (Thanks Michele: http://www.absolutetrouble.com)
|
||||
Changed captcha image to make it harder for bots to separate colours
|
||||
|
||||
//--------------------
|
||||
// FIXES IN VERS 1q-1t
|
||||
//--------------------
|
||||
Fixed pagination bug created by optimisation in version 1m
|
||||
Modified join.php to display inline errors; additional spam protection
|
||||
Implemented two potential fixes for those losing members due to script time-out (config.php)
|
||||
More tidying of admin.php to reduce superfluous code
|
||||
Separated functions and preferences to allow for easier upgrading (config.php renamed to prefs.php)
|
||||
Added "edit affiliate" and "edit button" button replacement functionality
|
||||
Improved security to reduce CSRF risk (admin.php)
|
||||
Implemented checkbox for mass approve & delete (admin.php)
|
||||
Alternating row colours to visually distinguish members (admin.php)
|
||||
Added default sort option, oldest or newest first (prefs.php, admin.php)
|
||||
Populated spam words list with common spam and profanity (spamwds.txt)
|
||||
Further user agent checking to defeat bots (join.php)
|
||||
Fixed blank fave error caused by changes in 1r (join.php)
|
||||
Added new line to admin.php when sorting members by oldest first
|
||||
|
||||
|
||||
//--------------------
|
||||
// CREDITS
|
||||
//--------------------
|
||||
Mucho thanks go to the following people for helping with BellaBuffs:
|
||||
|
||||
Amelie - http://not-noticeably.net
|
||||
Katy - http://cathode-ray-coma.co.uk
|
||||
|
||||
Amelie and Katy were there for my constant swearing, frustrated
|
||||
coding-related ramblings, bug testings, suggestions, snippy "I know best"
|
||||
responses and major dense moments. Without them, this script would
|
||||
not exist, and my partner Karl would get a lot more earache.
|
||||
|
||||
The following others also helped with last minute beta/bug testing:
|
||||
|
||||
Julie - http://jul13.ju.funpic.org
|
||||
Frosty - http://telperionworld.com
|
||||
Jenny - http://www.prism-perfect.net
|
||||
Ang - http://www.silencia.net
|
||||
Ilona - http://www.puwing.com
|
||||
Tea P. - http://colorfilter.net
|
||||
Michele - http://www.absolutetrouble.com
|
Binary file not shown.
After Width: | Height: | Size: 781 B |
Binary file not shown.
After Width: | Height: | Size: 587 B |
Binary file not shown.
After Width: | Height: | Size: 714 B |
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
require_once('prefs.php');
|
||||
include_once('header.php');
|
||||
?>
|
||||
<h1>Affiliates</h1>
|
||||
<p>
|
||||
<?php
|
||||
if (filesize(AFFILIATES) > 0) {
|
||||
$array = file(AFFILIATES);
|
||||
foreach ($array as $value) {
|
||||
list($affButton,$affName,$affEmail,$affURL,$affSitename) = preg_split("/,(?! )/",$value);
|
||||
echo "<a href=\"$affURL\" title=\"affiliate: $affName of $affSitename\"><img src=\"buttons/$affButton\" alt=\"$affSitename button\" /></a>";
|
||||
}
|
||||
} else {
|
||||
echo "There are no affiliates.";
|
||||
} ?>
|
||||
</p>
|
||||
|
||||
<?php include('footer.php'); ?>
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
require_once('prefs.php');
|
||||
include_once('header.php');
|
||||
?>
|
||||
<h1>Buttons (Codes)</h1>
|
||||
|
||||
<?php
|
||||
if (filesize(BUTTONS) > 0) {
|
||||
if (isset($_GET['p'])) {
|
||||
if ($_GET['p'] != "[0-9]x[0-9]" && !ctype_alnum($_GET['p'])) {
|
||||
echo "<p>That is not a valid button size. <a href=\"buttons.php\">See all sizes?</a></p>";
|
||||
include('footer.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
getButtonSizes();
|
||||
list($width,$height) = preg_split("/x/",$_GET['p']);
|
||||
getButtons($width, $height);
|
||||
} else {
|
||||
getButtonSizes();
|
||||
}
|
||||
} else {
|
||||
echo "<p>There are no buttons.</p>";
|
||||
}
|
||||
|
||||
include('footer.php'); ?>
|
Binary file not shown.
After Width: | Height: | Size: 5.9 KiB |
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
session_start();
|
||||
$md5 = md5(microtime() * mktime());
|
||||
$string = substr($md5,0,5);
|
||||
|
||||
$captcha = imagecreatefromjpeg("captcha.jpg");
|
||||
$black = imagecolorallocate($captcha, 0, 0, 0);
|
||||
$line = imagecolorallocate($captcha,233,239,239);
|
||||
imageline($captcha,0,0,39,29,$line);
|
||||
imageline($captcha,40,0,64,29,$line);
|
||||
imagestring($captcha, 5, 20, 10, $string, $black);
|
||||
|
||||
$_SESSION['key'] = md5($string);
|
||||
|
||||
header("Content-type: image/jpeg");
|
||||
imagejpeg($captcha);
|
||||
?>
|
|
@ -0,0 +1,115 @@
|
|||
<?php
|
||||
require_once('prefs.php');
|
||||
|
||||
$error_msg = null;
|
||||
$result = null;
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == "POST") {
|
||||
if (isBot() !== false)
|
||||
$error_msg .= "No bots please! UA reported as: ".$_SERVER['HTTP_USER_AGENT'];
|
||||
|
||||
// lets check a few things - not enough to trigger an error on their own, but worth assigning a spam score..
|
||||
// score quickly adds up therefore allowing genuine users with 'accidental' score through but cutting out real spam :)
|
||||
$points = (int)0;
|
||||
|
||||
$badwords = file(SPAMWDS);
|
||||
|
||||
foreach ($badwords as $word)
|
||||
if (
|
||||
strpos(strtolower($_POST['comments']), $word) !== false ||
|
||||
strpos(strtolower($_POST['name']), $word) !== false
|
||||
)
|
||||
$points += 2;
|
||||
|
||||
if (strpos($_POST['comments'], "http://") !== false || strpos($_POST['comments'], "www.") !== false)
|
||||
$points += 2;
|
||||
if (isset($_POST['nojs']))
|
||||
$points += 1;
|
||||
if (preg_match("/(<.*>)/i", $_POST['comments']))
|
||||
$points += 2;
|
||||
if (strlen($_POST['name']) < 3)
|
||||
$points += 1;
|
||||
if (strlen($_POST['comments']) < 15 || strlen($_POST['comments'] > 1500))
|
||||
$points += 2;
|
||||
// end score assignments
|
||||
|
||||
foreach($requiredFields as $field) {
|
||||
trim($_POST[$field]);
|
||||
|
||||
if (!isset($_POST[$field]) || empty($_POST[$field]))
|
||||
$error_msg .= "Please fill in all the required fields and submit again.\r\n";
|
||||
}
|
||||
|
||||
if (!preg_match("/^[a-zA-Z-'\s]*$/", stripslashes($_POST['name'])))
|
||||
$error_msg .= "The name field is required, and must not contain special characters.\r\n";
|
||||
if (!preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+' . '(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i', strtolower($_POST['email'])))
|
||||
$error_msg .= "The e-mail field is required, and must be a valid e-mail address.\r\n";
|
||||
if (!empty($_POST['url']) && !preg_match('/^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i', $_POST['url']))
|
||||
$error_msg .= "Invalid website url.\r\n";
|
||||
|
||||
if ($error_msg == NULL && $points <= $maxPoints) {
|
||||
$subject = "Contact form submission from ". $title;
|
||||
|
||||
$message = "You received this e-mail message through your fanlisting: \n\n";
|
||||
foreach ($_POST as $key => $val) {
|
||||
$message .= ucwords($key) . ": " . clean($val) . "\r\n";
|
||||
}
|
||||
$message .= "\r\n";
|
||||
$message .= 'IP: '.$_SERVER['REMOTE_ADDR']."\r\n";
|
||||
$message .= 'Browser: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
|
||||
$message .= 'Points: '.$points;
|
||||
|
||||
if (strstr($_SERVER['SERVER_SOFTWARE'], "Win")) {
|
||||
$headers = "From: {$admin_email}\n";
|
||||
$headers .= "Reply-To: {$_POST['email']}";
|
||||
} else {
|
||||
$headers = "From: {$title} <{$admin_email}>\n";
|
||||
$headers .= "Reply-To: {$_POST['email']}";
|
||||
}
|
||||
|
||||
if (mail($admin_email,$subject,$message,$headers)) {
|
||||
$result = 'Your mail was successfully sent.';
|
||||
$disable = true;
|
||||
} else {
|
||||
$error_msg = 'Your mail could not be sent this time. ['.$points.']';
|
||||
}
|
||||
} else {
|
||||
if (empty($error_msg))
|
||||
$error_msg = 'Your mail looks too much like spam, and could not be sent this time. ['.$points.']';
|
||||
}
|
||||
}
|
||||
include_once('header.php');
|
||||
?>
|
||||
<h1>Contact Admin</h1>
|
||||
<p>This form is for contacting the fanlisting owner only -- it is not to be used to join the fanlisting unless you have been directed to do so. (Name, e-mail and comments are required fields.)</p>
|
||||
|
||||
<?php
|
||||
if ($error_msg != NULL)
|
||||
echo '<p class="error">ERROR: '. nl2br($error_msg) . "</p>";
|
||||
|
||||
if ($result != NULL)
|
||||
echo '<p class="success">'. $result . "</p>";
|
||||
?>
|
||||
|
||||
<form action="contact.php" method="post">
|
||||
<noscript>
|
||||
<p><input type="hidden" name="nojs" id="nojs" /></p>
|
||||
</noscript>
|
||||
<p>
|
||||
<label for="name">Name *</label><br /> <input type="text" id="name" name="name" value="<?php get_data("name"); ?>" /> <br />
|
||||
<label for="email">E-mail *</label><br /> <input type="text" id="email" name="email" value="<?php get_data("email"); ?>" /> <br />
|
||||
<label for="url">Website</label><br /> <input type="text" id="url" name="url" value="http://" /> <br />
|
||||
<label for="reason">Reason for contact</label><br /> <select name="reason" id="reason">
|
||||
<option value="affiliate-request">Affiliate Request</option>
|
||||
<option value="couldnt-join">Joining Problem</option>
|
||||
<option value="button-donation">Button Donation</option>
|
||||
<option value="other">Other</option>
|
||||
</select> <br />
|
||||
<label for="comments">Comments *</label><br /> <textarea name="comments" id="comments" rows="3" cols="25"><?php get_data("comments"); ?></textarea><br />
|
||||
</p>
|
||||
<p>
|
||||
<input type="submit" name="submit" id="submit" value="Send" <?php if (isset($disable) && $disable === true) echo ' disabled="disabled"'; ?> />
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<?php include('footer.php'); ?>
|
|
@ -0,0 +1,197 @@
|
|||
Afghanistan
|
||||
Albania
|
||||
Algeria
|
||||
Andorra
|
||||
Angola
|
||||
Antigua and Barbuda
|
||||
Argentina
|
||||
Armenia
|
||||
Australia
|
||||
Austria
|
||||
Azerbaijan
|
||||
Bahamas
|
||||
Bahrain
|
||||
Bangladesh
|
||||
Barbados
|
||||
Belarus
|
||||
Belgium
|
||||
Belize
|
||||
Benin
|
||||
Bhutan
|
||||
Bolivia
|
||||
Bosnia and Herzegovina
|
||||
Botswana
|
||||
Brazil
|
||||
Brunei
|
||||
Bulgaria
|
||||
Burkina Faso
|
||||
Burundi
|
||||
Cambodia
|
||||
Cameroon
|
||||
Canada
|
||||
Cape Verde
|
||||
Central African Republic
|
||||
Chad
|
||||
Chile
|
||||
China
|
||||
Colombia
|
||||
Comoros
|
||||
Costa Rica
|
||||
Cote D'Ivoire
|
||||
Croatia
|
||||
Cuba
|
||||
Cyprus
|
||||
Czech Republic
|
||||
Democratic Republic of the Congo
|
||||
Denmark
|
||||
Djibouti
|
||||
Dominica
|
||||
Dominican Republic
|
||||
East Timor
|
||||
Ecuador
|
||||
Egypt
|
||||
El Salvador
|
||||
England
|
||||
Equatorial Guinea
|
||||
Eritrea
|
||||
Estonia
|
||||
Ethiopia
|
||||
Fiji
|
||||
Finland
|
||||
France
|
||||
Gabon
|
||||
Gambia
|
||||
Georgia
|
||||
Germany
|
||||
Ghana
|
||||
Greece
|
||||
Grenada
|
||||
Guatemala
|
||||
Guinea
|
||||
Guinea-Bissau
|
||||
Guyana
|
||||
Haiti
|
||||
Honduras
|
||||
Hungary
|
||||
Iceland
|
||||
India
|
||||
Indonesia
|
||||
Iran
|
||||
Iraq
|
||||
Ireland
|
||||
Israel
|
||||
Italy
|
||||
Jamaica
|
||||
Japan
|
||||
Jordan
|
||||
Kazakhstan
|
||||
Kenya
|
||||
Kiribati
|
||||
Kuwait
|
||||
Kyrgyzstan
|
||||
Laos
|
||||
Latvia
|
||||
Lebanon
|
||||
Lesotho
|
||||
Liberia
|
||||
Libya
|
||||
Liechtenstein
|
||||
Lithuania
|
||||
Luxembourg
|
||||
Macedonia
|
||||
Madagascar
|
||||
Malawi
|
||||
Malaysia
|
||||
Maldives
|
||||
Mali
|
||||
Malta
|
||||
Marshall Islands
|
||||
Mauritania
|
||||
Mauritius
|
||||
Mexico
|
||||
Micronesia
|
||||
Moldova
|
||||
Monaco
|
||||
Mongolia
|
||||
Montenegro
|
||||
Morocco
|
||||
Mozambique
|
||||
Myanmar
|
||||
Namibia
|
||||
Nauru
|
||||
Nepal
|
||||
Netherlands
|
||||
New Zealand
|
||||
Nicaragua
|
||||
Niger
|
||||
Nigeria
|
||||
North Korea
|
||||
Northern Ireland
|
||||
Norway
|
||||
Oman
|
||||
Pakistan
|
||||
Palau
|
||||
Panama
|
||||
Papua New Guinea
|
||||
Paraguay
|
||||
Peru
|
||||
Philippines
|
||||
Poland
|
||||
Portugal
|
||||
Qatar
|
||||
Republic of the Congo
|
||||
Romania
|
||||
Russia
|
||||
Rwanda
|
||||
Saint Kitts and Nevis
|
||||
Saint Lucia
|
||||
Saint Vincent and the Grenadines
|
||||
Samoa
|
||||
San Marino
|
||||
Sao Tome and Principe
|
||||
Saudi Arabia
|
||||
Scotland
|
||||
Senegal
|
||||
Serbia
|
||||
Seychelles
|
||||
Sierra Leone
|
||||
Singapore
|
||||
Slovakia
|
||||
Slovenia
|
||||
Solomon Islands
|
||||
Somalia
|
||||
South Africa
|
||||
South Korea
|
||||
Spain
|
||||
Sri Lanka
|
||||
Sudan
|
||||
Suriname
|
||||
Swaziland
|
||||
Sweden
|
||||
Switzerland
|
||||
Syria
|
||||
Tajikistan
|
||||
Tanzania
|
||||
Thailand
|
||||
Togo
|
||||
Tonga
|
||||
Trinidad and Tobago
|
||||
Tunisia
|
||||
Turkey
|
||||
Turkmenistan
|
||||
Tuvalu
|
||||
Uganda
|
||||
Ukraine
|
||||
United Arab Emirates
|
||||
United Kingdom
|
||||
United States
|
||||
Uruguay
|
||||
Uzbekistan
|
||||
Vanuatu
|
||||
Vatican
|
||||
Venezuela
|
||||
Vietnam
|
||||
Wales
|
||||
Yemen
|
||||
Zambia
|
||||
Zimbabwe
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
<p>Powered by <a href="http://www.jemjabella.co.uk/scripts">BellaBuffs</a></p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,210 @@
|
|||
<?php
|
||||
$classA = "literow";
|
||||
$classB = "darkrow";
|
||||
|
||||
define("MEMBERS", "members.txt");
|
||||
define("NEWBIES", "newbies.txt");
|
||||
define("IPBLOCKLST", "ipblock.txt");
|
||||
define("SPAMWDS", "spamwds.txt");
|
||||
define("COUNTRIES", "countries.txt");
|
||||
define("BUTTONS", "buttons.txt");
|
||||
define("AFFILIATES", "affiliates.txt");
|
||||
define("UPDATES", "updates.txt");
|
||||
|
||||
|
||||
function cleanUp($text) {
|
||||
$text = strip_tags($text);
|
||||
$text = str_replace(',', '|', str_replace('\r', '', str_replace('\n', '', trim(htmlentities($text)))));
|
||||
|
||||
return $text;
|
||||
}
|
||||
function isBot() {
|
||||
$bots = array("Indy", "Blaiz", "Java", "libwww-perl", "Python", "OutfoxBot", "User-Agent", "PycURL", "AlphaServer", "T8Abot", "Syntryx", "WinHttp", "WebBandit", "nicebot", "Teoma", "alexa", "froogle", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz");
|
||||
|
||||
foreach ($bots as $bot)
|
||||
if (stripos($_SERVER['HTTP_USER_AGENT'], $bot) !== false)
|
||||
return true;
|
||||
|
||||
if (empty($_SERVER['HTTP_USER_AGENT']) || $_SERVER['HTTP_USER_AGENT'] == " ")
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function get_countries($ThisCountry) {
|
||||
$fh = @fopen(COUNTRIES, "r") or die ("Couldn't open the country list.");
|
||||
while(!feof($fh)) {
|
||||
$country = fgetcsv($fh, 4096);
|
||||
|
||||
for ($i=0; $i<1; $i++) {
|
||||
echo "<option value=\"$country[0]\" "; if ($ThisCountry == $country[0]) { echo "selected=\"selected\""; } echo ">$country[0]</option>";
|
||||
}
|
||||
}
|
||||
fclose($fh);
|
||||
}
|
||||
|
||||
function lastupdate($showdetails = 'yes') {
|
||||
$updatesArray = file(UPDATES);
|
||||
foreach($updatesArray as $updateValue) {
|
||||
list($date,$update) = preg_split("/,(?! )/",$updateValue);
|
||||
echo str_replace('|', ',', $date);
|
||||
if ($showdetails == "yes" && (!empty($update) || $update != "")) {
|
||||
echo "<br /><strong>Update Details:</strong> " . stripslashes(str_replace('|', ',', $update));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function blanklinefix($inputfile) {
|
||||
ignore_user_abort(true);
|
||||
$content = file($inputfile);
|
||||
|
||||
if (count($content) > 0) {
|
||||
$content = array_diff(array_diff($content, array("")), array("\n"));
|
||||
|
||||
$newContent = array();
|
||||
foreach ($content as $line) {
|
||||
$newContent[] = trim($line);
|
||||
}
|
||||
$newContent = implode("\n", $newContent);
|
||||
|
||||
$fl = fopen($inputfile, "w+");
|
||||
if (flock($fl, LOCK_EX)) {
|
||||
fwrite($fl, $newContent);
|
||||
flock($fl, LOCK_UN);
|
||||
} else {
|
||||
echo 'The file: '.$inputfile.' could not be locked for writing; the blanklinefix function could not be applied at this time.';
|
||||
}
|
||||
fclose($fl);
|
||||
}
|
||||
ignore_user_abort(false);
|
||||
}
|
||||
|
||||
|
||||
function countfile($fileloc) {
|
||||
$file = file($fileloc);
|
||||
$count = count($file);
|
||||
echo $count;
|
||||
}
|
||||
|
||||
function checkTXTfile($file, $input, $inputtype) {
|
||||
$Array = array();
|
||||
$fh = @fopen($file, "r") or die ("Couldn't open $file.");
|
||||
while(!feof($fh)) {
|
||||
$item = fgetcsv($fh, 4096);
|
||||
|
||||
if ($inputtype == "country" || $inputtype == "ip") {
|
||||
for ($i=0; $i<1; $i++) {
|
||||
$Array[] = $item[0];
|
||||
}
|
||||
} elseif ($inputtype == "email") {
|
||||
for ($i=0; $i<1; $i++) {
|
||||
$Array[] = $item[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose($fh);
|
||||
|
||||
if (in_array($input, $Array)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function addmember($member) {
|
||||
$data = file_get_contents(NEWBIES);
|
||||
|
||||
$fp = fopen(NEWBIES, "w") or die ("Couldn't open NEWBIES - you weren't added to the fanlisting.");
|
||||
if (flock($fp, LOCK_EX)) {
|
||||
fwrite($fp, $member);
|
||||
flock($fp, LOCK_UN);
|
||||
} else {
|
||||
echo 'The file: newbies.txt could not be locked for writing; you could not be added at this time.';
|
||||
}
|
||||
fclose($fp);
|
||||
|
||||
$fp2 = fopen(NEWBIES, "a") or die ("Couldn't open NEWBIES.");
|
||||
if (flock($fp2, LOCK_EX)) {
|
||||
fwrite($fp2, $data);
|
||||
flock($fp2, LOCK_UN);
|
||||
} else {
|
||||
echo 'The file: newbies.txt could not be locked for writing; other new members could not be re-added to newbies.txt';
|
||||
}
|
||||
fclose($fp2);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function breakEmail($email) {
|
||||
$email = str_replace('.', 'DOTTY', $email);
|
||||
$email = str_replace('@', 'ATTIE', $email);
|
||||
$email = str_replace('-', 'DASHY', $email);
|
||||
$email = str_replace('_', 'SCORE', $email);
|
||||
|
||||
return $email;
|
||||
}
|
||||
function fixEmail($email) {
|
||||
$email = str_replace('DOTTY', '.', $email);
|
||||
$email = str_replace('ATTIE', '@', $email);
|
||||
$email = str_replace('DASHY', '-', $email);
|
||||
$email = str_replace('SCORE', '_', $email);
|
||||
|
||||
return $email;
|
||||
}
|
||||
|
||||
function getButtons($width, $height) {
|
||||
echo "<p> \n";
|
||||
$array = file(BUTTONS);
|
||||
foreach ($array as $value) {
|
||||
if (preg_match("/$width,$height/i", $value)) {
|
||||
list($file,$width2,$height2,$donated,$donator,$donatorUrl) = preg_split("/,(?! )/",$value);
|
||||
$donatorUrl = trim($donatorUrl);
|
||||
if ($donated == "yes") {
|
||||
if ($donatorUrl != "") {
|
||||
echo "<a href=\"$donatorUrl\" title=\"donated by $donator\"><img src=\"buttons/$file\" alt=\"{$width2}x{$height2} button\" /></a> \n";
|
||||
} else {
|
||||
echo "<img src=\"buttons/$file\" alt=\"{$width2}x{$height2} button\" title=\"donated by $donator\" /> \n";
|
||||
}
|
||||
} else {
|
||||
echo "<img src=\"buttons/$file\" alt=\"{$width2}x{$height2} button\" /> \n";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</p> \n";
|
||||
}
|
||||
function getButtonSizes() {
|
||||
$array = file(BUTTONS);
|
||||
$buttons_found = array();
|
||||
|
||||
foreach ($array as $value) {
|
||||
list($file,$width,$height,$donated,$donator,$donatorUrl) = preg_split("/,(?! )/",$value);
|
||||
$buttons_found[] = $width . "x" . $height;
|
||||
}
|
||||
$buttons_found = array_unique($buttons_found);
|
||||
natcasesort($buttons_found);
|
||||
|
||||
echo "<ul>";
|
||||
foreach ($buttons_found as $size) {
|
||||
echo "<li><a href=\"buttons.php?p={$size}\">{$size}</a></li> \n";
|
||||
}
|
||||
echo "<li><a href=\"buttons.php?p=[0-9]x[0-9]\">View All?</a></li>";
|
||||
echo "</ul>";
|
||||
}
|
||||
|
||||
function get_data($var) {
|
||||
if (isset($_POST[$var]))
|
||||
echo htmlspecialchars($_POST[$var]);
|
||||
}
|
||||
|
||||
blanklinefix(COUNTRIES);
|
||||
blanklinefix(IPBLOCKLST);
|
||||
blanklinefix(MEMBERS);
|
||||
blanklinefix(NEWBIES);
|
||||
blanklinefix(SPAMWDS);
|
||||
blanklinefix(BUTTONS);
|
||||
blanklinefix(AFFILIATES);
|
||||
blanklinefix(UPDATES);
|
||||
|
||||
error_reporting(E_ALL);
|
||||
?>
|
|
@ -0,0 +1,29 @@
|
|||
<?php if (!is_writable(MEMBERS) || !is_writable(NEWBIES) || !is_writable(SPAMWDS) || !is_writable(BUTTONS) || !is_writable(AFFILIATES) || !is_writable(UPDATES)) {
|
||||
echo "<p>This script cannot run unless the .txt files have been uploaded and have write permissions. Please ensure they are CHMODed/have permissions set to 666.</p>";
|
||||
exit;
|
||||
} ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.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" />
|
||||
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<title><?php echo $title; ?> - Powered by BellaBuffs</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<ul id="navigation">
|
||||
<li><a href="index.php">Index</a></li>
|
||||
<li><a href="buttons.php">Buttons</a></li>
|
||||
<li><a href="join.php">Join</a></li>
|
||||
<li><a href="members.php">Members</a></li>
|
||||
<li><a href="affiliates.php">Affiliates</a></li>
|
||||
<li><a href="contact.php">Contact</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
require_once('prefs.php');
|
||||
include_once('header.php');
|
||||
?>
|
||||
|
||||
<h1>Welcome to <?php echo $title; ?></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
<strong>Members:</strong> <?php countfile(MEMBERS); ?><br />
|
||||
<strong>Pending:</strong> <?php countfile(NEWBIES); ?><br />
|
||||
<strong>Last Update:</strong> <?php lastupdate(); ?>
|
||||
</p>
|
||||
|
||||
<?php include('footer.php'); ?>
|
|
@ -0,0 +1,206 @@
|
|||
<?php
|
||||
$show_form = true;
|
||||
$error_msg = NULL;
|
||||
|
||||
if (isset($_POST['submit'])) {
|
||||
require_once('prefs.php');
|
||||
if (isset($captcha) && $captcha == "yes") {
|
||||
session_start();
|
||||
if (isset($_SESSION['key'])) {
|
||||
if(md5($_POST['captcha']) != $_SESSION['key']) {
|
||||
setcookie(session_name(), '', time()-36000, '/');
|
||||
$_SESSION = array();
|
||||
session_destroy();
|
||||
|
||||
echo "<p>The text you entered didn't match the image, please <a href='join.php'>try again</a>.</p>";
|
||||
include('footer.php');
|
||||
exit;
|
||||
}
|
||||
if (isset($_SESSION['key']) && isset($_COOKIE[session_name()])) {
|
||||
setcookie(session_name(), '', time()-36000, '/');
|
||||
$_SESSION = array();
|
||||
session_destroy();
|
||||
}
|
||||
} else {
|
||||
echo "<p>The text you entered didn't match the image, please <a href='join.php'>try again</a>.</p>";
|
||||
include('footer.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
include_once('header.php');
|
||||
|
||||
if (isBot() !== false)
|
||||
$error_msg .= "No bots please! UA reported as: ".$_SERVER['HTTP_USER_AGENT'] . "\r\n";
|
||||
|
||||
if (substr_count($_POST['comments'], 'http://') > 1)
|
||||
$error_msg .= "Too many URLs; we've assumed you're spam and 'lost' your application. Please try again without any extra URLs if you're a geniune person :)\r\n";
|
||||
|
||||
$exploits = "/(content-type|bcc:|cc:|document.cookie|onclick|onload|javascript|alert)/i";
|
||||
if (filesize(SPAMWDS) > 0) $spamlist = file(SPAMWDS);
|
||||
|
||||
foreach ($_POST as $key => $val) {
|
||||
if (isset($spamlist)) {
|
||||
foreach ($spamlist as $spamword) {
|
||||
if (preg_match("/(".trim($spamword).")/i", $val)) {
|
||||
$error_msg .= "Your join application contains words in the spam list, please go back and remove references to obvious 'spam' material.\r\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (preg_match($exploits, $val))
|
||||
$error_msg .= "No meta injection, please.\r\n";
|
||||
|
||||
if (preg_match("/(<.*>)/i", $val))
|
||||
$error_msg .= "No HTML, please.\r\n";
|
||||
|
||||
$clean[$key] = cleanUp($val);
|
||||
}
|
||||
|
||||
// set default values for empty/unset fields
|
||||
if (empty($clean['dispemail']))
|
||||
$clean['dispemail'] = "no";
|
||||
|
||||
if (!isset($favefield) || $favefield == "no" || !isset($clean['fave']))
|
||||
$clean['fave'] = NULL;
|
||||
|
||||
// let's do some security and spam checks
|
||||
if (empty($clean['name']) || empty($clean['email']) || empty($clean['country']))
|
||||
$error_msg .= "Name, e-mail and country are required fields. \r\n";
|
||||
if (!preg_match("/^[a-zA-Z-'\s]*$/", $clean['name']))
|
||||
$error_msg .= "That name is not valid. Your name must contain letters only, and must be less than 15 characters. \r\n";
|
||||
if ($clean['dispemail'] != "yes" && $clean['dispemail'] != "no")
|
||||
$error_msg .= "You didn't choose whether or not you'd like to show your e-mail address on the member list. \r\n";
|
||||
if ($clean['fave'] != "" && (!preg_match("/^[a-zA-Z0-9-'\s]*$/", $clean['face']) || strlen($clean['fave']) > 20)) {
|
||||
$error_msg .= "Your chosen \"favourite\" is not valid. It must contain letters and numbers only, and must be less than 20 characters. \r\n";
|
||||
if (!preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+' . '(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i', strtolower($clean['email'])))
|
||||
$error_msg .= "The email address you have used is not valid. \r\n";
|
||||
if (!empty($clean['url']) && !preg_match('/^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i', $clean['url']))
|
||||
$error_msg .= "The website url you provided is not valid. Please remove and try again or fix the URL.\r\n";
|
||||
if ($clean['country'] == "null" || (filesize(COUNTRIES) > 0 && checkTXTfile(COUNTRIES, $clean['country'], "country") === false)) {
|
||||
$error_msg .= "Please select a valid country. \r\n";
|
||||
|
||||
if (filesize(IPBLOCKLST) > 0 && checkTXTfile(IPBLOCKLST, $_SERVER['REMOTE_ADDR'], "ip") === true) {
|
||||
echo "<p>Your IP is in the block list, that means you're not allowed to join at this time. \r\n</p>";
|
||||
exit(include('footer.php'));
|
||||
}
|
||||
if (filesize(NEWBIES) > 0 && checkTXTfile(NEWBIES, breakEmail($clean['email']), "email") === true) {
|
||||
echo "<p>You're already in the pending queue, you can't join twice!</p> \n";
|
||||
exit(include('footer.php'));
|
||||
}
|
||||
if (filesize(MEMBERS) > 0 && checkTXTfile(MEMBERS, breakEmail($clean['email']), "email") === true) {
|
||||
echo "<p>You're already a member of the fanlisting, you can't join twice!</p> \n";
|
||||
exit(include('footer.php'));
|
||||
}
|
||||
|
||||
if ($error_msg == NULL) {
|
||||
$show_form = false;
|
||||
|
||||
// attempt to break email to piss off spammers :p
|
||||
$clean['email'] = breakEmail(strtolower($clean['email']));
|
||||
|
||||
// send off some emails
|
||||
if ($emailnewbies == "yes") {
|
||||
$subject = "Thank you for joining $title";
|
||||
|
||||
$message = $thanksjoinMsg;
|
||||
$message .= "Name: {$clean['name']} \n";
|
||||
$message .= "Email: " . fixEmail($clean['email']) . " \n";
|
||||
$message .= "URL: {$clean['url']} \n";
|
||||
$message .= "Country: {$clean['country']} \n";
|
||||
if (isset($favefield) && $favefield == "yes") {
|
||||
$message .= "$favetext: {$clean['fave']} \n";
|
||||
}
|
||||
$message .= "Comments: {$clean['comments']} \n\n";
|
||||
|
||||
if (strstr($_SERVER['SERVER_SOFTWARE'], "Win")) {
|
||||
$headers = "From: $admin_email \n";
|
||||
$headers .= "Reply-To: $admin_email";
|
||||
} else {
|
||||
$headers = "From: $title <$admin_email> \n";
|
||||
$headers .= "Reply-To: <$admin_email>";
|
||||
}
|
||||
|
||||
mail(fixEmail($clean['email']),$subject,$message,$headers);
|
||||
}
|
||||
if ($emailadmin == "yes") {
|
||||
$subject = "New member at $title";
|
||||
|
||||
$message = "There's a new member at your $FLsubject fanlisting with the following details: \n\n";
|
||||
|
||||
$message .= "Name: {$clean['name']} \n";
|
||||
$message .= "Email: " . fixEmail($clean['email']) . " \n";
|
||||
$message .= "URL: {$clean['url']} \n";
|
||||
$message .= "Country: {$clean['country']} \n";
|
||||
if (isset($favefield) && $favefield == "yes") {
|
||||
$message .= "$favetext: {$clean['fave']} \n";
|
||||
}
|
||||
$message .= "Comments: {$clean['comments']} \n";
|
||||
$message .= "IP: {$_SERVER['REMOTE_ADDR']} \n\n";
|
||||
|
||||
$message .= "Manage members: {$FLurl}/admin.php?ap=manage_members&s=newbies";
|
||||
|
||||
if (!strstr($_SERVER['SERVER_SOFTWARE'], "Win")) {
|
||||
$headers = "From: $admin_email \n";
|
||||
$headers .= "Reply-To: " . fixEmail($clean['email']) . "";
|
||||
} else {
|
||||
$headers = "From: $title <$admin_email> \n";
|
||||
$headers .= "Reply-To: <" . fixEmail($clean['email']) . ">";
|
||||
}
|
||||
|
||||
mail($admin_email,$subject,$message,$headers);
|
||||
}
|
||||
|
||||
// add the member to the newbies txt file
|
||||
if (addmember("$clean[name],$clean[email],$clean[dispemail],$clean[url],$clean[country],$clean[fave]\n")) {
|
||||
echo "<h1>Thank You</h1> \n <p>Thank you for joining $title, the fanlisting for $FLsubject!</p>";
|
||||
} else {
|
||||
echo "<h1>Oh Dear!</h1> \n <p>Your application could not be added at this time. Please contact the owner of the fanlisting for help.</p>";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isset($_POST['submit']) || $show_form == true) {
|
||||
require_once('prefs.php');
|
||||
include_once('header.php');
|
||||
|
||||
?>
|
||||
<h1>Join the Fanlisting</h1>
|
||||
<p>To join the fanlisting, fill in your details below. Please do not use this form to update; use the <a href="update.php">update form</a> instead.</p>
|
||||
|
||||
<p>(Name, E-mail and Country are required fields.)</p>
|
||||
|
||||
<?php
|
||||
if ($error_msg != NULL) {
|
||||
echo "<p><strong style='color: red;'>ERROR:</strong><br />";
|
||||
echo nl2br($error_msg) . "</p>";
|
||||
}
|
||||
if (isset($_POST['country'])) $country = $_POST['country']; else $country = NULL;
|
||||
?>
|
||||
|
||||
<form action="join.php?p=process" method="post"><p>
|
||||
<label>Name *</label><br /> <input type="text" id="name" name="name" value="<?php get_data("name"); ?>" /> <br />
|
||||
<label>E-mail *</label><br /> <input type="text" id="email" name="email" value="<?php get_data("email"); ?>" /> <br />
|
||||
<label>Display E-mail?</label><br />
|
||||
<input type="radio" id="dispemailyes" name="dispemail" value="yes" checked="checked" /> Yes
|
||||
<input type="radio" id="dispemailno" name="dispemail" value="no" /> No<br />
|
||||
<label>Website</label><br /> <input type="text" id="url" name="url" value="<?php get_data("url"); ?>" /> <br />
|
||||
<label>Country *</label><br /> <select name="country" id="country"><option value="null">Please select a country:</option><?php get_countries($country); ?></select> <br />
|
||||
<?php
|
||||
if (isset($favefield) && $favefield == "yes") {
|
||||
?>
|
||||
<label><?php echo $favetext; ?></label><br /> <input type="text" id="fave" name="fave" value="<?php get_data("fave"); ?>" /> <br />
|
||||
<?php
|
||||
}
|
||||
if (isset($captcha) && $captcha == "yes") {
|
||||
?>
|
||||
<img src="captcha.php" alt="" /><br />
|
||||
<label>Captcha</label><br /> <input type="text" name="captcha" id="captcha" /> <br />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<label>Comments</label><br /> <textarea id="comments" name="comments" rows="3" cols="25"><?php get_data("comments"); ?></textarea><br />
|
||||
<input type="submit" name="submit" id="submit" value="Join" />
|
||||
</p></form>
|
||||
|
||||
<?php
|
||||
}
|
||||
include('footer.php');
|
||||
?>
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
if (isset($_COOKIE['bellabuffs'])) {
|
||||
setcookie('bellabuffs', "");
|
||||
header("Location: logout.php");
|
||||
exit;
|
||||
}
|
||||
include('prefs.php');
|
||||
include('header.php');
|
||||
|
||||
echo "<p>You are now logged out.</p>";
|
||||
|
||||
include('footer.php');
|
||||
?>
|
|
@ -0,0 +1,147 @@
|
|||
<?php
|
||||
require_once('prefs.php');
|
||||
include_once('header.php');
|
||||
|
||||
if(!fopen(MEMBERS, "r")) {
|
||||
echo "<p>Could not open members file. Please verify permissions (CHMOD - 666) and actual existence.</p>";
|
||||
} else {
|
||||
if (filesize(MEMBERS) > 0) {
|
||||
$members = file(MEMBERS);
|
||||
$queryURL = "";
|
||||
|
||||
if (isset($_GET['s']) && $_GET['s'] == "sortName") {
|
||||
natcasesort($members);
|
||||
$members = array_values($members);
|
||||
|
||||
$queryURL = "&s=sortName";
|
||||
} elseif (isset($_GET['s']) && $_GET['s'] == "sortCountry") {
|
||||
$countryArray = file(COUNTRIES);
|
||||
foreach($countryArray as $country) {
|
||||
$countryArray[] = rtrim($country);
|
||||
}
|
||||
if (!isset($_GET['c']) || in_array($_GET['c'], $countryArray) === FALSE) {
|
||||
// find out who has joined with which country and stick them in an array
|
||||
foreach ($members as $mem) {
|
||||
list($name,$email,$dispemail,$url,$country,$fave) = preg_split("/,(?! )/",$mem);
|
||||
$newArray[] = $country;
|
||||
}
|
||||
// count each time country occurs
|
||||
$countryCount = array_count_values($newArray);
|
||||
|
||||
// sort the array so that the countries are in alphabetical order
|
||||
$newArray = array_unique($newArray);
|
||||
natcasesort($newArray);
|
||||
|
||||
// display the countries
|
||||
echo "<ul>";
|
||||
foreach ($newArray as $country) {
|
||||
foreach ($countryCount as $key => $cc) {
|
||||
if ($key == $country) {
|
||||
echo "<li><a href=\"members.php?s=sortCountry&c=".urlencode($country)."\">$country</a> ($cc members)</li>";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</ul>";
|
||||
exit(include("footer.php"));
|
||||
} else {
|
||||
foreach ($members as $key => $memb) {
|
||||
list($name,$email,$dispemail,$url,$country,$fave) = preg_split("/,(?! )/",$memb);
|
||||
if (preg_match("/($_GET[c])/i", $country)) {
|
||||
$NEWmembers[] = "$name,$email,$dispemail,$url,$country,$fave";
|
||||
}
|
||||
}
|
||||
|
||||
$members = $NEWmembers;
|
||||
natcasesort($members);
|
||||
$members = array_values($members);
|
||||
unset($NEWmembers);
|
||||
|
||||
$queryURL = "&s=sortCountry&c=".urlencode($country);
|
||||
}
|
||||
}
|
||||
|
||||
$count = count($members);
|
||||
$numpages = ceil($count/$perpage);
|
||||
|
||||
if ($perpage < $count) {
|
||||
echo "<p style=\"text-align: center;\">$count members | ";
|
||||
|
||||
if (isset($_GET['page']) && $_GET['page'] > 1 && $_GET['page'] <= $numpages) {
|
||||
$prev = $_GET['page'] - 1;
|
||||
echo "<a href='members.php?page={$prev}$queryURL'>Prev</a> · ";
|
||||
} else {
|
||||
echo "Prev · ";
|
||||
}
|
||||
for ($x=1; $x<=$numpages; $x++) {
|
||||
if ((isset($_GET['page']) && $x == $_GET['page']) || (!isset($_GET['page']) && $x == 1)) {
|
||||
echo "<strong>$x</strong> ";
|
||||
} else {
|
||||
echo "<a href=\"members.php?page=$x$queryURL\">$x</a> ";
|
||||
}
|
||||
}
|
||||
if ((!isset($_GET['page'])) || (isset($_GET['page']) && $_GET['page'] < $numpages)) {
|
||||
if (!isset($_GET['page'])) {
|
||||
$_GET['page'] = 1;
|
||||
}
|
||||
$next = $_GET['page'] + 1;
|
||||
echo " · <a href='members.php?page={$next}$queryURL'>Next</a>";
|
||||
} else {
|
||||
echo " · Next";
|
||||
}
|
||||
echo "</p> \n\n ";
|
||||
} else {
|
||||
echo "<p style=\"text-align: center;\">$count members</p>";
|
||||
}
|
||||
if (isset($_GET['page']) && is_numeric($_GET['page'])) {
|
||||
$i=$perpage*($_GET['page']-1);
|
||||
} else {
|
||||
$i=0;
|
||||
}
|
||||
$end = $i + $perpage;
|
||||
|
||||
if ($end > $count) { $end = $count; }
|
||||
|
||||
?>
|
||||
<table style="width: 100%;">
|
||||
<tr> <th>Name</th> <th>E-mail</th> <th>Website</th> <th>Country</th> <?php if (isset($favefield) && $favefield == "yes") { echo "<th>{$favetext}</th>"; } ?> </tr>
|
||||
<?php
|
||||
while ($i<$end) {
|
||||
list($name,$email,$dispemail,$url,$country,$fave) = preg_split("/,(?! )/",$members[$i]);
|
||||
|
||||
$fave = trim($fave, "\"\x00..\x1F");
|
||||
|
||||
if ($dispemail == "yes") {
|
||||
// this bit of javascript prevents the email address being picked up by bots
|
||||
$email = "
|
||||
<script type=\"text/javascript\">
|
||||
<!--//
|
||||
document.write('<a href=\"mailto:".fixEmail($email)."\">e-mail<\/a>');
|
||||
//-->
|
||||
</script>
|
||||
";
|
||||
} else {
|
||||
$email = "<del>e-mail</del>";
|
||||
}
|
||||
if (empty($url) || $url == "http://") $url = "<del>www</del>"; else $url = "<a href=\"$url\" title=\"$name's website\">www</a>";
|
||||
|
||||
echo "
|
||||
<tr> <td>$name</td>
|
||||
<td>$email</td>
|
||||
<td>$url</td> <td>$country</td>
|
||||
";
|
||||
if (isset($favefield) && $favefield == "yes") { echo "<td>" . str_replace('|', ',', stripslashes($fave)) . "</td>"; }
|
||||
echo "</tr>";
|
||||
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
|
||||
<p><a href="members.php?s=sortName">Sort by Name</a> · <a href="members.php?s=sortCountry">Sort by Country</a></p>
|
||||
<?php
|
||||
|
||||
} else {
|
||||
echo "<p>No members have joined yet!</p>";
|
||||
}
|
||||
}
|
||||
include('footer.php'); ?>
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
// FANLIST SETTINGS
|
||||
$title = "My Fanlisting"; // name of fanlisting
|
||||
$FLsubject = "subject"; // subject of fanlisting (e.g "coffee")
|
||||
$FLurl = "http://yourdomain.com/fanlisting"; // url of fanlisting - no trailing slash (don't add a '/' at the end)!
|
||||
|
||||
|
||||
// ADMIN SETTINGS
|
||||
$admin_name = "admin"; // admin username
|
||||
$admin_pass = "password"; // admin password
|
||||
$admin_email = "you@your-domain.com"; // admin e-mail address
|
||||
$secret = "pleasechangeme123"; // this is like a second password. you won't have to remember it, so make it random
|
||||
|
||||
|
||||
// EMAIL SETTINGS
|
||||
$emailnewbies = "no"; // (yes or no) email new members after joining ($admin_email must be filled in, above)
|
||||
$emailadmin = "no"; // (yes or no) email admin when new member joins ($admin_email must be filled in, above)
|
||||
$emailapproval = "no"; // (yes or no) email member when approved ($admin_email must be filled in, above)
|
||||
|
||||
// message e-mailed to new members on join. use \n for a new line
|
||||
// use \r\n for a new line, member details will automatically appear underneath
|
||||
$thanksjoinMsg = "Thank you for joining my fanlisting: $title \r\nWe will process your application shortly.";
|
||||
|
||||
// message e-mailed to new members on approval.
|
||||
// use \r\n for a new line, member details automatically appear underneath
|
||||
$approvalMsg = "You've been approved at the fanlisting: $title with the following details: \r\n\r\n";
|
||||
|
||||
|
||||
// GENERAL SETTINGS
|
||||
$perpage = 30; // number of members per page
|
||||
$captcha = "no"; // (yes or no) enable captcha on join form?
|
||||
$favefield = "no"; // (yes or no) have a favourite field? yes or no
|
||||
$favetext = "Your favourite .. ?"; // the text to display next to the fave field
|
||||
$timestamp = "dS F, y"; // timestamp for last update on index.php (see php.net/date)
|
||||
$updateDate = "yes"; // (yes or no) update date on index when new member approved or member edited
|
||||
$defaultSort = "newest"; // newest or oldest first in the members list?
|
||||
$maxPoints = 4; // max spam points a person can hit before contact refuses to submit - recommend 4
|
||||
|
||||
|
||||
|
||||
// REQUIRED TO WORK
|
||||
require_once('functions.php');
|
||||
?>
|
|
@ -0,0 +1,279 @@
|
|||
asshole
|
||||
bastard
|
||||
beastial
|
||||
bestial
|
||||
bitch
|
||||
blowjob
|
||||
clit
|
||||
cock
|
||||
cum
|
||||
cunilingus
|
||||
cunillingus
|
||||
cunnilingus
|
||||
cunt
|
||||
dink
|
||||
dinks
|
||||
ejaculate
|
||||
fag
|
||||
felatio
|
||||
fellatio
|
||||
fuck
|
||||
fuk
|
||||
fuks
|
||||
gangbang
|
||||
gangbanged
|
||||
gangbangs
|
||||
goddamn
|
||||
horniest
|
||||
horny
|
||||
hotsex
|
||||
jism
|
||||
jiz
|
||||
kock
|
||||
kondum
|
||||
kum
|
||||
kunilingus
|
||||
lust
|
||||
lusting
|
||||
nigger
|
||||
niggers
|
||||
orgasim
|
||||
orgasims
|
||||
orgasm
|
||||
orgasms
|
||||
phonesex
|
||||
phuk
|
||||
phuq
|
||||
porn
|
||||
prick
|
||||
pussies
|
||||
pussy
|
||||
shited
|
||||
shitfull
|
||||
shiting
|
||||
shitings
|
||||
shitted
|
||||
shitter
|
||||
shitters
|
||||
shitting
|
||||
shittings
|
||||
slut
|
||||
sluts
|
||||
smut
|
||||
spunk
|
||||
twat
|
||||
xxx
|
||||
abercrombie
|
||||
acadia
|
||||
activistmagazine
|
||||
adipex
|
||||
advair
|
||||
advait
|
||||
adware
|
||||
aguilera
|
||||
airline
|
||||
aktivex
|
||||
aleuzeneve
|
||||
allegra
|
||||
alprazolam
|
||||
alproot
|
||||
ambian
|
||||
ambien
|
||||
ameriquest
|
||||
amigo
|
||||
amoxicillin
|
||||
antivert
|
||||
aphthasol
|
||||
aristocort
|
||||
asitehost
|
||||
atarax
|
||||
ativan
|
||||
backgammon
|
||||
baldness
|
||||
bankrupcy
|
||||
bentyl
|
||||
bestmovies
|
||||
bestop
|
||||
bingo
|
||||
biz
|
||||
blackjack
|
||||
blogshot
|
||||
blowjob
|
||||
bondage
|
||||
bonsai
|
||||
buon
|
||||
buspar
|
||||
busty
|
||||
cadillac
|
||||
carburatore
|
||||
carisoprodol
|
||||
cascata
|
||||
cashette
|
||||
casino
|
||||
cavalli
|
||||
caverta
|
||||
celexa
|
||||
chevrolet
|
||||
chinaartgallery
|
||||
cialis
|
||||
cigarette
|
||||
cipro
|
||||
ciprofloxacin
|
||||
claritin
|
||||
comunalia
|
||||
comunicazione
|
||||
consolidation
|
||||
danazol
|
||||
dating
|
||||
debt
|
||||
deliver
|
||||
diazepam
|
||||
diflucan
|
||||
digoxin
|
||||
discount
|
||||
drug
|
||||
ebony
|
||||
ecard
|
||||
ejaculation
|
||||
emeets
|
||||
ephedra
|
||||
evista
|
||||
exelon
|
||||
fetish
|
||||
fisting
|
||||
flexeril
|
||||
flomaxonline
|
||||
forex
|
||||
formular
|
||||
fotti
|
||||
gallup
|
||||
gambling
|
||||
gangbang
|
||||
hairlossmale
|
||||
handbag
|
||||
hanghonggongshi
|
||||
hawaii
|
||||
hellow
|
||||
hentai
|
||||
holdem
|
||||
homebuymail
|
||||
hoop
|
||||
hydrocodone
|
||||
insurance
|
||||
investing
|
||||
jeezy
|
||||
jennajameson
|
||||
joesmitt
|
||||
levaquin
|
||||
levitra
|
||||
lipitor
|
||||
lixium
|
||||
lotto
|
||||
lukxi
|
||||
luminoso
|
||||
luogo
|
||||
medication
|
||||
medicine
|
||||
meds
|
||||
medved
|
||||
meridia
|
||||
milf
|
||||
mortage
|
||||
mortgage
|
||||
mortgage
|
||||
nano
|
||||
nemoforone
|
||||
network54
|
||||
neurontin
|
||||
nexium
|
||||
noonhost
|
||||
nude
|
||||
online
|
||||
oscilloscope
|
||||
pantyhose
|
||||
paxil
|
||||
pehntermine
|
||||
penis
|
||||
percocet
|
||||
pharmacy
|
||||
phendimetrazine
|
||||
phentermine
|
||||
phentermnie
|
||||
phentremine
|
||||
pill
|
||||
playboy
|
||||
poker
|
||||
pokerstars
|
||||
pontiac
|
||||
porn
|
||||
pregnancy
|
||||
propecia
|
||||
prozac
|
||||
purse
|
||||
pursefiling
|
||||
ranitidine
|
||||
rectal
|
||||
rental
|
||||
replica
|
||||
ringtone
|
||||
ringtones
|
||||
ritalin
|
||||
rolex
|
||||
roulette
|
||||
roullette
|
||||
sesso
|
||||
sex
|
||||
shemale
|
||||
shurl
|
||||
silagra
|
||||
skpialml1
|
||||
slot
|
||||
slots
|
||||
smoking
|
||||
softcracks
|
||||
sogonet
|
||||
soho
|
||||
solyak1
|
||||
soma
|
||||
soulfeet
|
||||
spank
|
||||
spartan
|
||||
spyware
|
||||
stalb0
|
||||
steroid
|
||||
striptease
|
||||
sunglasses
|
||||
tamiflu
|
||||
tits
|
||||
toledo
|
||||
topfarm
|
||||
tramadol
|
||||
tranny
|
||||
url=
|
||||
v1tamin
|
||||
vaccum
|
||||
valium
|
||||
valtrex
|
||||
vassar
|
||||
verison
|
||||
vi5ta
|
||||
viagra
|
||||
vicodin
|
||||
vinokurov
|
||||
virgilio
|
||||
virtualcar
|
||||
warez
|
||||
watches
|
||||
wboard
|
||||
wellbutrin
|
||||
wirless
|
||||
www12
|
||||
wwww
|
||||
xanax
|
||||
xenical
|
||||
xoom
|
||||
xoomer
|
||||
xrumer
|
||||
yahho
|
||||
zole
|
||||
zoloft
|
|
@ -0,0 +1,35 @@
|
|||
body {
|
||||
font: 11px/15px Verdana, Sans-Serif;
|
||||
}
|
||||
img { border: 0; }
|
||||
|
||||
td { padding: 3px; }
|
||||
|
||||
#navigation {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#navigation li {
|
||||
display: inline;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
|
||||
/* control row colours in admin */
|
||||
.literow { background: #fff; }
|
||||
.darkrow { background: #ddd; }
|
||||
|
||||
/* error/success msg colours on forms */
|
||||
p.error, p.success {
|
||||
font-weight: bold;
|
||||
padding: 10px;
|
||||
border: 1px solid;
|
||||
}
|
||||
p.error {
|
||||
background: #ffc0c0;
|
||||
color: #900;
|
||||
}
|
||||
p.success {
|
||||
background: #b3ff69;
|
||||
color: #4fa000;
|
||||
}
|
|
@ -0,0 +1,135 @@
|
|||
<?php
|
||||
if (isset($_GET['p'])) { $page = $_GET['p']; } else { $page = ""; }
|
||||
|
||||
switch ($page) {
|
||||
case "process":
|
||||
require_once('prefs.php');
|
||||
if (isset($captcha) && $captcha == "yes") {
|
||||
session_start();
|
||||
if (isset($_SESSION['key'])) {
|
||||
if(md5($_POST['captcha']) != $_SESSION['key']) {
|
||||
setcookie(session_name(), '', time()-36000, '/');
|
||||
$_SESSION = array();
|
||||
session_destroy();
|
||||
|
||||
echo "<p>The text you entered didn't match the image, please <a href='update.php'>try again</a>.</p>";
|
||||
include('footer.php');
|
||||
exit;
|
||||
}
|
||||
if (isset($_SESSION['key']) && isset($_COOKIE[session_name()])) {
|
||||
setcookie(session_name(), '', time()-36000, '/');
|
||||
$_SESSION = array();
|
||||
session_destroy();
|
||||
}
|
||||
} else {
|
||||
echo "<p>The text you entered didn't match the image, please <a href='update.php'>try again</a>.</p>";
|
||||
include('footer.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
include_once('header.php');
|
||||
|
||||
if (!isset($_POST['submit']) || $_SERVER['REQUEST_METHOD'] != "POST") {
|
||||
echo "<p>Accessing this page directly is not allowed.</p>\n\n";
|
||||
include('footer.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
$exploits = "/(content-type|bcc:|cc:|document.cookie|onclick|onload)/i";
|
||||
foreach ($_POST as $key => $val) {
|
||||
$clean[$key] = cleanUp($val);
|
||||
|
||||
if (filesize(SPAMWDS) > 0 && (checkTXTfile(SPAMWDS, $val, "spamword") === true)) {
|
||||
echo "<p>Your application contains words in the spam list, that means you're not allowed to join at this time. \n</p>";
|
||||
exit(include('footer.php'));
|
||||
}
|
||||
if (preg_match($exploits, $val)) {
|
||||
echo "<p>No meta injection, please. \n</p>";
|
||||
exit(include('footer.php'));
|
||||
}
|
||||
}
|
||||
if ((filesize(MEMBERS) > 0 && checkTXTfile(MEMBERS, breakEmail(strtolower($clean['email'])), "email") === true) || (filesize(NEWBIES) > 0 && checkTXTfile(NEWBIES, breakEmail(strtolower($clean['email'])), "email") === true)) {
|
||||
if (empty($clean['name']) || empty($clean['email'])) {
|
||||
echo "<p>Name and e-mail are required fields. Please <a href='javascript:history.back(1)'>go back</a> and try again.\n</p>";
|
||||
exit(include('footer.php'));
|
||||
} elseif (!ereg("^[A-Za-z' -]",$clean['name']) || strlen($clean['name']) > 15) {
|
||||
echo "<p>That name is not valid. Your name must contain letters only, and must be less than 15 characters. Please <a href='javascript:history.back(1)'>go back</a> and try again.\n</p>";
|
||||
exit(include('footer.php'));
|
||||
} elseif (!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", strtolower($clean['email']))) {
|
||||
echo "<p>Your old e-mail address is not valid. Please <a href='javascript:history.back(1)'>go back</a> and try again.\n</p>";
|
||||
exit(include('footer.php'));
|
||||
} elseif (!empty($clean['newemail']) && !ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", strtolower($clean['newemail']))) {
|
||||
echo "<p>Your new e-mail address is not valid. Please <a href='javascript:history.back(1)'>go back</a> and try again.\n</p>";
|
||||
exit(include('footer.php'));
|
||||
}
|
||||
|
||||
$subject = "Update member at $title";
|
||||
|
||||
$message = "A member at your $FLsubject fanlisting wants updating with following details: \n\n";
|
||||
|
||||
$message .= "Name: {$clean['name']} \n";
|
||||
$message .= "Email: ".strtolower($clean['email'])." \n";
|
||||
$message .= "New Email: {$clean['newemail']} \n";
|
||||
$message .= "New URL: {$clean['newurl']} \n";
|
||||
$message .= "Country: {$clean['country']} \n";
|
||||
$message .= "Comments: {$clean['comments']} \n";
|
||||
$message .= "IP: {$_SERVER['REMOTE_ADDR']} \n\n";
|
||||
|
||||
$message .= "Manage members: {$FLurl}/admin.php";
|
||||
|
||||
if (!strstr($_SERVER['SERVER_SOFTWARE'], "Win")) {
|
||||
$headers = "From: $admin_email \n";
|
||||
$headers .= "Reply-To: $clean[email]";
|
||||
} else {
|
||||
$headers = "From: $title <$admin_email> \n";
|
||||
$headers .= "Reply-To: <$clean[email]>";
|
||||
}
|
||||
|
||||
if (mail($admin_email,$subject,$message,$headers)) {
|
||||
echo "<h1>Update Sent!</h1> \n <p>Your updated information has been sent.</p>";
|
||||
} else {
|
||||
echo "<h1>Oops!</h1> \n <p>Your updated information could not be sent this time, please contact the fanlisting owner.</p>";
|
||||
}
|
||||
} else {
|
||||
echo "<p>You're not a member! Only current members can update their information.</p> \n";
|
||||
include('footer.php');
|
||||
exit;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
require_once('prefs.php');
|
||||
include_once('header.php');
|
||||
?>
|
||||
|
||||
<h1>Update Your Details</h1>
|
||||
<p>To update your details, fill in your information below. Please do not use this form to join; use the <a href="join.php">join form</a> instead.</p>
|
||||
|
||||
<p>(Name, Old E-mail and Country are required fields.)</p>
|
||||
|
||||
<form action="update.php?p=process" method="post"><p>
|
||||
<label>Name *</label><br /> <input type="text" id="name" name="name" /> <br />
|
||||
<label>Old E-mail *</label><br /> <input type="text" id="email" name="email" /> <br />
|
||||
<label>New E-mail</label><br /> <input type="text" id="newemail" name="newemail" /> <br />
|
||||
<label>Display E-mail?</label><br />
|
||||
<input type="radio" id="dispemailyes" name="dispemail" value="yes" checked="checked" /> Yes
|
||||
<input type="radio" id="dispemailno" name="dispemail" value="no" /> No<br />
|
||||
<label>New Website?</label><br /> <input type="text" id="newurl" name="newurl" value="http://" /> <br />
|
||||
<label>Country *</label><br /> <select name="country" id="country"><option value="null">Please select a country:</option><?php get_countries("null"); ?></select> <br />
|
||||
<?php
|
||||
if (isset($captcha) && $captcha == "yes") {
|
||||
?>
|
||||
<img src="captcha.php" alt="" /><br />
|
||||
<label>Captcha</label><br /> <input type="text" name="captcha" id="captcha" /> <br />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<label>Comments</label><br />
|
||||
<textarea name="comments" id="comments" rows="3" cols="25"></textarea><br />
|
||||
<input type="submit" name="submit" id="submit" value="Update" />
|
||||
</p></form>
|
||||
|
||||
<?php
|
||||
break;
|
||||
}
|
||||
include('footer.php');
|
||||
?>
|
Loading…
Reference in New Issue