本文整理汇总了PHP中getIPAddress函数的典型用法代码示例。如果您正苦于以下问题:PHP getIPAddress函数的具体用法?PHP getIPAddress怎么用?PHP getIPAddress使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了getIPAddress函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
public function run()
{
if (YII_DEBUG && in_array(getIPAddress(), array("127.0.0.1", "::1"))) {
$data = array('session' => $_SESSION, 'server' => $_SERVER);
$json = json_encode($data, JSON_FORCE_OBJECT);
$script = "LSdebug = {$json};\n";
$script .= "console.dir(LSdebug)\n";
App()->getClientScript()->registerScript('LimeDebug', $script, CClientScript::POS_HEAD);
}
}
示例2: authenticate
public function authenticate()
{
// First initialize the result, we can later retieve it to get the exact error code/message
$result = new LSAuthResult(self::ERROR_NONE);
// Check if the ip is locked out
if (FailedLoginAttempt::model()->isLockedOut()) {
$message = sprintf(gT('You have exceeded the number of maximum login attempts. Please wait %d minutes before trying again.'), App()->getConfig('timeOutTime') / 60);
$result->setError(self::ERROR_IP_LOCKED_OUT, $message);
}
// If still ok, continue
if ($result->isValid()) {
if (is_null($this->plugin)) {
$result->setError(self::ERROR_UNKNOWN_HANDLER);
} else {
// Delegate actual authentication to plugin
$authEvent = new PluginEvent('newUserSession', $this);
$authEvent->set('identity', $this);
App()->getPluginManager()->dispatchEvent($authEvent);
$pluginResult = $authEvent->get('result');
if ($pluginResult instanceof LSAuthResult) {
$result = $pluginResult;
} else {
$result->setError(self::ERROR_UNKNOWN_IDENTITY);
}
}
}
if ($result->isValid()) {
// Perform postlogin
$this->postLogin();
} else {
// Log a failed attempt
$userHostAddress = getIPAddress();
FailedLoginAttempt::model()->addAttempt($userHostAddress);
App()->session->regenerateID();
// Handled on login by Yii
}
$this->errorCode = $result->getCode();
$this->errorMessage = $result->getMessage();
return $result->isValid();
}
示例3: savedcontrol
function savedcontrol()
{
//This data will be saved to the "saved_control" table with one row per response.
// - a unique "saved_id" value (autoincremented)
// - the "sid" for this survey
// - the "srid" for the survey_x row id
// - "saved_thisstep" which is the step the user is up to in this survey
// - "saved_ip" which is the ip address of the submitter
// - "saved_date" which is the date ofthe saved response
// - an "identifier" which is like a username
// - a "password"
// - "fieldname" which is the fieldname of the saved response
// - "value" which is the value of the response
//We start by generating the first 5 values which are consistent for all rows.
global $connect, $surveyid, $dbprefix, $thissurvey, $errormsg, $publicurl, $sitename, $timeadjust, $clang, $clienttoken, $thisstep;
//Check that the required fields have been completed.
$errormsg = "";
/* queXS Removal
if (!isset($_POST['savename']) || !$_POST['savename']) {$errormsg.=$clang->gT("You must supply a name for this saved session.")."<br />\n";}
if (!isset($_POST['savepass']) || !$_POST['savepass']) {$errormsg.=$clang->gT("You must supply a password for this saved session.")."<br />\n";}
if ((isset($_POST['savepass']) && !isset($_POST['savepass2'])) || $_POST['savepass'] != $_POST['savepass2'])
{$errormsg.=$clang->gT("Your passwords do not match.")."<br />\n";}
// if security question asnwer is incorrect
if (function_exists("ImageCreate") && captcha_enabled('saveandloadscreen',$thissurvey['usecaptcha']))
{
if (!isset($_POST['loadsecurity']) ||
!isset($_SESSION['secanswer']) ||
$_POST['loadsecurity'] != $_SESSION['secanswer'])
{
$errormsg .= $clang->gT("The answer to the security question is incorrect.")."<br />\n";
}
}
if (trim($_POST['saveemail'])!='' && !validate_email($_POST['saveemail']))
{
$errormsg .= $clang->gT("The email address is not valid. Please leave the email field blank or give a valid email address.")."<br />\n";
}
end queXS Removal */
if ($errormsg) {
return;
}
//All the fields are correct. Now make sure there's not already a matching saved item
$query = "SELECT COUNT(*) FROM {$dbprefix}saved_control\n" . "WHERE sid={$surveyid}\n" . "AND identifier=" . db_quoteall($_POST['token'], true);
$result = db_execute_num($query) or safe_die("Error checking for duplicates!<br />{$query}<br />" . $connect->ErrorMsg());
// Checked
list($count) = $result->FetchRow();
if ($count == 1) {
//we should update the field with the latest $_SESSION['step'] - stored in saved_thisstep - queXS addition
$sql = "UPDATE {$dbprefix}saved_control SET saved_thisstep = '{$_SESSION['step']}' WHERE sid={$surveyid} AND identifier='{$_POST['token']}'";
$connect->Execute($sql);
} else {
if ($count > 0) {
$errormsg .= $clang->gT("This name has already been used for this survey. You must use a unique save name.") . "<br />\n";
return;
} else {
//INSERT BLANK RECORD INTO "survey_x" if one doesn't already exist
if (!isset($_SESSION['srid'])) {
$today = date_shift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $timeadjust);
$sdata = array("datestamp" => $today, "ipaddr" => getIPAddress(), "startlanguage" => $_SESSION['s_lang'], "refurl" => getenv("HTTP_REFERER"), "token" => $_POST['token']);
//One of the strengths of ADOdb's AutoExecute() is that only valid field names for $table are updated
if ($connect->AutoExecute($thissurvey['tablename'], $sdata, 'INSERT')) {
$srid = $connect->Insert_ID($thissurvey['tablename'], "sid");
$_SESSION['srid'] = $srid;
} else {
safe_die("Unable to insert record into survey table.<br /><br />" . $connect->ErrorMsg());
}
}
//CREATE ENTRY INTO "saved_control"
$today = date_shift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $timeadjust);
$scdata = array("sid" => $surveyid, "srid" => $_SESSION['srid'], "identifier" => $_POST['token'], "access_code" => md5($_POST['token']), "email" => $_POST['token'], "ip" => getIPAddress(), "refurl" => getenv("HTTP_REFERER"), "saved_thisstep" => $thisstep, "status" => "S", "saved_date" => $today);
if ($connect->AutoExecute("{$dbprefix}saved_control", $scdata, 'INSERT')) {
$scid = $connect->Insert_ID("{$dbprefix}saved_control", 'scid');
$_SESSION['scid'] = $scid;
} else {
safe_die("Unable to insert record into saved_control table.<br /><br />" . $connect->ErrorMsg());
}
$_SESSION['holdname'] = $_POST['token'];
//Session variable used to load answers every page. Unsafe - so it has to be taken care of on output
$_SESSION['holdpass'] = $_POST['token'];
//Session variable used to load answers every page. Unsafe - so it has to be taken care of on output
/* queXS Removal
//Email if needed
if (isset($_POST['saveemail']) && validate_email($_POST['saveemail']))
{
$subject=$clang->gT("Saved Survey Details") . " - " . $thissurvey['name'];
$message=$clang->gT("Thank you for saving your survey in progress. The following details can be used to return to this survey and continue where you left off. Please keep this e-mail for your reference - we cannot retrieve the password for you.","unescaped");
$message.="\n\n".$thissurvey['name']."\n\n";
$message.=$clang->gT("Name","unescaped").": ".$_POST['savename']."\n";
$message.=$clang->gT("Password","unescaped").": ".$_POST['savepass']."\n\n";
$message.=$clang->gT("Reload your survey by clicking on the following link (or pasting it into your browser):","unescaped")."\n";
$message.=$publicurl."/index.php?sid=$surveyid&loadall=reload&scid=".$scid."&loadname=".urlencode($_POST['savename'])."&loadpass=".urlencode($_POST['savepass']);
if ($clienttoken){$message.="&token=".$clienttoken;}
$from="{$thissurvey['adminname']} <{$thissurvey['adminemail']}>";
if (SendEmailMessage(null, $message, $subject, $_POST['saveemail'], $from, $sitename, false, getBounceEmail($surveyid)))
{
$emailsent="Y";
//.........这里部分代码省略.........
示例4: _UpdateValuesInDatabase
/**
* Write values to database.
* @param <type> $updatedValues
* @param <boolean> $finished - true if the survey needs to be finalized
*/
private function _UpdateValuesInDatabase($updatedValues, $finished = false)
{
// TODO - now that using $this->updatedValues, may be able to remove local copies of it (unless needed by other sub-systems)
$updatedValues = $this->updatedValues;
$message = '';
if (!$this->surveyOptions['active'] || $this->sPreviewMode) {
return $message;
}
if (!isset($_SESSION[$this->sessid]['srid'])) {
$_SESSION[$this->sessid]['datestamp'] = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $this->surveyOptions['timeadjust']);
// Create initial insert row for this record
$today = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $this->surveyOptions['timeadjust']);
$sdata = array("startlanguage" => $this->surveyOptions['startlanguage']);
if ($this->surveyOptions['anonymized'] == false) {
$sdata['token'] = $this->surveyOptions['token'];
}
if ($this->surveyOptions['datestamp'] == true) {
$sdata['datestamp'] = $_SESSION[$this->sessid]['datestamp'];
$sdata['startdate'] = $_SESSION[$this->sessid]['datestamp'];
}
if ($this->surveyOptions['ipaddr'] == true) {
$sdata['ipaddr'] = getIPAddress();
}
if ($this->surveyOptions['refurl'] == true) {
if (isset($_SESSION[$this->sessid]['refurl'])) {
$sdata['refurl'] = $_SESSION[$this->sessid]['refurl'];
} else {
$sdata['refurl'] = getenv("HTTP_REFERER");
}
}
$sdata = array_filter($sdata);
SurveyDynamic::sid($this->sid);
$oSurvey = new SurveyDynamic();
$iNewID = $oSurvey->insertRecords($sdata);
if ($iNewID) {
$srid = $iNewID;
$_SESSION[$this->sessid]['srid'] = $iNewID;
} else {
$message .= $this->gT("Unable to insert record into survey table");
// TODO - add SQL error?
echo submitfailed('');
// TODO - report SQL error?
}
//Insert Row for Timings, if needed
if ($this->surveyOptions['savetimings']) {
SurveyTimingDynamic::sid($this->sid);
$oSurveyTimings = new SurveyTimingDynamic();
$tdata = array('id' => $srid, 'interviewtime' => 0);
switchMSSQLIdentityInsert("survey_{$this->sid}_timings", true);
$iNewID = $oSurveyTimings->insertRecords($tdata);
switchMSSQLIdentityInsert("survey_{$this->sid}_timings", false);
}
}
if (count($updatedValues) > 0 || $finished) {
$query = 'UPDATE ' . $this->surveyOptions['tablename'] . ' SET ';
$setter = array();
switch ($this->surveyMode) {
case 'question':
$thisstep = $this->currentQuestionSeq;
break;
case 'group':
$thisstep = $this->currentGroupSeq;
break;
case 'survey':
$thisstep = 1;
break;
}
$setter[] = dbQuoteID('lastpage') . "=" . dbQuoteAll($thisstep);
if ($this->surveyOptions['datestamp'] && isset($_SESSION[$this->sessid]['datestamp'])) {
$_SESSION[$this->sessid]['datestamp'] = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $this->surveyOptions['timeadjust']);
$setter[] = dbQuoteID('datestamp') . "=" . dbQuoteAll(dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $this->surveyOptions['timeadjust']));
}
if ($this->surveyOptions['ipaddr']) {
$setter[] = dbQuoteID('ipaddr') . "=" . dbQuoteAll(getIPAddress());
}
foreach ($updatedValues as $key => $value) {
$val = is_null($value) ? NULL : $value['value'];
$type = is_null($value) ? NULL : $value['type'];
// Clean up the values to cope with database storage requirements
switch ($type) {
case 'D':
//DATE
if (trim($val) == '' || $val == "INVALID") {
$val = NULL;
// since some databases can't store blanks in date fields
}
// otherwise will already be in yyyy-mm-dd format after ProcessCurrentResponses()
break;
case '|':
//File upload
// This block can be removed once we require 5.3 or later
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$val = addslashes($val);
}
break;
//.........这里部分代码省略.........
示例5: do_shortfreetext
function do_shortfreetext($ia)
{
global $thissurvey;
$sGoogleMapsAPIKey = trim(Yii::app()->getConfig("googleMapsAPIKey"));
if ($sGoogleMapsAPIKey != '') {
$sGoogleMapsAPIKey = '&key=' . $sGoogleMapsAPIKey;
}
$extraclass = "";
$aQuestionAttributes = QuestionAttribute::model()->getQuestionAttributes($ia[0]);
if ($aQuestionAttributes['numbers_only'] == 1) {
$sSeparator = getRadixPointData($thissurvey['surveyls_numberformat']);
$sSeparator = $sSeparator['separator'];
$extraclass .= " numberonly";
$checkconditionFunction = "fixnum_checkconditions";
} else {
$checkconditionFunction = "checkconditions";
}
if (intval(trim($aQuestionAttributes['maximum_chars'])) > 0) {
// Only maxlength attribute, use textarea[maxlength] jquery selector for textarea
$maximum_chars = intval(trim($aQuestionAttributes['maximum_chars']));
$maxlength = "maxlength='{$maximum_chars}' ";
$extraclass .= " maxchars maxchars-" . $maximum_chars;
} else {
$maxlength = "";
}
if (trim($aQuestionAttributes['text_input_width']) != '') {
$tiwidth = $aQuestionAttributes['text_input_width'];
$extraclass .= " inputwidth-" . trim($aQuestionAttributes['text_input_width']);
$col = $aQuestionAttributes['text_input_width'] <= 12 ? $aQuestionAttributes['text_input_width'] : 12;
$extraclass .= " col-sm-" . trim($col);
} else {
$tiwidth = 50;
}
if (trim($aQuestionAttributes['prefix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']]) != '') {
$prefix = $aQuestionAttributes['prefix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']];
$extraclass .= " withprefix";
} else {
$prefix = '';
}
if (trim($aQuestionAttributes['suffix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']]) != '') {
$suffix = $aQuestionAttributes['suffix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']];
$extraclass .= " withsuffix";
} else {
$suffix = '';
}
if ($thissurvey['nokeyboard'] == 'Y') {
includeKeypad();
$kpclass = "text-keypad";
$extraclass .= " inputkeypad";
} else {
$kpclass = "";
}
$answer = "";
if (trim($aQuestionAttributes['display_rows']) != '') {
//question attribute "display_rows" is set -> we need a textarea to be able to show several rows
$drows = $aQuestionAttributes['display_rows'];
//if a textarea should be displayed we make it equal width to the long text question
//this looks nicer and more continuous
if ($tiwidth == 50) {
$tiwidth = 40;
}
$dispVal = "";
if ($_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]]) {
$dispVal = str_replace("\\", "", $_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]]);
if ($aQuestionAttributes['numbers_only'] == 1) {
$dispVal = str_replace('.', $sSeparator, $dispVal);
}
$dispVal = htmlspecialchars($dispVal);
}
$answer .= doRender('/survey/questions/shortfreetext/textarea/item', array('extraclass' => $extraclass, 'freeTextId' => 'answer' . $ia[1], 'labelText' => gT('Your answer'), 'name' => $ia[1], 'drows' => $drows, 'tiwidth' => $tiwidth, 'checkconditionFunction' => $checkconditionFunction . '(this.value, this.name, this.type)', 'dispVal' => $dispVal, 'maxlength' => $maxlength, 'kpclass' => $kpclass, 'prefix' => $prefix, 'suffix' => $suffix, 'sm_col' => decide_sm_col($prefix, $suffix)), true);
} elseif ((int) $aQuestionAttributes['location_mapservice'] == 1) {
$mapservice = $aQuestionAttributes['location_mapservice'];
$currentLocation = $_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]];
$currentLatLong = null;
$floatLat = 0;
$floatLng = 0;
// Get the latitude/longtitude for the point that needs to be displayed by default
if (strlen($currentLocation) > 2) {
$currentLatLong = explode(';', $currentLocation);
$currentLatLong = array($currentLatLong[0], $currentLatLong[1]);
} else {
if ((int) $aQuestionAttributes['location_nodefaultfromip'] == 0) {
$currentLatLong = getLatLongFromIp(getIPAddress());
}
if (!isset($currentLatLong) || $currentLatLong == false) {
$floatLat = 0;
$floatLng = 0;
$LatLong = explode(" ", trim($aQuestionAttributes['location_defaultcoordinates']));
if (isset($LatLong[0]) && isset($LatLong[1])) {
$floatLat = $LatLong[0];
$floatLng = $LatLong[1];
}
$currentLatLong = array($floatLat, $floatLng);
}
}
// 2 - city; 3 - state; 4 - country; 5 - postal
$strBuild = "";
if ($aQuestionAttributes['location_city']) {
$strBuild .= "2";
}
//.........这里部分代码省略.........
示例6: savedcontrol
function savedcontrol()
{
//This data will be saved to the "saved_control" table with one row per response.
// - a unique "saved_id" value (autoincremented)
// - the "sid" for this survey
// - the "srid" for the survey_x row id
// - "saved_thisstep" which is the step the user is up to in this survey
// - "saved_ip" which is the ip address of the submitter
// - "saved_date" which is the date ofthe saved response
// - an "identifier" which is like a username
// - a "password"
// - "fieldname" which is the fieldname of the saved response
// - "value" which is the value of the response
//We start by generating the first 5 values which are consistent for all rows.
global $surveyid, $thissurvey, $errormsg, $publicurl, $sitename, $clang, $clienttoken, $thisstep;
$timeadjust = getGlobalSetting('timeadjust');
//Check that the required fields have been completed.
$errormsg = '';
if (empty($_POST['savename'])) {
$errormsg .= $clang->gT("You must supply a name for this saved session.") . "<br />\n";
}
if (empty($_POST['savepass'])) {
$errormsg .= $clang->gT("You must supply a password for this saved session.") . "<br />\n";
}
if (empty($_POST['savepass']) || empty($_POST['savepass2']) || $_POST['savepass'] != $_POST['savepass2']) {
$errormsg .= $clang->gT("Your passwords do not match.") . "<br />\n";
}
// if security question asnwer is incorrect
if (function_exists("ImageCreate") && isCaptchaEnabled('saveandloadscreen', $thissurvey['usecaptcha'])) {
if (empty($_POST['loadsecurity']) || !isset($_SESSION['survey_' . $surveyid]['secanswer']) || $_POST['loadsecurity'] != $_SESSION['survey_' . $surveyid]['secanswer']) {
$errormsg .= $clang->gT("The answer to the security question is incorrect.") . "<br />\n";
}
}
if (!empty($errormsg)) {
return;
}
$duplicate = SavedControl::model()->findByAttributes(array('sid' => $surveyid, 'identifier' => $_POST['savename']));
if (!empty($duplicate) && $duplicate->count() > 0) {
$errormsg .= $clang->gT("This name has already been used for this survey. You must use a unique save name.") . "<br />\n";
return;
} else {
//INSERT BLANK RECORD INTO "survey_x" if one doesn't already exist
if (!isset($_SESSION['survey_' . $surveyid]['srid'])) {
$today = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $timeadjust);
$sdata = array("datestamp" => $today, "ipaddr" => getIPAddress(), "startlanguage" => $_SESSION['survey_' . $surveyid]['s_lang'], "refurl" => getenv("HTTP_REFERER"));
if (SurveyDynamic::model($thissurvey['sid'])->insert($sdata)) {
$srid = getLastInsertID('{{survey_' . $surveyid . '}}');
$_SESSION['survey_' . $surveyid]['srid'] = $srid;
} else {
safeDie("Unable to insert record into survey table.<br /><br />");
}
}
//CREATE ENTRY INTO "saved_control"
$today = dateShift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $timeadjust);
$saved_control = new SavedControl();
$saved_control->sid = $surveyid;
$saved_control->srid = $_SESSION['survey_' . $surveyid]['srid'];
$saved_control->identifier = $_POST['savename'];
// Binding does escape, so no quoting/escaping necessary
$saved_control->access_code = md5($_POST['savepass']);
$saved_control->email = $_POST['saveemail'];
$saved_control->ip = getIPAddress();
$saved_control->saved_thisstep = $thisstep;
$saved_control->status = 'S';
$saved_control->saved_date = $today;
$saved_control->refurl = getenv('HTTP_REFERER');
if ($saved_control->save()) {
$scid = getLastInsertID('{{saved_control}}');
$_SESSION['survey_' . $surveyid]['scid'] = $scid;
} else {
safeDie("Unable to insert record into saved_control table.<br /><br />");
}
$_SESSION['survey_' . $surveyid]['holdname'] = $_POST['savename'];
//Session variable used to load answers every page. Unsafe - so it has to be taken care of on output
$_SESSION['survey_' . $surveyid]['holdpass'] = $_POST['savepass'];
//Session variable used to load answers every page. Unsafe - so it has to be taken care of on output
//Email if needed
if (isset($_POST['saveemail']) && validateEmailAddress($_POST['saveemail'])) {
$subject = $clang->gT("Saved Survey Details") . " - " . $thissurvey['name'];
$message = $clang->gT("Thank you for saving your survey in progress. The following details can be used to return to this survey and continue where you left off. Please keep this e-mail for your reference - we cannot retrieve the password for you.");
$message .= "\n\n" . $thissurvey['name'] . "\n\n";
$message .= $clang->gT("Name") . ": " . $_POST['savename'] . "\n";
$message .= $clang->gT("Password") . ": " . $_POST['savepass'] . "\n\n";
$message .= $clang->gT("Reload your survey by clicking on the following link (or pasting it into your browser):") . "\n";
$message .= Yii::app()->getController()->createAbsoluteUrl("/survey/index/sid/{$surveyid}/loadall/reload/scid/{$scid}/loadname/" . rawurlencode($_POST['savename']) . "/loadpass/" . rawurlencode($_POST['savepass']) . "/lang/" . rawurlencode($clang->langcode));
if ($clienttoken) {
$message .= "/token/" . rawurlencode($clienttoken);
}
$from = "{$thissurvey['adminname']} <{$thissurvey['adminemail']}>";
if (SendEmailMessage($message, $subject, $_POST['saveemail'], $from, $sitename, false, getBounceEmail($surveyid))) {
$emailsent = "Y";
} else {
$errormsg .= $clang->gT('Error: Email failed, this may indicate a PHP Mail Setup problem on the server. Your survey details have still been saved, however you will not get an email with the details. You should note the "name" and "password" you just used for future reference.');
if (trim($thissurvey['adminemail']) == '') {
$errormsg .= $clang->gT('(Reason: Admin email address empty)');
}
}
}
return $clang->gT('Your survey was successfully saved.');
}
//.........这里部分代码省略.........
示例7: db_quoteall
$utquery .= "SET usesleft=usesleft-1, completed='Y'\n";
} else {
$utquery .= "SET usesleft=usesleft-1\n";
}
}
$utquery .= "WHERE token=" . db_quoteall($_POST['token'], true);
$utresult = $connect->Execute($utquery) or safe_die("Couldn't update tokens table!<br />\n{$utquery}<br />\n" . $connect->ErrorMsg());
// save submitdate into survey table
$srid = $connect->Insert_ID();
$sdquery = "UPDATE {$dbprefix}survey_{$surveyid} SET submitdate=" . db_quoteall($submitdate, true) . " WHERE id={$srid}\n";
$sdresult = $connect->Execute($sdquery) or safe_die("Couldn't set submitdate response in survey table!<br />\n{$sdquery}<br />\n" . $connect->ErrorMsg());
}
if (isset($_POST['save']) && $_POST['save'] == "on") {
$srid = $connect->Insert_ID();
//CREATE ENTRY INTO "saved_control"
$scdata = array("sid" => $surveyid, "srid" => $srid, "identifier" => $saver['identifier'], "access_code" => $password, "email" => $saver['email'], "ip" => getIPAddress(), "refurl" => getenv("HTTP_REFERER"), 'saved_thisstep' => 0, "status" => "S", "saved_date" => date_shift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $timeadjust));
if ($connect->AutoExecute("{$dbprefix}saved_control", $scdata, 'INSERT')) {
$scid = $connect->Insert_ID("{$dbprefix}saved_control", "scid");
$dataentryoutput .= "<font class='successtitle'>" . $clang->gT("Your survey responses have been saved successfully. You will be sent a confirmation e-mail. Please make sure to save your password, since we will not be able to retrieve it for you.") . "</font><br />\n";
$tkquery = "SELECT * FROM " . db_table_name("tokens_{$surveyid}");
if ($tkresult = $connect->Execute($tkquery)) {
$tokendata = array("firstname" => $saver['identifier'], "lastname" => $saver['identifier'], "email" => $saver['email'], "token" => sRandomChars(15), "language" => $saver['language'], "sent" => date_shift(date("Y-m-d H:i:s"), "Y-m-d H:i", $timeadjust), "completed" => "N");
$connect->AutoExecute(db_table_name("tokens_" . $surveyid), $tokendata, 'INSERT');
$dataentryoutput .= "<font class='successtitle'>" . $clang->gT("A token entry for the saved survey has been created too.") . "</font><br />\n";
}
if ($saver['email']) {
//Send email
if (validate_email($saver['email']) && !returnglobal('redo')) {
$subject = $clang->gT("Saved Survey Details");
$message = $clang->gT("Thank you for saving your survey in progress. The following details can be used to return to this survey and continue where you left off. Please keep this e-mail for your reference - we cannot retrieve the password for you.");
$message .= "\n\n" . $thissurvey['name'] . "\n\n";
示例8: do_shortfreetext
function do_shortfreetext($ia)
{
global $thissurvey;
$sGoogleMapsAPIKey = trim(Yii::app()->getConfig("googleMapsAPIKey"));
if ($sGoogleMapsAPIKey != '') {
$sGoogleMapsAPIKey = '&key=' . $sGoogleMapsAPIKey;
}
$extraclass = "";
$aQuestionAttributes = getQuestionAttributeValues($ia[0]);
if ($aQuestionAttributes['numbers_only'] == 1) {
$sSeparator = getRadixPointData($thissurvey['surveyls_numberformat']);
$sSeparator = $sSeparator['separator'];
$extraclass .= " numberonly";
$checkconditionFunction = "fixnum_checkconditions";
} else {
$checkconditionFunction = "checkconditions";
}
if (intval(trim($aQuestionAttributes['maximum_chars'])) > 0) {
// Only maxlength attribute, use textarea[maxlength] jquery selector for textarea
$maximum_chars = intval(trim($aQuestionAttributes['maximum_chars']));
$maxlength = "maxlength='{$maximum_chars}' ";
$extraclass .= " maxchars maxchars-" . $maximum_chars;
} else {
$maxlength = "";
}
if (trim($aQuestionAttributes['text_input_width']) != '') {
$tiwidth = $aQuestionAttributes['text_input_width'];
$extraclass .= " inputwidth-" . trim($aQuestionAttributes['text_input_width']);
} else {
$tiwidth = 50;
}
if (trim($aQuestionAttributes['prefix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']]) != '') {
$prefix = $aQuestionAttributes['prefix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']];
$extraclass .= " withprefix";
} else {
$prefix = '';
}
if (trim($aQuestionAttributes['suffix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']]) != '') {
$suffix = $aQuestionAttributes['suffix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']];
$extraclass .= " withsuffix";
} else {
$suffix = '';
}
if ($thissurvey['nokeyboard'] == 'Y') {
includeKeypad();
$kpclass = "text-keypad";
$extraclass .= " inputkeypad";
} else {
$kpclass = "";
}
if (trim($aQuestionAttributes['display_rows']) != '') {
//question attribute "display_rows" is set -> we need a textarea to be able to show several rows
$drows = $aQuestionAttributes['display_rows'];
//if a textarea should be displayed we make it equal width to the long text question
//this looks nicer and more continuous
if ($tiwidth == 50) {
$tiwidth = 40;
}
//NEW: textarea instead of input=text field
// --> START NEW FEATURE - SAVE
$answer = "<p class='question answer-item text-item {$extraclass}'><label for='answer{$ia[1]}' class='hide label'>" . gT('Your answer') . "</label>" . '<textarea class="textarea ' . $kpclass . '" name="' . $ia[1] . '" id="answer' . $ia[1] . '" ' . 'rows="' . $drows . '" cols="' . $tiwidth . '" ' . $maxlength . ' onkeyup="' . $checkconditionFunction . '(this.value, this.name, this.type);">';
// --> END NEW FEATURE - SAVE
if ($_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]]) {
$dispVal = str_replace("\\", "", $_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]]);
if ($aQuestionAttributes['numbers_only'] == 1) {
$dispVal = str_replace('.', $sSeparator, $dispVal);
}
$answer .= $dispVal;
}
$answer .= "</textarea></p>\n";
} elseif ((int) $aQuestionAttributes['location_mapservice'] == 1) {
$mapservice = $aQuestionAttributes['location_mapservice'];
$currentLocation = $_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]];
$currentLatLong = null;
$floatLat = 0;
$floatLng = 0;
// Get the latitude/longtitude for the point that needs to be displayed by default
if (strlen($currentLocation) > 2) {
$currentLatLong = explode(';', $currentLocation);
$currentLatLong = array($currentLatLong[0], $currentLatLong[1]);
} else {
if ((int) $aQuestionAttributes['location_nodefaultfromip'] == 0) {
$currentLatLong = getLatLongFromIp(getIPAddress());
}
if (!isset($currentLatLong) || $currentLatLong == false) {
$floatLat = 0;
$floatLng = 0;
$LatLong = explode(" ", trim($aQuestionAttributes['location_defaultcoordinates']));
if (isset($LatLong[0]) && isset($LatLong[1])) {
$floatLat = $LatLong[0];
$floatLng = $LatLong[1];
}
$currentLatLong = array($floatLat, $floatLng);
}
}
// 2 - city; 3 - state; 4 - country; 5 - postal
$strBuild = "";
if ($aQuestionAttributes['location_city']) {
$strBuild .= "2";
}
//.........这里部分代码省略.........
示例9: do_shortfreetext
function do_shortfreetext($ia)
{
global $thissurvey;
$clang = Yii::app()->lang;
$sGoogleMapsAPIKey = trim(Yii::app()->getConfig("googleMapsAPIKey"));
if ($sGoogleMapsAPIKey != '') {
$sGoogleMapsAPIKey = '&key=' . $sGoogleMapsAPIKey;
}
$extraclass = "";
$aQuestionAttributes = getQuestionAttributeValues($ia[0], $ia[4]);
if ($aQuestionAttributes['numbers_only'] == 1) {
$sSeparator = getRadixPointData($thissurvey['surveyls_numberformat']);
$sSeparator = $sSeparator['separator'];
$extraclass .= " numberonly";
$checkconditionFunction = "fixnum_checkconditions";
} else {
$checkconditionFunction = "checkconditions";
}
if (intval(trim($aQuestionAttributes['maximum_chars'])) > 0) {
// Only maxlength attribute, use textarea[maxlength] jquery selector for textarea
$maximum_chars = intval(trim($aQuestionAttributes['maximum_chars']));
$maxlength = "maxlength='{$maximum_chars}' ";
$extraclass .= " maxchars maxchars-" . $maximum_chars;
} else {
$maxlength = "";
}
if (trim($aQuestionAttributes['text_input_width']) != '') {
$tiwidth = $aQuestionAttributes['text_input_width'];
$extraclass .= " inputwidth-" . trim($aQuestionAttributes['text_input_width']);
} else {
$tiwidth = 50;
}
if (trim($aQuestionAttributes['prefix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']]) != '') {
$prefix = $aQuestionAttributes['prefix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']];
$extraclass .= " withprefix";
} else {
$prefix = '';
}
if (trim($aQuestionAttributes['suffix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']]) != '') {
$suffix = $aQuestionAttributes['suffix'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']];
$extraclass .= " withsuffix";
} else {
$suffix = '';
}
if ($thissurvey['nokeyboard'] == 'Y') {
includeKeypad();
$kpclass = "text-keypad";
$extraclass .= " inputkeypad";
} else {
$kpclass = "";
}
if (trim($aQuestionAttributes['display_rows']) != '') {
//question attribute "display_rows" is set -> we need a textarea to be able to show several rows
$drows = $aQuestionAttributes['display_rows'];
//if a textarea should be displayed we make it equal width to the long text question
//this looks nicer and more continuous
if ($tiwidth == 50) {
$tiwidth = 40;
}
//NEW: textarea instead of input=text field
// --> START NEW FEATURE - SAVE
$answer = "<p class='question answer-item text-item {$extraclass}'><label for='answer{$ia[1]}' class='hide label'>{$clang->gT('Answer')}</label>" . '<textarea class="textarea ' . $kpclass . '" name="' . $ia[1] . '" id="answer' . $ia[1] . '" ' . 'rows="' . $drows . '" cols="' . $tiwidth . '" ' . $maxlength . ' onkeyup="' . $checkconditionFunction . '(this.value, this.name, this.type);">';
// --> END NEW FEATURE - SAVE
if ($_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]]) {
$dispVal = str_replace("\\", "", $_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]]);
if ($aQuestionAttributes['numbers_only'] == 1) {
$dispVal = str_replace('.', $sSeparator, $dispVal);
}
$answer .= $dispVal;
}
$answer .= "</textarea></p>\n";
} elseif ((int) $aQuestionAttributes['location_mapservice'] != 0) {
$mapservice = $aQuestionAttributes['location_mapservice'];
$currentLocation = $_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]];
$currentLatLong = null;
$floatLat = 0;
$floatLng = 0;
// Get the latitude/longtitude for the point that needs to be displayed by default
if (strlen($currentLocation) > 2) {
$currentLatLong = explode(';', $currentLocation);
$currentLatLong = array($currentLatLong[0], $currentLatLong[1]);
} else {
if ((int) $aQuestionAttributes['location_nodefaultfromip'] == 0) {
$currentLatLong = getLatLongFromIp(getIPAddress());
}
if (!isset($currentLatLong) || $currentLatLong == false) {
$floatLat = 0;
$floatLng = 0;
$LatLong = explode(" ", trim($aQuestionAttributes['location_defaultcoordinates']));
if (isset($LatLong[0]) && isset($LatLong[1])) {
$floatLat = $LatLong[0];
$floatLng = $LatLong[1];
}
$currentLatLong = array($floatLat, $floatLng);
}
}
// 2 - city; 3 - state; 4 - country; 5 - postal
$strBuild = "";
if ($aQuestionAttributes['location_city']) {
$strBuild .= "2";
//.........这里部分代码省略.........
示例10: _UpdateValuesInDatabase
/**
* Write values to database.
* @param <type> $updatedValues
* @param <boolean> $finished - true if the survey needs to be finalized
*/
private function _UpdateValuesInDatabase($updatedValues, $finished = false, $setSubmitDate = false)
{
// Update these values in the database
global $connect;
// TODO - now that using $this->updatedValues, may be able to remove local copies of it (unless needed by other sub-systems)
$updatedValues = $this->updatedValues;
if (!$this->surveyOptions['deletenonvalues']) {
$nonNullValues = array();
foreach ($updatedValues as $key => $value) {
if (!is_null($value)) {
if (isset($value['value']) && !is_null($value['value'])) {
$nonNullValues[$key] = $value;
}
}
}
$updatedValues = $nonNullValues;
}
$message = '';
if ($this->surveyOptions['datestamp'] == true && $this->surveyOptions['anonymized'] == true) {
// On anonymous datestamped surveys, set the datestamp to 1-1-1980
$datestamp = date("Y-m-d H:i:s", mktime(0, 0, 0, 1, 1, 1980));
} else {
// Otherwise, use the real date/time, it will only be saved when the table holds a
// datestamp field
$datestamp = date_shift(date("Y-m-d H:i:s"), "Y-m-d H:i:s", $this->surveyOptions['timeadjust']);
}
$_SESSION['datestamp'] = $datestamp;
if ($this->surveyOptions['active'] && !isset($_SESSION['srid'])) {
// Create initial insert row for this record
$sdata = array("datestamp" => $datestamp, "ipaddr" => $this->surveyOptions['ipaddr'] ? getIPAddress() : '', "startlanguage" => $this->surveyOptions['startlanguage'], "token" => $this->surveyOptions['token'], "refurl" => $this->surveyOptions['refurl'] ? getenv("HTTP_REFERER") : NULL, "startdate" => $datestamp);
//One of the strengths of ADOdb's AutoExecute() is that only valid field names for $table are updated
if ($connect->AutoExecute($this->surveyOptions['tablename'], $sdata, 'INSERT')) {
$srid = $connect->Insert_ID($this->surveyOptions['tablename'], "id");
$_SESSION['srid'] = $srid;
} else {
$message .= $this->gT("Unable to insert record into survey table: ") . $connect->ErrorMsg() . "<br/>";
$_SESSION['flashmessage'] = $message;
echo $message;
}
//Insert Row for Timings, if needed
if ($this->surveyOptions['savetimings']) {
$tdata = array('id' => $srid, 'interviewtime' => 0);
if ($connect->AutoExecute($this->surveyOptions['tablename_timings'], $tdata, 'INSERT')) {
$trid = $connect->Insert_ID($this->surveyOptions['tablename_timings'], "sid");
} else {
$message .= $this->gT("Unable to insert record into timings table ") . $connect->ErrorMsg() . "<br/>";
$_SESSION['flashmessage'] = $message;
echo $message;
}
}
}
if (count($updatedValues) > 0 || $finished) {
$query = 'UPDATE ' . $this->surveyOptions['tablename'] . " SET ";
$setter = array();
switch ($this->surveyMode) {
case 'question':
$thisstep = $this->currentQuestionSeq;
break;
case 'group':
$thisstep = $this->currentGroupSeq;
break;
case 'survey':
$thisstep = 1;
break;
}
$setter[] = db_quote_id('lastpage') . "=" . db_quoteall($thisstep);
if ($this->surveyOptions['datestamp'] && isset($_SESSION['datestamp'])) {
$setter[] = db_quote_id('datestamp') . "=" . db_quoteall($_SESSION['datestamp']);
}
if ($this->surveyOptions['ipaddr']) {
$setter[] = db_quote_id('ipaddr') . "=" . db_quoteall(getIPAddress());
}
foreach ($updatedValues as $key => $value) {
if (!empty($key)) {
$val = is_null($value) ? NULL : $value['value'];
$type = is_null($value) ? NULL : $value['type'];
// Clean up the values to cope with database storage requirements
switch ($type) {
case 'D':
//DATE
if (trim($val) == '') {
$val = NULL;
// since some databases can't store blanks in date fields
}
// otherwise will already be in yyyy-mm-dd format after ProcessCurrentResponses()
break;
case '|':
//File upload
// This block can be removed once we require 5.3 or later
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$val = addslashes($val);
}
break;
case 'N':
//NUMERICAL QUESTION TYPE
//.........这里部分代码省略.........
示例11: mysql_connect
include 'info.php';
//MYSQL CONNECTION.
mysql_connect($serverAddress, $serverUsername, $serverPassword) or die(mysql_error());
mysql_select_db($serverDatabaseName) or die(mysql_error());
$portalUser = $_POST['login_user'];
//MYSQL QUERY.
$queryDataUser = mysql_query("SELECT * FROM userData WHERE portalUser = '{$portalUser}'");
//CHECK IF THE USER EXISTS.
if (mysql_num_rows($queryDataUser)) {
$portalSalt = getInfo($portalUser, 'portalSalt');
$portalHash = md5($_POST['login_password'] . md5($portalSalt));
$queryDataPassword = mysql_query("SELECT * FROM userData WHERE portalUser = '{$portalUser}' AND portalPassword = '{$portalHash}'");
//CHECK FOR A SUCCESSFUL LOGIN
if (mysql_num_rows($queryDataPassword)) {
//CREATE A SESSION.
$_SESSION['userLoggedIn'] = true;
$_SESSION['userUsername'] = getInfo($portalUser, 'portalUsername');
$_SESSION['userEmail'] = getInfo($portalUser, 'portalEmail');
$_SESSION['userName'] = getInfo($portalUser, 'portalName');
$_SESSION['userRole'] = getInfo($portalUser, 'portalRole');
//LOG NEW INFORMATION IN THE DATABASE.
$currentUser = $_SESSION['userUsername'];
$currentAddress = getIPAddress();
mysql_query("UPDATE userData SET lastAddress = '{$currentAddress}' WHERE portalUser = '{$currentUser}'");
echo "<script>window.open('../portal','_self')</script>";
} else {
echo "<script>window.open('../index?error=danger&title=Failed%20Login&message=The%20username%20or%20password%20entered%20was%20incorrect','_self')</script>";
}
} else {
echo "<script>window.open('../index?error=danger&title=Failed%20Login&message=The%20username%20or%20password%20entered%20was%20incorrect','_self')</script>";
}
示例12: addAttempt
/**
* Creates an attempt
*
* @access public
* @return true
*/
public function addAttempt()
{
$timestamp = date("Y-m-d H:i:s");
$ip = substr(getIPAddress(), 0, 40);
$row = $this->findByAttributes(array('ip' => $ip));
if ($row !== null) {
$row->number_attempts = $row->number_attempts + 1;
$row->last_attempt = $timestamp;
$row->save();
} else {
$record = new FailedLoginAttempt();
$record->ip = $ip;
$record->number_attempts = 1;
$record->last_attempt = $timestamp;
$record->save();
}
return true;
}
示例13: str_replace
//Checked
$loginsummary .= "<br />" . $clang->gT("Username") . ": {$fields['users_name']}<br />" . $clang->gT("Email") . ": {$emailaddr}<br />";
$loginsummary .= "<br />" . $clang->gT("An email with your login data was sent to you.");
$loginsummary .= "<br /><br /><a href='{$scriptname}'>" . $clang->gT("Continue") . "</a><br /> \n";
} else {
$tmp = str_replace("{NAME}", "<strong>" . $fields['users_name'] . "</strong>", $clang->gT("Email to {NAME} ({EMAIL}) failed."));
$loginsummary .= "<br />" . str_replace("{EMAIL}", $emailaddr, $tmp) . "<br />";
$loginsummary .= "<br /><br /><a href='{$scriptname}?action=forgotpassword'>" . $clang->gT("Continue") . "</a><br /> \n";
}
}
}
} elseif ($action == "login" && $useWebserverAuth === false) {
$loginsummary = '';
if (isset($postuser) && isset($_POST['password'])) {
include "database.php";
$sIp = getIPAddress();
$query = "SELECT * FROM " . db_table_name('failed_login_attempts') . " WHERE ip='{$sIp}';";
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$result = $connect->query($query);
$bLoginAttempted = false;
$bCannotLogin = false;
$intNthAttempt = 0;
if ($result !== false && $result->RecordCount() >= 1) {
$bLoginAttempted = true;
$field = $result->FetchRow();
$intNthAttempt = $field['number_attempts'];
if ($intNthAttempt >= $maxLoginAttempt) {
$bCannotLogin = true;
}
$iLastAttempt = strtotime($field['last_attempt']);
if (time() > $iLastAttempt + $timeOutTime) {
示例14: getIPv6Address
function getIPv6Address($ip_bin)
{
if (strlen($ip_bin) != 16) {
throw new InvalidArgException('ip_bin', $ip_bin, "Invalid binary IP");
}
return getIPAddress($ip_bin);
}
示例15: session_start
<?php
session_start();
include 'config.php';
include 'info.php';
include 'mail.php';
//CHECK IF THE REGISTER DETAILS ARE CORRECT.
if ($_POST['register_password'] === $_POST['register_cpassword']) {
//MYSQL CONNECTION.
mysql_connect($serverAddress, $serverUsername, $serverPassword) or die(mysql_error());
mysql_select_db($serverDatabaseName) or die(mysql_error());
$portalUser = $_POST['register_username'];
$portalEmail = $_POST['register_email'];
$portalName = $_POST['register_fullname'];
$portalSalt = md5(chr(mt_rand(ord('a'), ord('z'))) . substr(md5(time()), 1));
$portalHash = md5($_POST['register_password'] . md5($portalSalt));
$portalRegisterIP = getIPAddress();
//MYSQL QUERY.
$createUser = "INSERT INTO userData (portalUser, portalPassword, portalEmail, portalName, portalRole, portalSalt, hasVerify, registerAddress) VALUES ('{$portalUser}', '{$portalHash}', '{$portalEmail}', '{$portalName}', 'Student', '{$portalSalt}', FALSE, '{$portalRegisterIP}')";
//PERFORM THE FOLLOWING ON A SUCCESSFUL REGISTRATION.
if (mysql_query($createUser)) {
sendVerifyMessage($portalEmail, $portalUser, $portalName);
echo "<script>window.open('../index?error=success&title=Registration%20Success&message=The%20registration%20was%20complete.%20Please%20login%20below','_self')</script>";
//PERFORM THE FOLLOWING ON A FAILED REGISTRATION.
} else {
echo "<script>window.open('../index?error=danger&title=Failed%20Registration&message=The%20registration%20failed%20to%20complete,%20please%20try%20again%20later','_self')</script>";
}
} else {
echo "<script>window.open('../index?error=danger&title=Failed%20Registration&message=The%20passwords%20entered%20did%20not%20match','_self')</script>";
}