Elxis CMS Forum

Ελληνικό Forum => Εγκατάσταση => Topic started by: fivar on January 16, 2007, 13:04:03

Title: fatal error
Post by: fivar on January 16, 2007, 13:04:03
Γεια σας και συγχαρητήρια για την καλή δουλειά.

Εγκατέστησα το Elxis τοπικά όπου δεν είχα κανένα πρόβλημα (με βοήθησε πάρα πολύ το Forum).
Αποφάσισα λοιπόν να το δοκιμάσω σε on line server.
Ανέβασα το Elxis στον server αλλά όταν άνοιξα το site μου έβγαλε το παρακάτω:

Fatal error: Call to undefined function: array_change_key_case() in /apache/users/i/sitename/includes/Core/security.php on line 24

Η έκδοση php είναι 4.4.0 και MySQL client version: 4.1.14
Αν μπορεί κάποιον να βοηθήσει
Title: Re: fatal error
Post by: datahell on January 16, 2007, 17:53:35
Φαίνεται να έχεις έκδοση της php μικρότερη από 4.2 και όχι 4.4 που λες γιατί η συγκεκριμένη function της php προστέθηκε στην έκδοση 4.2. Το Elxis απαιτεί τουλάχιστον 4.3.
Title: Re: fatal error
Post by: fivar on January 16, 2007, 20:25:15
ευχαριστώ για την γρήγορη ανταπόκριση.

σου παραθέτω ομως το mail της εταιρείας που φιλοξενεί το site

"Αξιότιμε κύριε

Σχετικά με το mail που μας θα θέλαμε να σας ενημερώσουμε πως η έκδοση της php που υπάρχει στα συστήματά μας είναι η 4.4.0, δεν υπάρχει ακόμα κάποια ενημέρωση ώστε να γίνει κάποιο update σε νεότερη από αυτήν.

Με εκτίμηση για την Hellas On Line"

μάλλον με κοροϊδεύουν

Title: Re: fatal error
Post by: datahell on January 16, 2007, 20:55:46
Ακόμα και να έχεις μικρότερη της έκδοσης 4.3 το πρόβλημα λύνεται.

Κατα αρχάς για να δεις την ακριβή έκδοση της php σου άνοιξε στο notepad ένα νέο αρχείο (κενό) και γράψε μέσα:

Code: (php) [Select]
<?php 

echo phpinfo();

?>

αποθήκευσέ το ως test.php
ανεβασέ το στο site σου και τρέξτο με το browser πηγαίνοντας στη διαδρομή του.
πχ: http://www.mysite.com/test.php

Θα σου τυπώσει μία σελίδα με αναλυτικές πληροφορίες για την php σου και την έκδοσή της.

Αν αντί του phpinfo() γράψεις phpversion() θα σου τυπώσει μόνο την ακριβής έκδοση της php

πχ:
Code: (php) [Select]
<?php 

echo phpversion();

?>

Φυσικά αυτές τις πληροφορίες μπορείς και να τις δεις και μέσα από τη διαχείριση του Elxis αν μπορέσεις να μπεις.

Τώρα, αν η έκδοση της php είναι μικρότερη της 4.2 και δεν σου κάνουν αναβάθμιση για να υπερκαλύψεις το πρόβλημα θα πρέπει να προσθέσεις στο αρχείο includes/compat42x.php ή σε κάποιο άλλο που γίνεται πάντα Include μία ισοδύναμη συνάρτηση με αυτή που λείπει ώστε να καλύψεις την έλλειψη.

Σου έχω έτοιμη αυτή τη συνάρτηση και τον προγενέστερο έλεγχο που πρέπει να προηγείται:

Code: (php) [Select]
if (!function_exists( 'array_change_key_case' )) {
if (!defined('CASE_LOWER')) { define('CASE_LOWER', 0); }
if (!defined('CASE_UPPER')) { define('CASE_UPPER', 1); }
function array_change_key_case( $input, $case=CASE_LOWER ) {
    if (!is_array( $input )) { return false; }
$array = array();
foreach ($input as $k=>$v) {
if ($case) {
    $array[strtoupper( $k )] = $v;
} else { $array[strtolower( $k )] = $v; }
}
return $array;
}
}