Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Befehl Ereg decreased

Frage Entwicklung PHP

Mitglied: itgugus

itgugus (Level 2) - Jetzt verbinden

08.12.2013, aktualisiert 09.12.2013, 1647 Aufrufe, 18 Kommentare, 1 Danke

Hallo,

ab 5.3 PHP ist der Befehl Ereg decreased Veraltet.
Weiss wer , wie die Zeile
01.
if (ereg('^GIFT', addslashes($gv_result['products_model']))) { 
neu aussehen muss. Komme bei der Beschreibung vom PHP nicht zurecht-

Gruss
Ralf
Mitglied: LordGurke
08.12.2013 um 15:36 Uhr
"deprecated" ist das Wort,. was du suchst

Was versuchst du denn zu matchen? Falls es dir darum geht, dass die Zeichenkette "GIFT" am Anfang des Strings steht, musst du nicht ändern - außer dass du ggf. delimiter an Anfang und Ende des Ausdrucks stellen musst.

Also als Beispiel:

01.
if ( preg_match('/^GIFT/', $gv_result['products_model']) )
Bei den PREG-Funktionen musst du die Eingabezeichenkette eigentlich nicht mehr escapen, deshalb habe ich das hier mal direkt weggelassen.
Bitte warten ..
Mitglied: itgugus
08.12.2013 um 15:49 Uhr
Hoi,

danke. Damit schein es zu gehen. Habe nur nun wo anderst ein Fehler Muss schauen.

Gruss
Ralf
Bitte warten ..
Mitglied: itgugus
08.12.2013, aktualisiert 09.12.2013
Weisst Du zufällig wie die Zeile noch in PHP 5.3 aussehen muss ? Dann würde bei mir wieder alles gehen
01.
 if ($this->include_tax == 'false') $order_total=$order_total-$order->info['tax']; 
02.
if ($this->include_shipping == 'false') $order_total=$order_total-$order->info['shipping_cost']; 
03.
return $order_total;
Bitte warten ..
Mitglied: LordGurke
08.12.2013 um 16:04 Uhr
An der Syntax sollte sich eigentlich nichts geändert haben....?
Was funktioniert denn nicht?

Schalte ggf. mal brachiale Fehlermeldungen ein, a.k.a.
error_reporting(E_ALL);
am Beginn des Scripts.

Vielleicht werden irgendwo irgendwelche Variablen nicht richtig gesetzt, weil auf register_globals zurückgegriffen wird?
Bitte warten ..
Mitglied: itgugus
08.12.2013 um 16:43 Uhr
Da bringt er nur die gleiche Meldung.

Gruss
Rlaf
Bitte warten ..
Mitglied: LordGurke
08.12.2013 um 16:45 Uhr
Könntest du die Meldung einmal hier posten? So ganz ohne ist halt stochern im Nebel
Bitte warten ..
Mitglied: itgugus
08.12.2013 um 16:47 Uhr
Hallo,

ok klar. War gar nicht gepostet ;)
Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) in C:\xampp\htdocs\includes\modules\order_total\ot_modul_spesen.php on line 111

Gruss
Ralf
Bitte warten ..
Mitglied: LordGurke
08.12.2013 um 16:54 Uhr
Welches von den beiden IF ist denn in Zeile 111?
Bei solchen Fehlermeldungen liegt der Fehler normalerweise eine Zeile über dem, was angeblich falsch ist...
Bitte warten ..
Mitglied: itgugus
08.12.2013, aktualisiert 09.12.2013
111 ist das hier :

01.
  if ($this->include_tax == 'false') $order_total=$order_total-$order->info['tax'];
obendran steht noc eine }

Gruss
Ralf
Bitte warten ..
Mitglied: LordGurke
08.12.2013 um 16:59 Uhr
Kannst du die letzten 5 Codezeilen über der Zeile 111 bitte einmal posten?
Irgendwas lässt PHP glauben du willst nicht "IF" sondern "function ...." schreiben - das dürfte bedeuten, dass die geschweifte Klammer an der falschen Stelle oder überzählig ist und du damit versehentlich die aktuelle "function"-Definition beendest.
Bitte warten ..
Mitglied: itgugus
08.12.2013, aktualisiert 09.12.2013
Hoi,

habe mal paar Zeilen mehr, die unterste ist 111

01.
 for ($i=0; $i<sizeof($products); $i++) { 
02.
        $t_prid = tep_get_prid($products[$i]['id']); 
03.
        $gv_query = tep_db_query("select products_price, products_tax_class_id, products_model from " . TABLE_PRODUCTS . " where products_id = '" . $t_prid . "'"); 
04.
        $gv_result = tep_db_fetch_array($gv_query); 
05.
        if ( preg_match('/^GIFT/', $gv_result['products_model']) ) 
06.
        $qty = $cart->get_quantity($t_prid); 
07.
          $products_tax = tep_get_tax_rate($gv_result['products_tax_class_id']); 
08.
          if ($this->include_tax =='false') { 
09.
            $gv_amount = $gv_result['products_price'] * $qty; 
10.
          } else { 
11.
            $gv_amount = ($gv_result['products_price'] + tep_calculate_tax($gv_result['products_price'],$products_tax)) * $qty; 
12.
13.
          $order_total=$order_total - $gv_amount; 
14.
15.
      if ($this->include_tax == 'false') $order_total=$order_total-$order->info['tax'];
Gruss
Ralf
Bitte warten ..
Mitglied: LordGurke
08.12.2013 um 17:10 Uhr
Hm....
ich kann da jetzt keinen echten Fehler oder überzählige Klammern sehen
Aber dieser Fehler deutet definitiv darauf hin, dass da irgendwo eine geschweifte Klammer steht, wo keine hingehört.

Sind diese Anweisungen innerhalb einer "function" und diese innerhalb einer Klasse?
Bitte warten ..
Mitglied: itgugus
08.12.2013, aktualisiert 09.12.2013
ICh weiss nicht. Ist einfach mein Webshop der nicht mehr lauft, weil PHP nun aktueller ist.

das ist die gesamte Datei
01.
*/ 
02.
    class ot_modul_spesen { 
03.
   var $title, $output; 
04.
     
05.
    function ot_modul_spesen() { 
06.
      global $payment; 
07.
       
08.
      $this->code = 'ot_modul_spesen'; 
09.
      $this->title = MODULE_MODUL_SPESEN_TITLE; 
10.
      $this->description = MODULE_MODUL_SPESEN_DESCRIPTION; 
11.
      // bol ct: dynamic title/description of fee 
12.
      if (isset($payment)) { 
13.
        $table = preg_split("/[:,]/" , MODULE_MODUL_SPESEN_TYPE_DESCRIPTION); 
14.
        for ($i = 0; $i < count($table); $i+=2) { 
15.
          if ($payment == $table[$i]) { 
16.
            $this->title = $table[$i+1]; 
17.
            $this->description = $table[$i+1]; 
18.
19.
20.
21.
      // eol ct: dynamic title/description of fee 
22.
      $this->enabled = MODULE_MODUL_SPESEN_STATUS; 
23.
      $this->sort_order = MODULE_MODUL_SPESEN_SORT_ORDER; 
24.
      $this->type = MODULE_MODUL_SPESEN_TYPE; 
25.
      $this->tax_class = MODULE_MODUL_SPESEN_TAX_CLASS; 
26.
      $this->output = array(); 
27.
28.
 
29.
    function process() { 
30.
      global $order, $ot_subtotal, $currencies; 
31.
       
32.
      $od_amount = $this->calculate_charge($this->get_order_total()); 
33.
      if ($od_amount != 0) { 
34.
        $this->deduction = $od_amount; 
35.
        $this->output[] = array('title' => $this->title . ':', 
36.
                                'text' => $currencies->format($od_amount), 
37.
                                'value' => $od_amount); 
38.
	      $order->info['total'] = $order->info['total'] + $od_amount; 
39.
        if ($this->sort_order < $ot_subtotal->sort_order) { 
40.
          $order->info['subtotal'] = $order->info['subtotal'] - $od_amount; 
41.
42.
43.
44.
 
45.
    function calculate_charge($amount) { 
46.
      global $order, $customer_id, $payment; 
47.
      $od_amount=0; 
48.
      $table = preg_split("/[:,]/" , MODULE_MODUL_SPESEN_TYPE); 
49.
      for ($i = 0; $i < count($table); $i+=2) { 
50.
        if ($payment == $table[$i]) { 
51.
          $od_am=$table[$i+1]; 
52.
           
53.
          // use either a fixed amount or percentage of total incl. shipping 
54.
          if (substr($od_am,0,1) == '%') { 
55.
            $od_am=substr($od_am, 1); 
56.
            $od_am=round($amount/100*$od_am,1); // choose the decimal position for rounding 
57.
58.
           
59.
          if (MODULE_MODUL_SPESEN_TAX_CLASS > 0) { 
60.
            $tod_rate = tep_get_tax_rate(MODULE_MODUL_SPESEN_TAX_CLASS); 
61.
            $tod_description = tep_get_tax_description(MODULE_MODUL_SPESEN_TAX_CLASS, $order->delivery['country']['id'], $order->delivery['zone_id']); 
62.
            $tod_amount =  tep_calculate_tax($od_am, $tod_rate); 
63.
            $order->info['tax'] += $tod_amount; 
64.
            $order->info['tax_groups'][$tod_description] += tep_calculate_tax($table[$i+1], $tod_rate); 
65.
66.
           
67.
          if (DISPLAY_PRICE_WITH_TAX) {  
68.
            $od_amount = $od_am + $tod_amount; 
69.
          } else {        
70.
            $od_amount = $od_am; 
71.
            $order->info['total'] += $tod_amount; 
72.
73.
74.
75.
      return $od_amount; 
76.
77.
 
78.
    function get_order_total() { 
79.
      global  $order, $cart; 
80.
      $order_total = $order->info['total']; 
81.
      // Check if gift voucher is in cart and adjust total 
82.
      $products = $cart->get_products(); 
83.
      for ($i=0; $i<sizeof($products); $i++) { 
84.
        $t_prid = tep_get_prid($products[$i]['id']); 
85.
        $gv_query = tep_db_query("select products_price, products_tax_class_id, products_model from " . TABLE_PRODUCTS . " where products_id = '" . $t_prid . "'"); 
86.
        $gv_result = tep_db_fetch_array($gv_query); 
87.
        if ( preg_match('/^GIFT/', $gv_result['products_model']) ) 
88.
        $qty = $cart->get_quantity($t_prid); 
89.
          $products_tax = tep_get_tax_rate($gv_result['products_tax_class_id']); 
90.
          if ($this->include_tax =='false') { 
91.
            $gv_amount = $gv_result['products_price'] * $qty; 
92.
          } else { 
93.
            $gv_amount = ($gv_result['products_price'] + tep_calculate_tax($gv_result['products_price'],$products_tax)) * $qty; 
94.
95.
          $order_total=$order_total - $gv_amount; 
96.
97.
      if ($this->include_tax == 'false') $order_total=$order_total-$order->info['tax']; 
98.
      if ($this->include_shipping == 'false') $order_total=$order_total-$order->info['shipping_cost']; 
99.
      return $order_total; 
100.
101.
 
102.
    function check() { 
103.
      if (!isset($this->check)) { 
104.
        $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_MODUL_SPESEN_STATUS'"); 
105.
        $this->check = tep_db_num_rows($check_query); 
106.
107.
       
108.
      return $this->check; 
109.
110.
 
111.
    function keys() { 
112.
      return array('MODULE_MODUL_SPESEN_STATUS', 'MODULE_MODUL_SPESEN_SORT_ORDER', 'MODULE_MODUL_SPESEN_TYPE', 'MODULE_MODUL_SPESEN_TYPE_DESCRIPTION', 'MODULE_MODUL_SPESEN_TAX_CLASS'); 
113.
114.
 
115.
    function install() { 
116.
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Zeige Modul-Spesen', 'MODULE_MODUL_SPESEN_STATUS', 'true', 'Möchten Sie die Modul-Spesen anzeigen?', '6', '1','tep_cfg_select_option(array(\'true\', \'false\'), ', now())"); 
117.
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sortierung', 'MODULE_MODUL_SPESEN_SORT_ORDER', '79', 'Sortierreihenfolge.', '6', '2', now())"); 
118.
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Zahlungsweisen', 'MODULE_MODUL_SPESEN_TYPE', 'nachnahme:15,rechnung:%3', 'Spezifische Zahlungsweisen welche belastet werden.', '6', '2', now())"); 
119.
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Zahlungsweisen Beschreibung', 'MODULE_MODUL_SPESEN_TYPE_DESCRIPTION', 'nachnahme:Nachnahme-Gebühren,rechnung:3% Rechnungs-Spesen', 'Spezifische Beschreibung zu jeder Zahlungsweise.', '6', '3', now())"); 
120.
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Steuer Klasse', 'MODULE_MODUL_SPESEN_TAX_CLASS', '0', 'Folgende Steuer-Klasse mit Modul-Spesen verwenden.', '6', '6', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())"); 
121.
122.
 
123.
    function remove() { 
124.
      $keys = ''; 
125.
      $keys_array = $this->keys(); 
126.
      for ($i=0; $i<sizeof($keys_array); $i++) { 
127.
        $keys .= "'" . $keys_array[$i] . "',"; 
128.
129.
      $keys = substr($keys, 0, -1); 
130.
 
131.
      tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in (" . $keys . ")"); 
132.
133.
  }   
?>
Bitte warten ..
Mitglied: LordGurke
08.12.2013 um 17:22 Uhr
Bei mir unter PHP 5.3.3 läuft die Datei ohne Probleme - und da das ein Parse-Error ist, müsste der sofort auftreten wenn man versucht diese Datei auszuführen - unabhängig davon welche Werte man welchen Methoden übergibt.
Kannst du sicherstellen, dass die Datei die den Fehler wirft auch wirklich den selben Inhalt hat, den sie haben sollte?
Evtl. ist da irgendeine Synchronisation (z.B. per FTP) fehlgeschlagen und die Datei ist beschädigt bzw. unvollständig übertragen worden.
Bitte warten ..
Mitglied: itgugus
08.12.2013 um 17:28 Uhr
Hallo,

die Datei liegt noch lokal auf meinem PC. Ich baue meinen alten Shop über Xamp local neu auf.

Gruss
Ralf
Bitte warten ..
Mitglied: itgugus
08.12.2013 um 17:31 Uhr
ich habe mal die Datei neu abgespeichert. Nun geht nur eine andere Dati mit Fehler auf

Fatal error: Call to undefined function tep_remove_order() in C:\xampp\htdocs\includes\modules\payment\bitpay.php on line 119
Da steht
tep_remove_order($insert_id, $restock = true);

Gruss
Ralf
Bitte warten ..
Mitglied: LordGurke
08.12.2013 um 17:34 Uhr
Das riecht doch sehr danach als wäre das mehreren Dateien wiederfahren...
Vermutlich sind mehrere Dateien nicht korrekt auf dem Server gelandet, synchronisiere am Besten mal *alle* Dateien neu.
Bitte warten ..
Mitglied: itgugus
12.12.2013 um 16:13 Uhr
Hallo,

das Problem ist in Luft aufgegangen. Testet man das im Xampp geht es nicht. aBer Online JA

Danlke und Gruss
Ralf
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (10)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...