function checkPrereqs() { if (file_exists(INSTALLDIR.'/config.php')) { ?><p class="error">Config file "config.php" already exists.</p> <? return false; } if (version_compare(PHP_VERSION, '5.0.0', '<')) { ?><p class="error">Require PHP version 5 or greater.</p><? return false; } $reqs = array('gd', 'mysql', 'curl', 'xmlwriter', 'mbstring', 'gettext'); foreach ($reqs as $req) { if (!checkExtension($req)) { ?><p class="error">Cannot load required extension "<?php echo $req; ?> ".</p><? return false; } } if (!is_writable(INSTALLDIR)) { ?><p class="error">Cannot write config file to "<?php echo INSTALLDIR; ?> ".</p> <p>On your server, try this command:</p> <blockquote>chmod a+w <?php echo INSTALLDIR; ?> </blockquote> <? return false; } if (!is_writable(INSTALLDIR.'/avatar/')) { ?><p class="error">Cannot write avatar directory "<?php echo INSTALLDIR; ?> /avatar/".</p> <p>On your server, try this command:</p> <blockquote>chmod a+w <?php echo INSTALLDIR; ?> /avatar/</blockquote> <? return false; } return true; }
</div> <!-- /.navbar-static-side --> </nav> <!-- Page Content --> <div id="page-wrapper"> <div class="container-fluid"> <div class="row"> <div class="col-lg-12"> <h1 class="page-header">Forms</h1> <?php include "../../databaseInfo.php"; define("TARGET_DIR", "../../forms/"); if (!empty($_POST["formName"]) && !empty($_FILES["fileUpload"]["name"])) { if (!file_exists(TARGET_DIR . $_FILES["fileUpload"]["name"])) { if (checkExtension(pathinfo($_FILES["fileUpload"]["name"], PATHINFO_EXTENSION))) { if (move_uploaded_file($_FILES["fileUpload"]["tmp_name"], TARGET_DIR . $_FILES["fileUpload"]["name"])) { if (submitInformation(trim($_POST["formName"]), $_FILES["fileUpload"]["name"])) { displayForm("success", ""); } else { unlink(TARGET_DIR . basename($_FILES["fileUpload"]["name"])); displayForm("fail_submit", $_POST["formName"]); } } else { displayForm("fail_upload", $_POST["formName"]); } } else { displayForm("fail_file_ext", $_POST["formName"]); } } else { displayForm("fail_file_exist", $_POST["formName"]);
function asterisk_handleResponse3($mainresponse, $adb, $asterisk) { $uid = false; $receiver_callerinfo = false; // Asterisk 1.4 (Event: Link), Asterisk 1.6 (Event: Bride, Bridgestate: Link) if ($mainresponse['Event'] == 'Link' || $mainresponse['Event'] == 'Bridge' && $mainresponse['Bridgestate'] == 'Link') { $uid = $mainresponse['Uniqueid1']; $uid2 = $mainresponse['Uniqueid2']; $callerNumber = $mainresponse['CallerID1']; $extensionCalled = $mainresponse['CallerID2']; // Ignore the case wheren CallerIDs are same! if ($callerNumber == $extensionCalled) { // case handled but we ignored. return false; } $callerType = ''; $status = "received"; $sourceChannel = $mainresponse['Channel1']; // Check if Popup has already been shown to user? // Due to (asterisk 1.4 bug: https://issues.asterisk.org/view.php?id=11757) // Popup display for Call made to queue is defered and will be handled below // So we need to pick up events with (flag = 0, asterisk 1.6) or (flag = -1, asterisk 1.4) // asterisk 1.4 - from_number is NULL, // TODO check the state of from_number in asterisk 1.6 $checkres = $adb->pquery("SELECT * FROM vtiger_asteriskincomingevents WHERE uid=? and (flag = 0 or flag = -1) and (from_number is NULL or from_number = 0)", array($uid)); if ($adb->num_rows($checkres) > 0) { if (empty($checkresrow['from_name'])) { $checkresrow['from_name'] = "Unknown"; } $checkresrow = $adb->fetch_array($checkres); $sql = "UPDATE vtiger_asteriskincomingevents SET from_number=?, to_number=?, timer=?, flag=? WHERE uid=?"; $adb->pquery($sql, array($callerNumber, $extensionCalled, time(), 0, $uid)); // Check if the user has checked Incoming Calls in My Preferences if (checkExtension($extensionCalled, $adb)) { $query = "INSERT INTO vtiger_asteriskincomingcalls (refuid, from_number, from_name, to_number, callertype, flag, timer) VALUES(?,?,?,?,?,?,?)"; $adb->pquery($query, array($uid, $callerNumber, $checkresrow['from_name'], $extensionCalled, '', 0, time())); } } // END } else { if ($mainresponse['Event'] == 'Newexten' && $mainresponse['AppData'] == "DIALSTATUS=CONGESTION" || $mainresponse['Event'] == 'Hangup') { $status = "missed"; $uid = $mainresponse['Uniqueid']; $extensionCalled = false; } } // TODO Need to detect the caller number using the Event Information $callerNumberInfo = $adb->pquery("SELECT from_number, callertype FROM vtiger_asteriskincomingevents WHERE uid=? AND from_number is not NULL LIMIT 1", array($uid)); if ($callerNumberInfo && $adb->num_rows($callerNumberInfo)) { $callerNumber = $adb->query_result($callerNumberInfo, 0, 'from_number'); $receiver_callerinfo = getCallerInfo($callerNumber); } if ($uid !== false) { // Create Record if not yet done and link to the event for further use $eventResult = $adb->pquery("SELECT * FROM vtiger_asteriskincomingevents WHERE uid = ? and pbxrecordid is NULL AND flag =0", array($uid)); if ($adb->num_rows($eventResult)) { $eventResultRow = $adb->fetch_array($eventResult); $callerNumber = $eventResultRow['from_number']; if ($extensionCalled === false) { $extensionCalled = $eventResultRow['to_number']; } // If we are not knowing the caller informatio (Asterisk 1.4, Event: Link not yet called) if ($callerNumber != 'Unknown' && $callerNumber != '0') { $pbxrecordid = addToCallHistory($extensionCalled, $callerNumber, $extensionCalled, "incoming-{$status}", $adb, $receiver_callerinfo); $adb->pquery("UPDATE vtiger_asteriskincomingevents SET pbxrecordid = ? WHERE uid = ?", array($pbxrecordid, $uid)); if (!empty($receiver_callerinfo['id'])) { $adb->pquery("UPDATE vtiger_asteriskincomingevents SET relcrmid = ? WHERE uid = ?", array($receiver_callerinfo['id'], $uid)); } } return false; } } return true; }
/** * This function displays the requirements for installing Chamilo. * * @param string $installType * @param boolean $badUpdatePath * @param boolean $badUpdatePath * @param string $updatePath The updatePath given (if given) * @param array $update_from_version_8 The different subversions from version 1.9 * * @author unknow * @author Patrick Cool <*****@*****.**>, Ghent University */ function display_requirements($installType, $badUpdatePath, $updatePath = '', $update_from_version_8 = array()) { global $_setting; echo '<div class="RequirementHeading"><h2>' . display_step_sequence() . get_lang('Requirements') . "</h2></div>"; echo '<div class="RequirementText">'; echo '<strong>' . get_lang('ReadThoroughly') . '</strong><br />'; echo get_lang('MoreDetails') . ' <a href="../../documentation/installation_guide.html" target="_blank">' . get_lang('ReadTheInstallationGuide') . '</a>.<br />' . "\n"; if ($installType == 'update') { echo get_lang('IfYouPlanToUpgradeFromOlderVersionYouMightWantToHaveAlookAtTheChangelog') . '<br />'; } echo '</div>'; // SERVER REQUIREMENTS echo '<div class="RequirementHeading"><h4>' . get_lang('ServerRequirements') . '</h4>'; $timezone = checkPhpSettingExists("date.timezone"); if (!$timezone) { echo "<div class='warning-message'>" . Display::return_icon('warning.png', get_lang('Warning'), '', ICON_SIZE_MEDIUM) . get_lang("DateTimezoneSettingNotSet") . "</div>"; } echo '<div class="RequirementText">' . get_lang('ServerRequirementsInfo') . '</div>'; echo '<div class="RequirementContent">'; echo '<table class="table"> <tr> <td class="requirements-item">' . get_lang('PHPVersion') . ' >= ' . REQUIRED_PHP_VERSION . '</td> <td class="requirements-value">'; if (phpversion() < REQUIRED_PHP_VERSION) { echo '<strong><font color="red">' . get_lang('PHPVersionError') . '</font></strong>'; } else { echo '<strong><font color="green">' . get_lang('PHPVersionOK') . ' ' . phpversion() . '</font></strong>'; } echo '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.session.php" target="_blank">Session</a> ' . get_lang('support') . '</td> <td class="requirements-value">' . checkExtension('session', get_lang('Yes'), get_lang('ExtensionSessionsNotAvailable')) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.mysql.php" target="_blank">MySQL</a> ' . get_lang('support') . '</td> <td class="requirements-value">' . checkExtension('mysql', get_lang('Yes'), get_lang('ExtensionMySQLNotAvailable')) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.zlib.php" target="_blank">Zlib</a> ' . get_lang('support') . '</td> <td class="requirements-value">' . checkExtension('zlib', get_lang('Yes'), get_lang('ExtensionZlibNotAvailable')) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.pcre.php" target="_blank">Perl-compatible regular expressions</a> ' . get_lang('support') . '</td> <td class="requirements-value">' . checkExtension('pcre', get_lang('Yes'), get_lang('ExtensionPCRENotAvailable')) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.xml.php" target="_blank">XML</a> ' . get_lang('support') . '</td> <td class="requirements-value">' . checkExtension('xml', get_lang('Yes'), get_lang('No')) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.intl.php" target="_blank">Internationalization</a> ' . get_lang('support') . '</td> <td class="requirements-value">' . checkExtension('intl', get_lang('Yes'), get_lang('No')) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.json.php" target="_blank">JSON</a> ' . get_lang('support') . '</td> <td class="requirements-value">' . checkExtension('json', get_lang('Yes'), get_lang('No')) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.image.php" target="_blank">GD</a> ' . get_lang('support') . '</td> <td class="requirements-value">' . checkExtension('gd', get_lang('Yes'), get_lang('ExtensionGDNotAvailable')) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.mbstring.php" target="_blank">Multibyte string</a> ' . get_lang('support') . ' (' . get_lang('Optional') . ')</td> <td class="requirements-value">' . checkExtension('mbstring', get_lang('Yes'), get_lang('ExtensionMBStringNotAvailable'), true) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.iconv.php" target="_blank">Iconv</a> ' . get_lang('support') . ' (' . get_lang('Optional') . ')</td> <td class="requirements-value">' . checkExtension('iconv', get_lang('Yes'), get_lang('No'), true) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.ldap.php" target="_blank">LDAP</a> ' . get_lang('support') . ' (' . get_lang('Optional') . ')</td> <td class="requirements-value">' . checkExtension('ldap', get_lang('Yes'), get_lang('ExtensionLDAPNotAvailable'), true) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://xapian.org/" target="_blank">Xapian</a> ' . get_lang('support') . ' (' . get_lang('Optional') . ')</td> <td class="requirements-value">' . checkExtension('xapian', get_lang('Yes'), get_lang('No'), true) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/en/book.curl.php" target="_blank">cURL</a> ' . get_lang('support') . ' (' . get_lang('Optional') . ')</td> <td class="requirements-value">' . checkExtension('curl', get_lang('Yes'), get_lang('No'), true) . '</td> </tr> </table>'; echo ' </div>'; echo '</div>'; // RECOMMENDED SETTINGS // Note: these are the settings for Joomla, does this also apply for Chamilo? // Note: also add upload_max_filesize here so that large uploads are possible echo '<div class="RequirementHeading"><h4>' . get_lang('RecommendedSettings') . '</h4>'; echo '<div class="RequirementText">' . get_lang('RecommendedSettingsInfo') . '</div>'; echo '<div class="RequirementContent">'; echo '<table class="table"> <tr> <th>' . get_lang('Setting') . '</th> <th>' . get_lang('Recommended') . '</th> <th>' . get_lang('Actual') . '</th> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/features.safe-mode.php">Safe Mode</a></td> <td class="requirements-recommended">' . Display::label('OFF', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('safe_mode', 'OFF') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/ref.errorfunc.php#ini.display-errors">Display Errors</a></td> <td class="requirements-recommended">' . Display::label('OFF', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('display_errors', 'OFF') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.file-uploads">File Uploads</a></td> <td class="requirements-recommended">' . Display::label('ON', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('file_uploads', 'ON') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-gpc">Magic Quotes GPC</a></td> <td class="requirements-recommended">' . Display::label('OFF', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('magic_quotes_gpc', 'OFF') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-runtime">Magic Quotes Runtime</a></td> <td class="requirements-recommended">' . Display::label('OFF', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('magic_quotes_runtime', 'OFF') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/security.globals.php">Register Globals</a></td> <td class="requirements-recommended">' . Display::label('OFF', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('register_globals', 'OFF') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/ref.session.php#ini.session.auto-start">Session auto start</a></td> <td class="requirements-recommended">' . Display::label('OFF', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('session.auto_start', 'OFF') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.short-open-tag">Short Open Tag</a></td> <td class="requirements-recommended">' . Display::label('OFF', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('short_open_tag', 'OFF') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-httponly">Cookie HTTP Only</a></td> <td class="requirements-recommended">' . Display::label('ON', 'success') . '</td> <td class="requirements-value">' . checkPhpSetting('session.cookie_httponly', 'ON') . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.upload-max-filesize">Maximum upload file size</a></td> <td class="requirements-recommended">' . Display::label('>= ' . REQUIRED_MIN_UPLOAD_MAX_FILESIZE . 'M', 'success') . '</td> <td class="requirements-value">' . compare_setting_values(ini_get('upload_max_filesize'), REQUIRED_MIN_UPLOAD_MAX_FILESIZE) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.post-max-size">Maximum post size</a></td> <td class="requirements-recommended">' . Display::label('>= ' . REQUIRED_MIN_POST_MAX_SIZE . 'M', 'success') . '</td> <td class="requirements-value">' . compare_setting_values(ini_get('post_max_size'), REQUIRED_MIN_POST_MAX_SIZE) . '</td> </tr> <tr> <td class="requirements-item"><a href="http://www.php.net/manual/en/ini.core.php#ini.memory-limit">Memory Limit</a></td> <td class="requirements-recommended">' . Display::label('>= ' . REQUIRED_MIN_MEMORY_LIMIT . 'M', 'success') . '</td> <td class="requirements-value">' . compare_setting_values(ini_get('memory_limit'), REQUIRED_MIN_MEMORY_LIMIT) . '</td> </tr> </table>'; echo ' </div>'; echo '</div>'; // DIRECTORY AND FILE PERMISSIONS echo '<div class="RequirementHeading"><h4>' . get_lang('DirectoryAndFilePermissions') . '</h4>'; echo '<div class="RequirementText">' . get_lang('DirectoryAndFilePermissionsInfo') . '</div>'; echo '<div class="RequirementContent">'; $course_attempt_name = '__XxTestxX__'; $course_dir = api_get_path(SYS_COURSE_PATH) . $course_attempt_name; //Just in case @unlink($course_dir . '/test.php'); @rmdir($course_dir); $perms_dir = array(0777, 0755, 0775, 0770, 0750, 0700); $perms_fil = array(0666, 0644, 0664, 0660, 0640, 0600); $course_test_was_created = false; $dir_perm_verified = 0777; foreach ($perms_dir as $perm) { $r = @mkdir($course_dir, $perm); if ($r === true) { $dir_perm_verified = $perm; $course_test_was_created = true; break; } } $fil_perm_verified = 0666; $file_course_test_was_created = false; if (is_dir($course_dir)) { foreach ($perms_fil as $perm) { if ($file_course_test_was_created == true) { break; } $r = @touch($course_dir . '/test.php', $perm); if ($r === true) { $fil_perm_verified = $perm; if (check_course_script_interpretation($course_dir, $course_attempt_name, 'test.php')) { $file_course_test_was_created = true; } } } } @unlink($course_dir . '/test.php'); @rmdir($course_dir); $_SESSION['permissions_for_new_directories'] = $_setting['permissions_for_new_directories'] = $dir_perm_verified; $_SESSION['permissions_for_new_files'] = $_setting['permissions_for_new_files'] = $fil_perm_verified; $dir_perm = Display::label('0' . decoct($dir_perm_verified), 'info'); $file_perm = Display::label('0' . decoct($fil_perm_verified), 'info'); $courseTestLabel = Display::label(get_lang('No'), 'important'); if ($course_test_was_created && $file_course_test_was_created) { $courseTestLabel = Display::label(get_lang('Yes'), 'success'); } if ($course_test_was_created && !$file_course_test_was_created) { $courseTestLabel = Display::label(sprintf(get_lang('InstallWarningCouldNotInterpretPHP'), api_get_path(WEB_COURSE_PATH) . $course_attempt_name . '/test.php'), 'warning'); } if (!$course_test_was_created && !$file_course_test_was_created) { $courseTestLabel = Display::label(get_lang('No'), 'important'); } $oldConf = ''; if (file_exists(api_get_path(SYS_CODE_PATH) . 'inc/conf/configuration.php')) { $oldConf = '<tr> <td class="requirements-item">' . api_get_path(SYS_CODE_PATH) . 'inc/conf</td> <td class="requirements-value">' . check_writable(api_get_path(SYS_CODE_PATH) . 'inc/conf') . '</td> </tr>'; } echo '<table class="table"> ' . $oldConf . ' <tr> <td class="requirements-item">' . api_get_path(SYS_APP_PATH) . '</td> <td class="requirements-value">' . check_writable(api_get_path(SYS_APP_PATH)) . '</td> </tr> <tr> <td class="requirements-item">' . api_get_path(SYS_CODE_PATH) . 'default_course_document/images/</td> <td class="requirements-value">' . check_writable(api_get_path(SYS_CODE_PATH) . 'default_course_document/images/') . '</td> </tr> <tr> <td class="requirements-item">' . api_get_path(SYS_CODE_PATH) . 'lang/</td> <td class="requirements-value">' . check_writable(api_get_path(SYS_CODE_PATH) . 'lang/', true) . ' <br />(' . get_lang('SuggestionOnlyToEnableSubLanguageFeature') . ')</td> </tr> <tr> <td class="requirements-item">' . api_get_path(SYS_PATH) . 'vendor/</td> <td class="requirements-value">' . checkReadable(api_get_path(SYS_PATH) . 'vendor') . '</td> </tr> <tr> <td class="requirements-item">' . api_get_path(SYS_PUBLIC_PATH) . '</td> <td class="requirements-value">' . check_writable(api_get_path(SYS_PUBLIC_PATH)) . '</td> </tr> <tr> <td class="requirements-item">' . get_lang('CourseTestWasCreated') . '</td> <td class="requirements-value">' . $courseTestLabel . ' </td> </tr> <tr> <td class="requirements-item">' . get_lang('PermissionsForNewDirs') . '</td> <td class="requirements-value">' . $dir_perm . ' </td> </tr> <tr> <td class="requirements-item">' . get_lang('PermissionsForNewFiles') . '</td> <td class="requirements-value">' . $file_perm . ' </td> </tr> '; echo ' </table>'; echo ' </div>'; echo '</div>'; if ($installType == 'update' && (empty($updatePath) || $badUpdatePath)) { if ($badUpdatePath) { ?> <div class="alert alert-warning"> <?php echo get_lang('Error'); ?> !<br /> Chamilo <?php echo implode('|', $update_from_version_8) . ' ' . get_lang('HasNotBeenFoundInThatDir'); ?> . </div> <?php } else { echo '<br />'; } ?> <div class="row"> <div class="col-md-12"> <p><?php echo get_lang('OldVersionRootPath'); ?> : <input type="text" name="updatePath" size="50" value="<?php echo $badUpdatePath && !empty($updatePath) ? htmlentities($updatePath) : api_get_path(SYS_SERVER_ROOT_PATH) . 'old_version/'; ?> " /> </p> <p> <button type="submit" class="btn btn-default" name="step1" value="<?php echo get_lang('Back'); ?> " > <i class="fa fa-backward"> <?php echo get_lang('Back'); ?> </i> </button> <input type="hidden" name="is_executable" id="is_executable" value="-" /> <button type="submit" class="btn btn-success" name="<?php echo isset($_POST['step2_update_6']) ? 'step2_update_6' : 'step2_update_8'; ?> " value="<?php echo get_lang('Next'); ?> >" > <i class="fa fa-forward"> </i> <?php echo get_lang('Next'); ?> </button> </p> </div> </div> <?php } else { $error = false; // First, attempt to set writing permissions if we don't have them yet $perm = api_get_permissions_for_new_directories(); $perm_file = api_get_permissions_for_new_files(); $notWritable = array(); $checked_writable = api_get_path(SYS_APP_PATH); if (!is_writable($checked_writable)) { $notWritable[] = $checked_writable; @chmod($checked_writable, $perm); } $checked_writable = api_get_path(SYS_PUBLIC_PATH); if (!is_writable($checked_writable)) { $notWritable[] = $checked_writable; @chmod($checked_writable, $perm); } $checked_writable = api_get_path(SYS_CODE_PATH) . 'default_course_document/images/'; if (!is_writable($checked_writable)) { $notWritable[] = $checked_writable; @chmod($checked_writable, $perm); } if ($course_test_was_created == false) { $error = true; } $checked_writable = api_get_path(CONFIGURATION_PATH) . 'configuration.php'; if (file_exists($checked_writable) && !is_writable($checked_writable)) { $notWritable[] = $checked_writable; @chmod($checked_writable, $perm_file); } // Second, if this fails, report an error //--> The user would have to adjust the permissions manually if (count($notWritable) > 0) { $error = true; echo '<div class="error-message">'; echo '<center><h3>' . get_lang('Warning') . '</h3></center>'; printf(get_lang('NoWritePermissionPleaseReadInstallGuide'), '</font> <a href="../../documentation/installation_guide.html" target="blank">', '</a> <font color="red">'); echo '</div>'; echo '<ul>'; foreach ($notWritable as $value) { echo '<li>' . $value . '</li>'; } echo '</ul>'; } elseif (file_exists(api_get_path(CONFIGURATION_PATH) . 'configuration.php')) { // Check wether a Chamilo configuration file already exists. echo '<div class="alert alert-warning"><h4><center>'; echo get_lang('WarningExistingLMSInstallationDetected'); echo '</center></h4></div>'; } // And now display the choice buttons (go back or install) ?> <p align="center" style="padding-top:15px"> <button type="submit" name="step1" class="btn btn-default" onclick="javascript: window.location='index.php'; return false;" value="<?php echo get_lang('Previous'); ?> " > <i class="fa fa-backward"> </i> <?php echo get_lang('Previous'); ?> </button> <button type="submit" name="step2_install" class="btn btn-success" value="<?php echo get_lang("NewInstallation"); ?> " <?php if ($error) { echo 'disabled="disabled"'; } ?> > <i class="fa fa-forward"> </i> <?php echo get_lang('NewInstallation'); ?> </button> <input type="hidden" name="is_executable" id="is_executable" value="-" /> <?php // Real code echo '<button type="submit" class="btn btn-default" name="step2_update_8" value="Upgrade from Chamilo 1.9.x"'; if ($error) { echo ' disabled="disabled"'; } echo ' ><i class="fa fa-forward"> </i> ' . get_lang('UpgradeFromLMS19x') . '</button>'; echo '</p>'; } }
/** * this function checks if there are any incoming calls for the current user * if any call is found, it just inserts the values into the vtiger_asteriskincomingcalls table * * @param $asterisk - the asterisk object * @param $adb - the peardatabase type object * @return incoming call information if successful * false if unsuccessful */ function handleIncomingCalls($asterisk, $adb, $version = "1.4") { $response = $asterisk->getAsteriskResponse(); if (empty($response)) { return false; } $callerNumber = "Unknown"; $callerName = "Unknown"; //event can be both newstate and newchannel :: this is an asterisk bug and can be found at //http://lists.digium.com/pipermail/asterisk-dev/2006-July/021565.html if ($version == "1.6") { $state = "ChannelStateDesc"; } else { $state = "State"; } if (($response['Event'] == 'Newstate' || $response['Event'] == 'Newchannel') && ($response[$state] == 'Ring' || $response[$state] == 'Ringing')) { //get the caller information if (!empty($response['CallerID'])) { $callerNumber = $response['CallerID']; } elseif (!empty($response['CallerIDNum'])) { $callerNumber = $response['CallerIDNum']; } if (!empty($response['CallerIDName'])) { $callerName = $response['CallerIDName']; } while (true) { $response = $asterisk->getAsteriskResponse(); if ($response['Event'] == 'Newexten' && (strstr($response['AppData'], "__DIALED_NUMBER") || strstr($response['AppData'], "EXTTOCALL"))) { $temp = array(); if (strstr($response['Channel'], $callerNumber)) { $temp = explode("/", $response['Channel']); $callerType = $temp[0]; } $temp = explode("=", $response['AppData']); $extension = $temp[1]; if (checkExtension($extension, $adb)) { //insert into database $sql = "insert into vtiger_asteriskincomingcalls values (?,?,?,?,?,?)"; $flag = 0; $timer = time(); $params = array($callerNumber, $callerName, $extension, $callerType, $flag, $timer); $adb->pquery($sql, $params); addToCallHistory($extension, $callerType . ":" . $callerNumber, $extension, "incoming", $adb); break; //break the while loop } } } } else { return false; } }
function fileupload() { global $modx, $_lang, $startpath, $filemanager_path, $uploadablefiles, $new_file_permissions; $msg = ''; if (!empty($_FILES['userfile']['tmp_name'])) { $userfile['tmp_name'] = $_FILES['userfile']['tmp_name']; $userfile['error'] = $_FILES['userfile']['error']; $name = $_FILES['userfile']['name']; if ($modx->config['clean_uploaded_filename'] == 1) { $nameparts = explode('.', $name); $nameparts = array_map(array($modx, 'stripAlias'), $nameparts, array('file_manager')); $name = implode('.', $nameparts); } $userfile['name'] = $name; $userfile['type'] = $_FILES['userfile']['type']; } // this seems to be an upload action. $path = $modx->config['site_url'] . substr($startpath, strlen($filemanager_path), strlen($startpath)); $path = rtrim($path, '/') . '/' . $userfile['name']; $msg .= $path; if ($userfile['error'] == 0) { $img = strpos($userfile['type'], 'image') !== false ? '<br /><img src="' . $path . '" height="75" />' : ''; $msg .= "<p>" . $_lang['files_file_type'] . $userfile['type'] . ", " . $modx->nicesize(filesize($userfile['tmp_name'])) . $img . '</p>'; } $userfilename = $userfile['tmp_name']; if (is_uploaded_file($userfilename)) { // file is uploaded file, process it! if (!checkExtension($userfile['name'])) { $msg .= '<p><span class="warning">' . $_lang['files_filetype_notok'] . '</span></p>'; } else { if (@move_uploaded_file($userfile['tmp_name'], $_POST['path'] . '/' . $userfile['name'])) { // Ryan: Repair broken permissions issue with file manager if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') { @chmod($_POST['path'] . "/" . $userfile['name'], $new_file_permissions); } // Ryan: End $msg .= '<p><span class="success">' . $_lang['files_upload_ok'] . '</span></p>'; // invoke OnFileManagerUpload event $modx->invokeEvent('OnFileManagerUpload', array('filepath' => $_POST['path'], 'filename' => $userfile['name'])); // Log the change logFileChange('upload', $_POST['path'] . '/' . $userfile['name']); } else { $msg .= '<p><span class="warning">' . $_lang['files_upload_copyfailed'] . '</span> ' . $_lang["files_upload_permissions_error"] . '</p>'; } } } else { $msg .= '<br /><span class="warning"><b>' . $_lang['files_upload_error'] . ':</b>'; switch ($userfile['error']) { case 0: //no error; possible file attack! $msg .= $_lang['files_upload_error0']; break; case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini $msg .= $_lang['files_upload_error1']; break; case 2: //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form $msg .= $_lang['files_upload_error2']; break; case 3: //uploaded file was only partially uploaded $msg .= $_lang['files_upload_error3']; break; case 4: //no file was uploaded $msg .= $_lang['files_upload_error4']; break; default: //a default error, just in case! :) $msg .= $_lang['files_upload_error5']; break; } $msg .= '</span><br />'; } return $msg; }
function doSBONUpload() { global $tablePrefix; $cap_sbonToVoting = getDbText("sbon_toVoting"); $allowedExtensions = array(".gif", ".jpg", ".jpeg"); $errMessages = array("Upload war erfolgreich!", "Die Dateigrösse überschreitet die Servereinstellungen!", "Die Dateigrösse überschreitet die Formulareinstellungen!", "Die Datei wurde nur teilweise geladen!", "Es wurde keine Datei geladen!", "Es sind nur folgende Dateitypen erlaubt: "); foreach ($allowedExtensions as $curExt) { $errMessages[5] .= "{$curExt}, "; } $errMessages[5] = substr($errMessages[5], 0, -2); echo <<<EOT <p> <img src="images/ico_pfeillinks.gif" width="13" height="13" border="0" alt="" align="absmiddle"> <a href="sbon-bewertung.php"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$cap_sbonToVoting}</font></a> </p> EOT; $newLocationDir = "images/sbon/"; $uploadFileExtension = checkExtension($_FILES['userfile']['name'], $allowedExtensions); if (!$uploadFileExtension) { $curError = 5; } else { $curError = $_FILES['userfile']['error']; } if ($curError == 0) { $msgColor = "#000000"; } else { $msgColor = "#FF0000"; } echo "<font size=\"3\" color=\"{$msgColor}\"><b>{$errMessages[$curError]}</b></font><br>\n"; $info .= "<br>"; $info .= "name=" . $_FILES['userfile']['name'] . "<br>"; $info .= "type=" . $_FILES['userfile']['type'] . "<br>"; $info .= "size=" . $_FILES['userfile']['size'] . "<br>"; $info .= "tmp_name=" . $_FILES['userfile']['tmp_name'] . "<br>"; $info .= "error=" . $_FILES['userfile']['error'] . "<br>\n"; if ($curError == 0) { mysql_query("INSERT INTO {$tablePrefix}sbonImage VALUES ('', '', NOW(), '', '')") or die("itemView.php;doSBONUpload(.): Database error (" . mysql_error() . ")"); $newSBONImageID = mysql_insert_id(); $newFilename = "upload{$newSBONImageID}{$uploadFileExtension}"; $newLocation = "{$newLocationDir}{$newFilename}"; $info .= "newLocation={$newLocation}<br>\n"; // this would also overwrite an existing file if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newLocation)) { $info .= "moving OK<br>"; chmod($newLocation, 0644); echo "<br><a href=\"sbon-bewertung.php?sbonID={$newSBONImageID}\"><img src=\"{$newLocation}\" border=\"0\"></a><br>\n"; echo "Bild gleich bewerten, einfach auf's Bild klicken!"; mysql_query("UPDATE {$tablePrefix}sbonImage SET url='{$newFilename}' WHERE sbon_id={$newSBONImageID}") or die("itemView.php;doSBONUpload(.): Database error (" . mysql_error() . ")"); } else { $info .= "moving NOTOK<br>"; mysql_query("REMOVE FROM {$tablePrefix}sbonImage WHERE sbon_id={$newSBONImageID}") or die("itemView.php;doSBONUpload(.): Database error (" . mysql_error() . ")"); } } // echo $info; }
function delete($setup) { //Get the image ID $id = htmlentities($setup['imageId']); //Check the file extension to make sure that it's valid checkExtension($id); //Get the directory to get the images from $dir = getDir($setup); //Make sure that it is actually a directory checkImageDirectoryExists($dir); //Check to make sure that the image actually exists if (imageExists($dir . '/' . $id)) { //Delete the file unlink($dir . '/' . $id); echo json_encode(['success' => true, 'message' => 'Image successfully deleted.']); exit; } else { echo json_encode(['success' => false, 'message' => 'That image could not be found.']); exit; } }
} if (!empty($time)) { echo "Photo already uploaded for that show"; exit; } if (!empty($_FILES["up_file"]) && $_FILES['up_file']['error'] == 0) { echo "found a file!"; //echo "dirname:".dirname(__FILE__); // exit(); //Check if the file is JPEG image and it's size is less than 500Kb $filename = basename($_FILES['up_file']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); // allow other extensions: png, gif, jpeg // if (($ext == "jpg") && ($_FILES["up_file"]["type"] == "image/jpeg") && // ($_FILES["up_file"]["size"] < 500000)) { if (checkExtension($ext) && checkFileSize()) { $fname = $sdate . "_" . $u . "." . $ext; $newname = dirname(__FILE__) . '/tmp/' . $fname; echo $newname; //Check if the file with the same name is already exists on the server if (!file_exists($newname)) { //Attempt to move the uploaded file to it's new place if (move_uploaded_file($_FILES['up_file']['tmp_name'], $newname)) { echo "File has been submitted!"; } else { echo "Error: A problem occurred during file upload!"; exit; } } else { echo "Error: Photo from user " . $u . " from the show on " . $sdate . " already exists"; exit;
function importFile() { $strInitialPosition = stripos($_SERVER["SERVER_SOFTWARE"], "Win32"); $serverOS = substr($_SERVER["SERVER_SOFTWARE"], $strInitialPosition, "5"); if ($serverOS == "Win32") { //Variaveis para Windows $pathMX = BVS_DIR . "\\cgi-bin\\mx"; $uploaddir = BVS_DIR . "\\temp\\secs-web\\importedFiles\\"; } else { //Variaveis para Linux $pathMX = BVS_DIR . "/cgi-bin/mx"; $uploaddir = BVS_DIR . "/temp/secs-web/importedFiles/"; } $uploadfile = $uploaddir . $_FILES['importFile']['name']; $extension = end(explode(".", $_FILES['importFile']['name'])); $filesize = $_FILES['importFile']['size']; try { checkExtension($extension); checkFilesize($filesize); } catch (Exception $error) { print $error->getMessage(); die; } if (move_uploaded_file($_FILES['importFile']['tmp_name'], $uploaddir . $_FILES['importFile']['name'])) { $importedFile = file($uploadfile); for ($i = 0; $i < count($importedFile); $i++) { $dataModel = new facicOperations(); $temporaryArray = explode('|', $importedFile[$i]); $array_content = array("database" => "FACIC", "centerCode" => $temporaryArray[0], "titleCode" => $temporaryArray[1], "codeNameMask" => $temporaryArray[2], "year" => $temporaryArray[3], "volume" => $temporaryArray[4], "issue" => $temporaryArray[5], "number" => $temporaryArray[6], "creationDate" => date('Ymd'), "changeDate" => date('Ymd'), "documentalistCreation" => $_SESSION["logged"], "documentalistChange" => $_SESSION["logged"]); print "Registro #" . $i . " incluido com sucesso<br/>"; $dataModel->createRecord($array_content); $dataModel->saveRecord("New"); } } else { //user_error($BVS_LANG["errorImport"],E_USER_ERROR); print "error: "; print_r($_FILES); } }
$email = $_POST['email']; //$image = $_POST['image']; $image = $_FILES['image']['tmp_name']; $result = mysqli_query($con, "SELECT * FROM user WHERE uUser='******'") or die("Problemas enla consulta: " . mysqli_error($con)); $total = mysqli_num_rows($result); if ($total == 0) { //valida que El usuario no exista $nuevodirectorio = "../img/pic/"; $archivo_subir_1 = $nuevodirectorio . $_FILES['image']['name']; //separamos los trozos del archivo, nombre extension $trozos = explode(".", $_FILES['image']['name']); //obtenemos la extension $extension = end($trozos); //Inicia inserccion de portada++++++++++++++++++++++++++++++++++++++++++++++++++ //si la extensión es una de las permitidas if (checkExtension($extension) === TRUE) { if (move_uploaded_file($image, $archivo_subir_1)) { $resultado = substr($archivo_subir_1, 3); //elimina el ../ de la ruta $query1 = "INSERT INTO user(uUser,uPassword,uName,uLastname,uTitle,uMail,uPhone,uAddress,uStatus,uImg,uHide) VALUES ('{$username}','{$password}','{$firstname}','{$lastname}','{$title}','{$phone}','{$address}','{$email}','1','{$resultado}','1')"; $result = mysqli_query($con, $query1); if (!$result) { echo 'La consulta SQL contiene errores.' . mysqli_error($con) . "\n"; } else { echo "DATOS INSERTADOS CORRECTAMENTE\n"; } } else { echo "error al subir archivo"; } } else { echo 'Incorrect file type, Try Again';