Re: Fatal error: Cannot redeclare
| From: | Micah Gersten | Date: | Tue, 05 Aug 2008 19:08:10 +0000 |
| Subject: | Re: Fatal error: Cannot redeclare | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-277746@lists.php.net to get a copy of this message | ||
What is around this line?
/global/WEB_DAT/documents/fme/institute/get/lehre/course/lib.php:25
Thank you,
Micah Gersten
onShore Networks
Internal Developer
http://www.onshore.com
Kai Kauer wrote:
> Am Dienstag, 5. August 2008 15:46:42 schrieb Daniel Brown:
>
>> On Tue, Aug 5, 2008 at 9:37 AM, Kai Kauer <kai.kauer@web.de> wrote:
>>
>>> Hi @all,
>>>
>>> I was just installing the Moodle-Version 1.9.2 at our university. It was
>>> installed without any problems. But during testing and preparing for use
>>> I got this error message:
>>>
>>> Fatal error: Cannot redeclare make_log_url() (previously declared
>>> in /global/WEB_DAT/documents/fme/institute/get/lehre/course/lib.php:25)
>>> in ./lib.php on line 54
>>>
>> This is usually a result of the same function include script being
>> included twice, and thus, the function being defined a second time.
>> Check ./lib.php on line 54 and see if it's including itself, or if -
>> for whatever reason - there's two entries in that file starting with
>> "function make_log_url(***)".
>>
>>
>>
>> *** Optional parameters may be enclosed within the parentheses.
>>
>>
>
> This function make the error message
>
>
>> function make_log_url($module, $url) {
>> switch ($module) {
>> case 'course':
>> case 'file':
>> case 'login':
>> case 'lib':
>> case 'admin':
>> case 'calendar':
>> case 'mnet course':
>> return "/course/$url";
>> break;
>> case 'user':
>> case 'blog':
>> return "/$module/$url";
>> break;
>> case 'upload':
>> return $url;
>> break;
>> case 'library':
>> case '':
>> return '/';
>> break;
>> case 'message':
>> return "/message/$url";
>> break;
>> default:
>> return "/mod/$module/$url";
>> break;
>> }
>> }
>>
>
> and is in the whole project just called one time in this function:
>
>
>> function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0,
>> $perpage=100, $url="", $modname="", $modid=0, $modaction="",
>> $groupid=0) {
>>
>> global $CFG;
>>
>> if (!$logs = build_logs_array($course, $user, $date, $order,
>> $page*$perpage, $perpage, $modname, $modid, $modaction, $groupid)) {
>> notify("No logs found!");
>> print_footer($course);
>> exit;
>> }
>>
>> $courses = array();
>>
>> if ($course->id == SITEID) {
>> $courses[0] = '';
>> if ($ccc = get_courses('all', 'c.id ASC',
>> 'c.id,c.shortname')) {
>> foreach ($ccc as $cc) {
>> $courses[$cc->id] = $cc->shortname;
>> }
>> }
>> } else {
>> $courses[$course->id] = $course->shortname;
>> }
>>
>> $totalcount = $logs['totalcount'];
>> $count=0;
>> $ldcache = array();
>> $tt = getdate(time());
>> $today = mktime (0, 0, 0, $tt["mon"], $tt["mday"],
>> $tt["year"]);
>>
>> $strftimedatetime = get_string("strftimedatetime");
>>
>> echo "<div class=\"info\">\n";
>> print_string("displayingrecords", "", $totalcount);
>> echo "</div>\n";
>>
>> print_paging_bar($totalcount, $page, $perpage,
>> "$url&perpage=$perpage&");
>>
>> echo '<table class="logtable genearlbox boxaligncenter"
>> summary="">'."\n"; // echo "<table
>> class=\"logtable\" cellpadding=\"3\"
>> cellspacing=\"0\" summary=\"\">\n"; echo
>> "<tr>";
>> if ($course->id == SITEID) {
>> echo "<th class=\"c0 header\"
>> scope=\"col\">".get_string('course')."</th>\n";
>> }
>> echo "<th class=\"c1 header\"
>> scope=\"col\">".get_string('time')."</th>\n";
>> echo "<th class=\"c2 header\"
>>
>> scope=\"col\">".get_string('ip_address')."</th>\n"; echo
>> "<th class=\"c3
>> header\"
>> scope=\"col\">".get_string('fullname')."</th>\n"; echo
>> "<th
>> class=\"c4 header\"
>> scope=\"col\">".get_string('action')."</th>\n"; echo
>> "<th class=\"c5 header\"
>> scope=\"col\">".get_string('info')."</th>\n"; echo
>> "</tr>\n";
>>
>> // Make sure that the logs array is an array, even it is empty, to
>> avoid warnings from the foreach. if (empty($logs['logs'])) {
>> $logs['logs'] = array();
>> }
>>
>> $row = 1;
>> foreach ($logs['logs'] as $log) {
>>
>> $row = ($row + 1) % 2;
>>
>> if (isset($ldcache[$log->module][$log->action])) {
>> $ld = $ldcache[$log->module][$log->action];
>> } else {
>> $ld = get_record('log_display', 'module', $log->module,
>> 'action', $log->action); $ldcache[$log->module][$log->action] = $ld;
>> }
>> if ($ld && is_numeric($log->info)) {
>> // ugly hack to make sure fullname is shown correctly
>> if (($ld->mtable == 'user') and ($ld->field ==
>> sql_concat('firstname', "' '" , 'lastname'))) {
>> $log->info =
>> fullname(get_record($ld->mtable, 'id', $log->info), true); } else {
>> $log->info = get_field($ld->mtable, $ld->field, 'id',
>> $log->info); }
>> }
>>
>> //Filter log->info
>> $log->info = format_string($log->info);
>>
>> // If $log->url has been trimmed short by the db size restriction
>> // code in add_to_log, keep a note so we don't add a link to a
>> broken url $tl=textlib_get_instance();
>> $brokenurl=($tl->strlen($log->url)==100 &&
>> $tl->substr($log->url,97)=='...');
>>
>> $log->url = strip_tags(urldecode($log->url)); // Some XSS
>> protection $log->info = strip_tags(urldecode($log->info)); // Some XSS
>> protection $log->url = s($log->url); /// XSS protection and XHTML
>> compatibility - should be in link_to_popup_window() instead!!
>>
>> echo '<tr class="r'.$row.'">';
>> if ($course->id == SITEID) {
>> echo "<td class=\"cell c0\">\n";
>> if (empty($log->course)) {
>> echo get_string('site') . "\n";
>> } else {
>> echo " <a
>> href=\"{$CFG->wwwroot}/course/view.php?id={$log->course}\">".
>> format_string($courses[$log->course])."</a>\n"; }
>> echo "</td>\n";
>> }
>> echo "<td class=\"cell c1\"
>> align=\"right\">".userdate($log->time,
>> '%a'). ' '.userdate($log->time,
>> $strftimedatetime)."</td>\n"; echo "<td
>> class=\"cell c2\">\n";
>>
>> link_to_popup_window("/iplookup/index.php?ip=$log->ip&user=$log->userid
>> ", 'iplookup',$log->ip, 440, 700); echo "</td>\n";
>> $fullname = fullname($log,
>> has_capability('moodle/site:viewfullnames',
>> get_context_instance(CONTEXT_COURSE, $course->id))); echo "<td class=\"cell
>> c3\">\n";
>> echo " <a
>>
>> href=\"$CFG->wwwroot/user/view.php?id={$log->userid}&course={$log->cour
>> se}\">$fullname</a>\n"; echo "</td>\n";
>> echo "<td class=\"cell c4\">\n";
>> $displayaction="$log->module $log->action";
>> if($brokenurl) {
>> echo $displayaction;
>> } else {
>> link_to_popup_window( make_log_url($log->module,$log->url),
>> 'fromloglive',$displayaction, 440, 700); }
>> echo "</td>\n";;
>> echo "<td class=\"cell
>> c5\">{$log->info}</td>\n";
>> echo "</tr>\n";
>> }
>> echo "</table>\n";
>>
>> print_paging_bar($totalcount, $page, $perpage,
>> "$url&perpage=$perpage&"); }
>>
>
>
> I can't find the mistake.
>
>
>