Avatar billede martin100 Nybegynder
11. september 2009 - 10:26 Der er 2 kommentarer

Oscommerce fejl!! HJÆLPPPPP :D

Hejsa,

jeg har installeret den nyeste version af OsCommerce på min lokale server med tilhørende dansk language.

Der er lidt fejl - desværre

1. Deprecated: Function eregi() is deprecated in C:\xampp\xampp\htdocs\oscommerce\catalog\includes\classes\language.php on line 87

jeg har læst mig lidt frem til at der er noget der er ændret noget i PHP 5.3, men jeg kan ikke ændre koden selv i linie 87. (kan ikke finde hoved og hale i det)

http://blogs.sun.com/oswald/entry/php_5_3_and_oscommerce
http://devthought.com/tumble/2009/06/fix-ereg-is-deprecated-errors-in-ph...

2. Warning: I am able to write to the configuration file: C:/xampp/xampp/htdocs/oscommerce/catalog/includes/configure.php. This is a potential security risk - please set the right user permissions on this file.

Hvad gør jeg med den fejl?

3. Når jeg ligger en vare i indkøbskurven kommer der denne fejl:

Deprecated: Function ereg() is deprecated in C:\xampp\xampp\htdocs\oscommerce\catalog\includes\functions\general.php on line 1094

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\xampp\htdocs\oscommerce\catalog\includes\functions\general.php:1094) in C:\xampp\xampp\htdocs\oscommerce\catalog\includes\functions\general.php on line 33

hvad gør jeg ved denne fejl?

Tusind tak for hjælpen
Avatar billede repox Seniormester
11. september 2009 - 11:55 #1
1)
Du må have en php.ini et sted du kan rette i. Tilret din error_reporting til:
[code]
error_reporting = E_ALL & ~E_DEPRECATED
[/code]

2)
Det må du ignorere. Det er fordi osCommerce har fundet ud af den kan skrive til din konfigurationsfil, men på windows kan man vist ikke undgå at det er muligt

3)
Se 1).
Avatar billede andreas13_fam Nybegynder
12. september 2009 - 12:51 #2
2) Jeg har ikke forstand på oscommerce men jeg tror jeg har fundet en løsning.

2a: find fillen \oscommerce\includes\modules\services\debug.php
2b: find

      if ((SERVICE_DEBUG_CHECK_CONFIGURATION == '1') && file_exists(dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php') && is_writeable(dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php')) {
        $osC_MessageStack->add('debug', sprintf($osC_Language->get('warning_config_file_writeable'), dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php') . ' [' . __CLASS__ . ']', 'warning');
      }

2c: erstat med

      if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN' && (SERVICE_DEBUG_CHECK_CONFIGURATION == '1') && file_exists(dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php') && is_writeable(dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php')) {
        $osC_MessageStack->add('debug', sprintf($osC_Language->get('warning_config_file_writeable'), dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php') . ' [' . __CLASS__ . ']', 'warning');
      }


1 og 3) ereg funktionerne "bør" ikke bruges i php 5.3.0
Men der er en tilsvarende mængde funktioner nemlig preg
Man kan ikke direkte erstatte ereg med preg. Jeg vil forslå at du gør følgende
1a: Download notepad++, installer det, kør det.
1b: tryk "søg" -> "søg i filer" -> "Find in files"
1c: skriv "ereg" i "søg efter"
1d: skriv "*.php" i "Filter"
1e: skriv " C:\xampp\xampp\htdocs\oscommerce\" i "Bibliotek"
1f: tryk "Søg i filer" og venter...
1g: start for en ende af og dobbeltklik på den første (ikke det grønne) .
1h: filen skulle nu blive åbnet
1i: erstat funktion navnet

ereg( bliver til: preg_match(
ereg_replace( bliver til: preg_replace(
eregi( bliver til preg_match(
  noter dog at der stod eregi, den information skal bruges senere

1j: erstat den første parameter

1a: tjek om der står # nogen steder
1b: gør der det så erstat # med \#
2a: skriv # inden for de 2 gåseøjne
2b: sådan at fx:
ereg("\"(.*)\"",$str,$regs); bliver til preg_match("#\"(.*)\"#",$str,$regs);
ereg_replace(",\n$", '', $schema); bliver til preg_replace("#,\n$#", '', $schema);

Du har tidligere noteret om der stod eregi gør der det skal der placeres et i efter det sidste # fx:
eregi('^SELECT', $this->sql_query) bliver til preg_match('#^SELECT#i', $this->sql_query)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester