本文整理汇总了PHP中t3lib_div::validEmail方法的典型用法代码示例。如果您正苦于以下问题:PHP t3lib_div::validEmail方法的具体用法?PHP t3lib_div::validEmail怎么用?PHP t3lib_div::validEmail使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类t3lib_div
的用法示例。
在下文中一共展示了t3lib_div::validEmail方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isValid
/**
* Spam-Validation of given Params
* see powermail/doc/SpamDetection for formula
*
* @param array $params
* @return bool
*/
public function isValid($params) {
if (!$this->settings['spamshield.']['_enable']) {
return true;
}
$this->div = t3lib_div::makeInstance('Tx_Powermail_Utility_Div');
$spamFactor = $this->settings['spamshield.']['factor'] / 100;
// Different checks to increase spam indicator
$this->honeypodCheck($params, $this->settings['spamshield.']['indicator.']['honeypod']);
$this->linkCheck($params, $this->settings['spamshield.']['indicator.']['link'], $this->settings['spamshield.']['indicator.']['linkLimit']);
$this->nameCheck($params, $this->settings['spamshield.']['indicator.']['name']);
$this->sessionCheck($this->settings['spamshield.']['indicator.']['session']);
$this->uniqueCheck($params, $this->settings['spamshield.']['indicator.']['unique']);
$this->blacklistStringCheck($params, $this->settings['spamshield.']['indicator.']['blacklistString']);
$this->blacklistIpCheck($this->settings['spamshield.']['indicator.']['blacklistIp']);
// spam formula with asymptote 1 (100%)
if ($this->spamIndicator > 0) {
$thisSpamFactor = -1 / $this->spamIndicator + 1;
} else {
$thisSpamFactor = 0;
}
// Save Spam Factor in session for db storage
$GLOBALS['TSFE']->fe_user->setKey('ses', 'powermail_spamfactor', $this->formatSpamFactor($thisSpamFactor));
$GLOBALS['TSFE']->storeSessionData();
// Spam debugging
if ($this->settings['debug.']['spamshield']) {
t3lib_utility_Debug::debug($this->msg, 'powermail debug: Show Spamchecks - Spamfactor ' . $this->formatSpamFactor($thisSpamFactor));
}
// if spam
if ($thisSpamFactor >= $spamFactor) {
$this->addError('spam_details', $this->formatSpamFactor($thisSpamFactor));
// Send notification email to admin
if (t3lib_div::validEmail($this->settings['spamshield.']['email'])) {
$subject = 'Spam in powermail form recognized';
$message = 'Possible spam in powermail form on page with PID ' . $GLOBALS['TSFE']->id;
$message .= "\n\n";
$message .= 'Spamfactor of this mail: ' . $this->formatSpamFactor($thisSpamFactor) . "\n";
$message .= "\n\n";
$message .= 'Failed Spamchecks:' . "\n";
$message .= Tx_Powermail_Utility_Div::viewPlainArray($this->msg);
$message .= "\n\n";
$message .= 'Given Form variables:' . "\n";
$message .= Tx_Powermail_Utility_Div::viewPlainArray($params);
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$header .= 'From: powermail@' . t3lib_div::getIndpEnv('TYPO3_HOST_ONLY') . "\r\n";
t3lib_div::plainMailEncoded($this->settings['spamshield.']['email'], $subject, $message, $header);
}
return false;
}
return true;
}
示例2: evaluateFieldValue
/**
* Server valuation
*
* @param $value The field value to be evaluated.
* @param $is_in The "is_in" value of the field configuration from TCA
* @param $set Boolean defining if the value is written to the database or not. Must be passed by reference and changed if needed.
* @return string Value
*/
public function evaluateFieldValue($value, $is_in, &$set) {
if (t3lib_div::validEmail($value)) {
$set = 1;
} else {
$set = 0;
$value = 'errorinemail@tryagain.com';
}
return $value;
}
示例3: check
/**
* Validates that a specified field has valid email syntax.
*
* @param array &$check The TypoScript settings for this error check
* @param string $name The field name
* @param array &$gp The current GET/POST parameters
* @return string The error string
*/
public function check(&$check, $name, &$gp)
{
$checkFailed = '';
if (isset($gp[$name]) && strlen(trim($gp[$name])) > 0) {
$valid = t3lib_div::validEmail($gp[$name]);
if (!$valid) {
$checkFailed = $this->getCheckFailed($check);
}
}
return $checkFailed;
}
示例4: isValid
/**
* Validation of given Params
*
* @param Tx_WoehrlSeminare_Domain_Model_Subscriber $newSubscriber
* @return bool
*/
public function isValid($newSubscriber)
{
if (strlen($newSubscriber->getName()) < 3) {
$error = $this->objectManager->get('Tx_Extbase_Error_Error', 'val_name', 1000);
$this->result->forProperty('name')->addError($error);
// usually $this->addError is enough but this doesn't set the CSS errorClass in the form-viewhelper :-(
// $this->addError('val_name', 1000);
$this->isValid = FALSE;
}
if (!t3lib_div::validEmail($newSubscriber->getEmail())) {
$error = $this->objectManager->get('Tx_Extbase_Error_Error', 'val_email', 1100);
$this->result->forProperty('email')->addError($error);
// $this->addError('val_email', 1100);
$this->isValid = FALSE;
}
if (strlen($newSubscriber->getCustomerid()) > 0 && filter_var($newSubscriber->getCustomerid(), FILTER_VALIDATE_INT) === FALSE) {
$error = $this->objectManager->get('Tx_Extbase_Error_Error', 'val_customerid', 1110);
$this->result->forProperty('customerid')->addError($error);
// $this->addError('val_customerid', 1110);
$this->isValid = FALSE;
}
if (strlen($newSubscriber->getNumber()) == 0 || filter_var($newSubscriber->getNumber(), FILTER_VALIDATE_INT) === FALSE || $newSubscriber->getNumber() < 1) {
$error = $this->objectManager->get('Tx_Extbase_Error_Error', 'val_number', 1120);
$this->result->forProperty('number')->addError($error);
// $this->addError('val_number', 1120);
$this->isValid = FALSE;
} else {
$event = $newSubscriber->getEvent();
// limit reached already --> overbooked
if ($this->subscriberRepository->countAllByEvent($event) + $newSubscriber->getNumber() > $event->getMaxSubscriber()) {
$error = $this->objectManager->get('Tx_Extbase_Error_Error', 'val_number', 1130);
$this->result->forProperty('number')->addError($error);
// $this->addError('val_number', 1130);
$this->isValid = FALSE;
}
}
if ($newSubscriber->getEditcode() != $this->getSessionData('editcode')) {
$error = $this->objectManager->get('Tx_Extbase_Error_Error', 'val_editcode', 1140);
$this->result->forProperty('editcode')->addError($error);
// $this->addError('val_editcode', 1140);
$this->isValid = FALSE;
}
return $this->isValid;
}
示例5: checkBeAction
/**
* Check View Backend
*
* @param string $email email address
* @return void
*/
public function checkBeAction($email = NULL) {
$this->view->assign('pid', t3lib_div::_GP('id'));
if ($email) {
if (t3lib_div::validEmail($email)) {
$body = 'New <b>Test Email</b> from User ' . $GLOBALS['BE_USER']->user['username'] . ' (' . t3lib_div::getIndpEnv('HTTP_HOST') . ')';
$message = t3lib_div::makeInstance('t3lib_mail_Message');
$message
->setTo(array($email => 'Receiver'))
->setFrom(array('powermail@domain.net' => 'powermail'))
->setSubject('New Powermail Test Email')
->setBody($body, 'text/html')
->send();
$this->view->assign('issent', $message->isSent());
$this->view->assign('email', $email);
}
}
}
示例6: startIndexing
function startIndexing($verbose = true, $extConf, $mode = '')
{
// write starting timestamp into registry
// this is a helper to delete all records which are older than starting timestamp in registry
// this also prevents starting the indexer twice
if ($this->registry->get('tx_kesearch', 'startTimeOfIndexer') === null) {
$this->registry->set('tx_kesearch', 'startTimeOfIndexer', time());
} else {
// check lock time
$lockTime = $this->registry->get('tx_kesearch', 'startTimeOfIndexer');
$compareTime = time() - 60 * 60 * 12;
if ($lockTime < $compareTime) {
// lock is older than 12 hours - remove
$this->registry->removeAllByNamespace('tx_kesearch');
$this->registry->set('tx_kesearch', 'startTimeOfIndexer', time());
} else {
return 'You can\'t start the indexer twice. Please wait while first indexer process is currently running';
}
}
// set indexing start time
$this->startTime = time();
// get configurations
$configurations = $this->getConfigurations();
// number of records that should be written to the database in one action
$this->amountOfRecordsToSaveInMem = 500;
// register additional fields which should be written to DB
if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ke_search']['registerAdditionalFields'])) {
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ke_search']['registerAdditionalFields'] as $_classRef) {
if (TYPO3_VERSION_INTEGER >= 7000000) {
$_procObj =& TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj($_classRef);
} else {
$_procObj =& t3lib_div::getUserObj($_classRef);
}
$_procObj->registerAdditionalFields($this->additionalFields);
}
}
// set some prepare statements
$this->prepareStatements();
foreach ($configurations as $indexerConfig) {
$this->indexerConfig = $indexerConfig;
// run default indexers shipped with ke_search
if (in_array($this->indexerConfig['type'], $this->defaultIndexerTypes)) {
if (TYPO3_VERSION_INTEGER < 6002000) {
$path = t3lib_extMgm::extPath('ke_search') . 'Classes/indexer/types/class.tx_kesearch_indexer_types_' . $this->indexerConfig['type'] . '.php';
} else {
$path = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('ke_search') . 'Classes/indexer/types/class.tx_kesearch_indexer_types_' . $this->indexerConfig['type'] . '.php';
}
if (is_file($path)) {
require_once $path;
if (TYPO3_VERSION_INTEGER >= 6002000) {
$searchObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_kesearch_indexer_types_' . $this->indexerConfig['type'], $this);
} else {
$searchObj = t3lib_div::makeInstance('tx_kesearch_indexer_types_' . $this->indexerConfig['type'], $this);
}
$content .= $searchObj->startIndexing();
} else {
$content = '<div class="error"> Could not find file ' . $path . '</div>' . "\n";
}
}
// hook for custom indexer
if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ke_search']['customIndexer'])) {
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ke_search']['customIndexer'] as $_classRef) {
if (TYPO3_VERSION_INTEGER >= 7000000) {
$_procObj =& TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj($_classRef);
} else {
$_procObj =& t3lib_div::getUserObj($_classRef);
}
$content .= $_procObj->customIndexer($indexerConfig, $this);
}
}
// In most cases there are some records waiting in ram to be written to db
$this->storeTempRecordsToIndex('both');
}
// process index cleanup
$content .= $this->cleanUpIndex();
// count index records
$count = $GLOBALS['TYPO3_DB']->exec_SELECTcountRows('*', 'tx_kesearch_index');
$content .= '<p><b>Index contains ' . $count . ' entries.</b></p>';
// clean up process after indezing to free memory
$this->cleanUpProcessAfterIndexing();
// print indexing errors
if (sizeof($this->indexingErrors)) {
$content .= "\n\n" . '<br /><br /><br /><b>INDEXING ERRORS (' . sizeof($this->indexingErrors) . ')<br /><br />' . CHR(10);
foreach ($this->indexingErrors as $error) {
$content .= $error . '<br />' . CHR(10);
}
}
// create plaintext report
$plaintextReport = $this->createPlaintextReport($content);
// send notification in CLI mode
if ($mode == 'CLI') {
// send finishNotification
if (TYPO3_VERSION_INTEGER >= 7000000) {
$isValidEmail = TYPO3\CMS\Core\Utility\GeneralUtility::validEmail($extConf['notificationRecipient']);
} else {
$isValidEmail = t3lib_div::validEmail($extConf['notificationRecipient']);
}
if ($extConf['finishNotification'] && $isValidEmail) {
// send the notification message
// use swiftmailer in 4.5 and above
//.........这里部分代码省略.........
示例7: sendInfo
/**
* Sends info mail to subscriber or displays a screen to update or delete the membership
*
* @param array $cObj: the cObject
* @param array $langObj: the language object
* @param array $controlData: the object of the control data
* @param array $controlData: the object of the control data
* @param string $theTable: the table in use
* @param string $prefixId: the extension prefix id
* @param array Array with key/values being marker-strings/substitution values.
* @return string HTML content message
* @see init(),compile(), send()
*/
public function sendInfo($conf, $cObj, $langObj, $controlData, $tcaObj, $markerObj, $dataObj, $displayObj, $setfixedObj, $theTable, $prefixId, $origArr, $securedArray, $markerArray, $cmd, $cmdKey, $templateCode, $failure, &$errorCode)
{
$content = FALSE;
if ($conf['infomail'] && $conf['email.']['field']) {
$fetch = $controlData->getFeUserData('fetch');
if (isset($fetch) && !empty($fetch) && !$failure) {
$pidLock = 'AND pid IN (' . ($cObj->data['pages'] ? $cObj->data['pages'] . ',' : '') . $controlData->getPid() . ')';
$enable = $GLOBALS['TSFE']->sys_page->enableFields($theTable);
// Getting records
// $conf['email.']['field'] must be a valid field in the table!
$DBrows = $GLOBALS['TSFE']->sys_page->getRecordsByField($theTable, $conf['email.']['field'], $fetch, $pidLock . $enable, '', '', '100');
$errorContent = '';
// Processing records
if (is_array($DBrows)) {
$recipient = $DBrows[0][$conf['email.']['field']];
$dataObj->setDataArray($DBrows[0]);
$errorContent = $this->compile('INFOMAIL', $conf, $cObj, $langObj, $controlData, $tcaObj, $markerObj, $dataObj, $displayObj, $setfixedObj, $theTable, $prefixId, $DBrows, $DBrows, $securedArray, trim($recipient), $markerArray, $cmd, $cmdKey, $templateCode, $dataObj->getInError(), $conf['setfixed.'], $errorCode);
} elseif (t3lib_div::validEmail($fetch)) {
$fetchArray = array('0' => array('email' => $fetch));
$errorContent = $this->compile('INFOMAIL_NORECORD', $conf, $cObj, $langObj, $controlData, $tcaObj, $markerObj, $dataObj, $displayObj, $setfixedObj, $theTable, $prefixId, $fetchArray, $fetchArray, $securedArray, $fetch, $markerArray, $cmd, $cmdKey, $templateCode, $dataObj->getInError(), array(), $errorCode);
}
if ($errorContent || is_array($errorCode)) {
$content = $errorContent;
} else {
$subpartkey = '###TEMPLATE_' . $this->infomailPrefix . 'SENT###';
$content = $displayObj->getPlainTemplate($conf, $cObj, $langObj, $controlData, $tcaObj, $markerObj, $dataObj, $templateCode, $subpartkey, $markerArray, $origArr, $theTable, $prefixId, is_array($DBrows) ? $DBrows[0] : (is_array($fetchArray) ? $fetchArray[0] : ''), $securedArray, FALSE);
if (!$content) {
// compatibility until 1.1.2010
$subpartkey = '###' . $this->emailMarkPrefix . $this->infomailPrefix . 'SENT###';
$content = $displayObj->getPlainTemplate($conf, $cObj, $langObj, $controlData, $tcaObj, $markerObj, $dataObj, $templateCode, $subpartkey, $markerArray, $origArr, $theTable, $prefixId, is_array($DBrows) ? $DBrows[0] : (is_array($fetchArray) ? $fetchArray[0] : ''), $securedArray);
}
}
} else {
$subpartkey = '###TEMPLATE_INFOMAIL###';
if (isset($fetch) && !empty($fetch)) {
$markerArray['###FIELD_email###'] = htmlspecialchars($fetch);
} else {
$markerArray['###FIELD_email###'] = '';
}
$content = $displayObj->getPlainTemplate($conf, $cObj, $langObj, $controlData, $tcaObj, $markerObj, $dataObj, $templateCode, $subpartkey, $markerArray, $origArr, $theTable, $prefixId, '', $securedArray, TRUE, $failure);
}
} else {
$errorCode = array();
$errorCode['0'] = 'internal_infomail_configuration';
}
return $content;
}
示例8: getReceipientsOfStage
/**
* Gets all assigned recipients of a particular stage.
*
* @param integer $stage
* @return array
*/
protected function getReceipientsOfStage($stage)
{
$result = array();
$recipients = $this->getStageService()->getResponsibleBeUser($stage);
foreach ($recipients as $id => $user) {
if (t3lib_div::validEmail($user['email'])) {
$name = $user['realName'] ? $user['realName'] : $user['username'];
$result[] = array('boxLabel' => sprintf('%s (%s)', $name, $user['email']), 'name' => 'receipients-' . $id, 'checked' => TRUE);
}
}
return $result;
}
示例9: validateEmailAddress
/**
* Validates that $emailAddress is non-empty and valid. If it is not, this method throws an exception.
*
* @param string $emailAddress the supposed e-mail address to check
* @param string $roleDescription e.g., "To:" or "From:", must not be empty
*
* @return void
*
* @throws InvalidArgumentException
*/
protected function validateEmailAddress($emailAddress, $roleDescription)
{
if ($emailAddress === '') {
throw new InvalidArgumentException('The ' . $roleDescription . ' e-mail address "' . $emailAddress . '" was empty.', 1409601561);
}
if (!$this->isLocalhostAddress($emailAddress) && !t3lib_div::validEmail($emailAddress)) {
throw new InvalidArgumentException('The ' . $roleDescription . ' e-mail address "' . $emailAddress . '" was not valid.', 1409601561);
}
}
示例10: validateAdditionalFields
/**
* This method checks any additional data that is relevant to the specific task
* If the task class is not relevant, the method is expected to return true
*
* @param array $submittedData: reference to the array containing the data submitted by the user
* @param tx_scheduler_Module $parentObject: reference to the calling object (Scheduler's BE module)
* @return boolean True if validation was ok (or selected class is not relevant), false otherwise
*/
public function validateAdditionalFields(array &$submittedData, tx_scheduler_Module $parentObject)
{
$bError = false;
foreach ($this->getAdditionalFieldConfig() as $sKey => $aOptions) {
$mValue =& $submittedData[$sKey];
// bei einer checkbox ist der value immer 'on'!
if ($aOptions['type'] && $mValue === 'on') {
$mValue = 1;
}
$bMessage = false;
// Die Einzelnen validatoren anwenden.
if (!$bMessage) {
foreach (t3lib_div::trimExplode(',', $aOptions['eval']) as $sEval) {
$sLabelKey = ($aOptions['label'] ? $aOptions['label'] : $sKey) . '_eval_' . $sEval;
switch ($sEval) {
case 'required':
$bMessage = empty($mValue);
break;
case 'trim':
$mValue = trim($mValue);
break;
case 'int':
$bMessage = !is_numeric($mValue);
if (!$bMessage) {
$mValue = intval($mValue);
}
break;
case 'date':
$mValue = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'], $mValue);
break;
case 'email':
//wir unterstützen kommaseparierte listen von email andressen
if (!empty($mValue)) {
$aEmails = explode(',', $mValue);
$bMessage = false;
foreach ($aEmails as $sEmail) {
if (!t3lib_div::validEmail($sEmail)) {
$bMessage = true;
}
}
}
break;
case 'folder':
tx_rnbase::load('tx_mklib_util_File');
$sPath = tx_mklib_util_File::getServerPath($mValue);
$bMessage = !@is_dir($sPath);
if (!$bMessage) {
$mValue = $sPath;
}
break;
case 'file':
tx_rnbase::load('tx_mklib_util_File');
$sPath = tx_mklib_util_File::getServerPath($mValue);
$bMessage = !@file_exists($sPath);
if (!$bMessage) {
$mValue = $sPath;
}
break;
case 'url':
$bMessage = !t3lib_div::isValidUrl($mValue);
break;
default:
// wir prüfen auf eine eigene validator methode in der Kindklasse.
// in eval muss validateLifetime stehen, damit folgende methode aufgerufen wird.
// protected function validateLifetime($mValue){ return true; }
// @TODO: clasname::method prüfen!?
if (method_exists($this, $sEval)) {
$ret = $this->{$sEval}($mValue, $submittedData);
if (is_string($ret)) {
$bMessage = $sMessage = $ret;
}
}
}
// wir generieren nur eine meldung pro feld!
if ($bMessage) {
break;
}
}
}
// wurde eine fehlermeldung erzeugt?
if ($bMessage) {
$sMessage = $sMessage ? $sMessage : $GLOBALS['LANG']->sL($sLabelKey);
$sMessage = $sMessage ? $sMessage : ucfirst($sKey) . ' has to eval ' . $sEval . '.';
$parentObject->addMessage($sMessage, t3lib_FlashMessage::ERROR);
$bError = true;
continue;
}
}
return !$bError;
}
示例11: sysLog
/**
* Logs message to the system log.
* This should be implemented around the source code, including the Core and both frontend and backend, logging serious errors.
* If you want to implement the sysLog in your applications, simply add lines like:
* t3lib_div::sysLog('[write message in English here]', 'extension_key', 'severity');
*
* @param string Message (in English).
* @param string Extension key (from which extension you are calling the log) or "Core"
* @param integer Severity: 0 is info, 1 is notice, 2 is warning, 3 is error, 4 is fatal error
* @return void
*/
public static function sysLog($msg, $extKey, $severity = 0)
{
global $TYPO3_CONF_VARS;
$severity = self::intInRange($severity, 0, 4);
// is message worth logging?
if (intval($TYPO3_CONF_VARS['SYS']['systemLogLevel']) > $severity) {
return;
}
// initialize logging
if (!$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_div.php']['systemLogInit']) {
self::initSysLog();
}
// do custom logging
if (isset($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_div.php']['systemLog']) && is_array($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_div.php']['systemLog'])) {
$params = array('msg' => $msg, 'extKey' => $extKey, 'backTrace' => debug_backtrace(), 'severity' => $severity);
$fakeThis = FALSE;
foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_div.php']['systemLog'] as $hookMethod) {
self::callUserFunction($hookMethod, $params, $fakeThis);
}
}
// TYPO3 logging enabled?
if (!$TYPO3_CONF_VARS['SYS']['systemLog']) {
return;
}
$dateFormat = $GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'];
$timeFormat = $GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'];
// use all configured logging options
foreach (explode(';', $TYPO3_CONF_VARS['SYS']['systemLog'], 2) as $log) {
list($type, $destination, $level) = explode(',', $log, 4);
// is message worth logging for this log type?
if (intval($level) > $severity) {
continue;
}
$msgLine = ' - ' . $extKey . ': ' . $msg;
// write message to a file
if ($type == 'file') {
$file = fopen($destination, 'a');
if ($file) {
flock($file, LOCK_EX);
// try locking, but ignore if not available (eg. on NFS and FAT)
fwrite($file, date($dateFormat . ' ' . $timeFormat) . $msgLine . LF);
flock($file, LOCK_UN);
// release the lock
fclose($file);
self::fixPermissions($destination);
}
} elseif ($type == 'mail') {
list($to, $from) = explode('/', $destination);
if (!t3lib_div::validEmail($from)) {
$from = t3lib_utility_Mail::getSystemFrom();
}
/** @var $mail t3lib_mail_Message */
$mail = t3lib_div::makeInstance('t3lib_mail_Message');
$mail->setTo($to)->setFrom($from)->setSubject('Warning - error in TYPO3 installation')->setBody('Host: ' . $TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_div.php']['systemLogHost'] . LF . 'Extension: ' . $extKey . LF . 'Severity: ' . $severity . LF . LF . $msg);
$mail->send();
} elseif ($type == 'error_log') {
error_log($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_div.php']['systemLogHost'] . $msgLine, 0);
} elseif ($type == 'syslog') {
$priority = array(LOG_INFO, LOG_NOTICE, LOG_WARNING, LOG_ERR, LOG_CRIT);
syslog($priority[(int) $severity], $msgLine);
}
}
}
示例12: getSystemFromAddress
/**
* Creates a valid email address for the sender of mail messages.
*
* Uses a fallback chain:
* $TYPO3_CONF_VARS['MAIL']['defaultMailFromAddress'] ->
* no-reply@FirstDomainRecordFound ->
* no-reply@php_uname('n') ->
* no-reply@example.com
*
* Ready to be passed to $mail->setFrom() (t3lib_mail)
*
* @return string An email address
*/
public static function getSystemFromAddress()
{
// default, first check the localconf setting
$address = $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress'];
if (!t3lib_div::validEmail($address)) {
// just get us a domain record we can use as the host
$host = '';
$domainRecord = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow('domainName', 'sys_domain', 'hidden = 0', '', 'pid ASC, sorting ASC');
if (!empty($domainRecord['domainName'])) {
$tempUrl = $domainRecord['domainName'];
if (!t3lib_div::isFirstPartOfStr($tempUrl, 'http')) {
// shouldn't be the case anyways, but you never know
// ... there're crazy people out there
$tempUrl = 'http://' . $tempUrl;
}
$host = parse_url($tempUrl, PHP_URL_HOST);
}
$address = 'no-reply@' . $host;
if (!t3lib_div::validEmail($address)) {
// still nothing, get host name from server
$address = 'no-reply@' . php_uname('n');
if (!t3lib_div::validEmail($address)) {
// if everything fails use a dummy address
$address = 'no-reply@example.com';
}
}
}
return $address;
}
示例13: validateAdditionalFields
/**
* This method checks any additional data that is relevant to the specific task.
* If the task class is not relevant, the method is expected to return TRUE.
*
* @param array $submittedData: reference to the array containing the data submitted by the user
* @param tx_scheduler_module1 $parentObject: reference to the calling object (BE module of the Scheduler)
* @return boolean True if validation was ok (or selected class is not relevant), FALSE otherwise
*/
public function validateAdditionalFields(array &$submittedData, tx_scheduler_Module $schedulerModule)
{
$isValid = TRUE;
//!TODO add validation to validate the $submittedData['configuration'] wich is normally a comma seperated string
if (!empty($submittedData['linkvalidator']['email'])) {
$emailList = t3lib_div::trimExplode(',', $submittedData['linkvalidator']['email']);
foreach ($emailList as $emailAdd) {
if (!t3lib_div::validEmail($emailAdd)) {
$isValid = FALSE;
$schedulerModule->addMessage($GLOBALS['LANG']->sL('LLL:EXT:linkvalidator/locallang.xml:tasks.validate.invalidEmail'), t3lib_FlashMessage::ERROR);
}
}
}
if ($res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages', 'uid = ' . $submittedData['linkvalidator']['page'])) {
if ($GLOBALS['TYPO3_DB']->sql_num_rows($res) == 0 && $submittedData['linkvalidator']['page'] > 0) {
$isValid = FALSE;
$schedulerModule->addMessage($GLOBALS['LANG']->sL('LLL:EXT:linkvalidator/locallang.xml:tasks.validate.invalidPage'), t3lib_FlashMessage::ERROR);
}
} else {
$isValid = FALSE;
$schedulerModule->addMessage($GLOBALS['LANG']->sL('LLL:EXT:linkvalidator/locallang.xml:tasks.validate.invalidPage'), t3lib_FlashMessage::ERROR);
}
if ($submittedData['linkvalidator']['depth'] < 0) {
$isValid = FALSE;
$schedulerModule->addMessage($GLOBALS['LANG']->sL('LLL:EXT:linkvalidator/locallang.xml:tasks.validate.invalidDepth'), t3lib_FlashMessage::ERROR);
}
return $isValid;
}
开发者ID:NaveedWebdeveloper,项目名称:Test,代码行数:36,代码来源:class.tx_linkvalidator_tasks_validatoradditionalfieldprovider.php
示例14: main
/**
* Displays an alternative, more advanced / user friendly login form (than the default)
*
* @param string Default content string, ignore
* @param array TypoScript configuration for the plugin
* @return string HTML for the plugin
*/
function main($content, $conf)
{
// Loading TypoScript array into object variable:
$this->conf = $conf;
// Loading language-labels
$this->pi_loadLL();
// Init FlexForm configuration for plugin:
$this->pi_initPIflexForm();
// Get storage PIDs:
if ($this->conf['storagePid']) {
$spid['_STORAGE_PID'] = $this->conf['storagePid'];
} else {
$spid = $GLOBALS['TSFE']->getStorageSiterootPids();
}
// GPvars:
$logintype = t3lib_div::GPvar('logintype');
$redirect_url = t3lib_div::GPvar('redirect_url');
// Auto redirect.
// Feature to redirect to the page where the user came from (HTTP_REFERER).
// Allowed domains to redirect to, can be configured with plugin.tx_newloginbox_pi1.domains
// Thanks to plan2.net / Martin Kutschker for implementing this feature.
if (!$redirect_url && $this->conf['domains']) {
$redirect_url = t3lib_div::getIndpEnv('HTTP_REFERER');
// is referring url allowed to redirect?
$match = array();
if (ereg('^http://([[:alnum:]._-]+)/', $redirect_url, $match)) {
$redirect_domain = $match[1];
$found = false;
foreach (split(',', $this->conf['domains']) as $d) {
if (ereg('(^|\\.)' . $d . '$', $redirect_domain)) {
$found = true;
break;
}
}
if (!$found) {
$redirect_url = '';
}
}
// avoid forced logout, when trying to login immediatly after a logout
$redirect_url = ereg_replace("[&?]logintype=[a-z]+", "", $redirect_url);
}
// Store the entries we will use in the template
$markerArray = array();
$subPartArray = array();
$wrapArray = array();
// Store entries retrieved by post / get queries
$workingData = array('forgot_email' => $this->piVars['DATA']['forgot_email'] ? trim($this->piVars['DATA']['forgot_email']) : '');
if ($this->piVars['forgot']) {
$markerArray['###STATUS_HEADER###'] = $this->pi_getLL('forgot_password', '', 1);
if ($workingData['forgot_email'] && t3lib_div::validEmail($workingData['forgot_email'])) {
$templateMarker = '###TEMPLATE_FORGOT_SENT###';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('username, password', 'fe_users', sprintf('email=\'%s\' and pid=\'%d\' %s', addslashes($workingData['forgot_email']), intval($spid['_STORAGE_PID']), $this->cObj->enableFields('fe_users')));
if ($GLOBALS['TYPO3_DB']->sql_num_rows($res)) {
$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
$msg = sprintf($this->pi_getLL('forgot_password_pswmsg', '', 0), $workingData['forgot_email'], $row['username'], $row['password']);
} else {
$msg = sprintf($this->pi_getLL('forgot_password_no_pswmsg', '', 0), $workingData['forgot_email']);
}
// Hook (used by kb_md5fepw extension by Kraft Bernhard <kraftb@gmx.net>)
if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['newloginbox']['forgotEmail'])) {
$_params = array('msg' => &$msg);
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['newloginbox']['forgotEmail'] as $funcRef) {
t3lib_div::callUserFunction($funcRef, $_params, $this);
}
}
$this->cObj->sendNotifyEmail($msg, $workingData['forgot_email'], '', $this->conf['email_from'], $this->conf['email_fromName'], $this->conf['replyTo']);
$markerArray['###STATUS_MESSAGE###'] = sprintf($this->pi_getLL('forgot_password_emailSent', '', 1), '<em>' . htmlspecialchars($workingData['forgot_email']) . '</em>');
$markerArray['###FORGOT_PASSWORD_BACKTOLOGIN###'] = $this->pi_linkTP_keepPIvars($this->pi_getLL('forgot_password_backToLogin', '', 1), array('forgot' => ''));
} else {
$templateMarker = '###TEMPLATE_FORGOT###';
$markerArray['###ACTION_URI###'] = htmlspecialchars(t3lib_div::getIndpEnv('REQUEST_URI'));
$markerArray['###EMAIL_LABEL###'] = $this->pi_getLL('your_email', '', 1);
$markerArray['###FORGOT_PASSWORD_ENTEREMAIL###'] = $this->pi_getLL('forgot_password_enterEmail', '', 1);
$markerArray['###PREFIXID###'] = $this->prefixId;
$markerArray['###SEND_PASSWORD###'] = $this->pi_getLL('send_password', '', 1);
}
} else {
if ($GLOBALS['TSFE']->loginUser) {
if ($logintype == 'login') {
$templateMarker = '###TEMPLATE_SUCCESS###';
$outH = $this->getOutputLabel('header_success', 's_success', 'header');
$outC = str_replace('###USER###', $GLOBALS['TSFE']->fe_user->user['username'], $this->getOutputLabel('msg_success', 's_success', 'message'));
if ($outH) {
$markerArray['###STATUS_HEADER###'] = $outH;
}
if ($outC) {
$markerArray['###STATUS_MESSAGE###'] = $outC;
}
// Hook for general actions after after login has been confirmed (by Thomas Danzl <thomas@danzl.org>)
if ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['newloginbox']['login_confirmed']) {
$_params = array();
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['newloginbox']['login_confirmed'] as $_funcRef) {
if ($_funcRef) {
//.........这里部分代码省略.........
示例15: viewNewBackendUser
/**
* Action to create a new BE user
*
* @param array $record: sys_action record
* @return string form to create a new user
*/
protected function viewNewBackendUser($record)
{
$content = '';
$beRec = t3lib_BEfunc::getRecord('be_users', intval($record['t1_copy_of_user']));
// a record is neeed which is used as copy for the new user
if (!is_array($beRec)) {
$flashMessage = t3lib_div::makeInstance('t3lib_FlashMessage', $GLOBALS['LANG']->getLL('action_notReady', TRUE), $GLOBALS['LANG']->getLL('action_error'), t3lib_FlashMessage::ERROR);
$content .= $flashMessage->render();
return $content;
}
$vars = t3lib_div::_POST('data');
$key = 'NEW';
if ($vars['sent'] == 1) {
$errors = array();
// basic error checks
if (!empty($vars['email']) && !t3lib_div::validEmail($vars['email'])) {
$errors[] = $GLOBALS['LANG']->getLL('error-wrong-email');
}
if (empty($vars['username'])) {
$errors[] = $GLOBALS['LANG']->getLL('error-username-empty');
}
if (empty($vars['password'])) {
$errors[] = $GLOBALS['LANG']->getLL('error-password-empty');
}
if ($vars['key'] !== 'NEW' && !$this->isCreatedByUser($vars['key'], $record)) {
$errors[] = $GLOBALS['LANG']->getLL('error-wrong-user');
}
// show errors if there are any
if (count($errors) > 0) {
$flashMessage = t3lib_div::makeInstance('t3lib_FlashMessage', implode('<br />', $errors), $GLOBALS['LANG']->getLL('action_error'), t3lib_FlashMessage::ERROR);
$content .= $flashMessage->render() . '<br />';
} else {
// save user
$key = $this->saveNewBackendUser($record, $vars);
// success messsage
$flashMessage = t3lib_div::makeInstance('t3lib_FlashMessage', $vars['key'] === 'NEW' ? $GLOBALS['LANG']->getLL('success-user-created') : $GLOBALS['LANG']->getLL('success-user-updated'), $GLOBALS['LANG']->getLL('success'), t3lib_FlashMessage::OK);
$content .= $flashMessage->render() . '<br />';
}
}
// load BE user to edit
if (intval(t3lib_div::_GP('be_users_uid')) > 0) {
$tmpUserId = intval(t3lib_div::_GP('be_users_uid'));
// check if the selected user is created by the current user
$rawRecord = $this->isCreatedByUser($tmpUserId, $record);
if ($rawRecord) {
// delete user
if (t3lib_div::_GP('delete') == 1) {
$this->deleteUser($tmpUserId, $record['uid']);
}
$key = $tmpUserId;
$vars = $rawRecord;
}
}
$this->JScode();
$loadDB = t3lib_div::makeInstance('t3lib_loadDBGroup');
$loadDB->start($vars['db_mountpoints'], 'pages');
$content .= '<form action="" method="post" enctype="multipart/form-data">
<fieldset class="fields">
<legend>General fields</legend>
<div class="row">
<label for="field_disable">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_general.xml:LGL.disable') . '</label>
<input type="checkbox" id="field_disable" name="data[disable]" value="1" class="checkbox" ' . ($vars['disable'] == 1 ? ' checked="checked" ' : '') . ' />
</div>
<div class="row">
<label for="field_realname">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_general.xml:LGL.name') . '</label>
<input type="text" id="field_realname" name="data[realName]" value="' . htmlspecialchars($vars['realName']) . '" />
</div>
<div class="row">
<label for="field_username">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_tca.xml:be_users.username') . '</label>
<input type="text" id="field_username" name="data[username]" value="' . htmlspecialchars($vars['username']) . '" />
</div>
<div class="row">
<label for="field_password">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_tca.xml:be_users.password') . '</label>
<input type="password" id="field_password" name="data[password]" value="" />
</div>
<div class="row">
<label for="field_email">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_general.xml:LGL.email') . '</label>
<input type="text" id="field_email" name="data[email]" value="' . htmlspecialchars($vars['email']) . '" />
</div>
</fieldset>
<fieldset class="fields">
<legend>Configuration</legend>
<div class="row">
<label for="field_usergroup">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_tca.xml:be_users.usergroup') . '</label>
<select id="field_usergroup" name="data[usergroup][]" multiple="multiple">
' . $this->getUsergroups($record, $vars) . '
</select>
</div>
<div class="row">
<label for="field_db_mountpoints">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_tca.xml:be_users.options_db_mounts') . '</label>
' . $this->t3lib_TCEforms->dbFileIcons('data[db_mountpoints]', 'db', 'pages', $loadDB->itemArray, '', array('size' => 3)) . '
</div>
<div class="row">
//.........这里部分代码省略.........