Archive

Category Archives for "PHP"

xampp, phpStorm und xDebug

Einfacher geht es fast nicht: die Einrichtung von xDebug in phpStorm ist schnell gemacht:

In php.ini xdebug einstellen

[XDebug] zend_extension = „\xampp\php\ext\php_xdebug.dll“
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = „\xampp\tmp“
xdebug.profiler_output_name = „cachegrind.out.%t-%s“
xdebug.remote_enable = 1
xdebug.remote_handler = „dbgp“
xdebug.idekey = jphp
xdebug.remote_port=9000
xdebug.remote_host = „localhost“
xdebug.trace_output_dir = „\xampp\tmp“

Listener in phpStorm aktivieren:

listener

 

Im Browser xdebug aufrufen, z.B. mit ?XDEBUG_SESSION_START=session_name

oder einer Erweiterung wie

Chrome xdebug helper

Firefox easy xdebug

phpStorm erkennt den Aufruf und fragt, ob er die Verbindung annehmen soll:

Accept klicken und mit debuggen starten!

Original-Beitrag: zero-configuration-debugging-with-xdebug-and-phpstorm-2-0

Billsafe, Afterbuy und die Order-ID

Billsafe wird bei vielen Shops zur Abwicklung von Kauf auf Rechnung eingesetzt. Wenn Bestellungen zusätzlich an Afterbuy übertragen werden, findet Afterbuy allerdings die Zahlungsdaten von Billsafe nicht (Zahlungsziel, BTN und Billsafe-Bankverbindung).Der Grund dafür ist, dass der Shop an Billsafe die Warenkorb-ID sendet, nicht die Bestell-ID (Order-ID). An Afterbuy wird allerdings nur die Order-ID übertragen. Somit kann Afterbuy unter dieser Order-ID keine Bestellung in Billsafe finden.

Durch eine minimale Änderung kann man an Billsafe ebenfalls die Order-ID übertragen.

In der Datei:

includes\modules\payment\pi_billsafe.php Zeile 252

die Zeile
‚order_number‘            => $_SESSION[‚cart‘]->cartID,

ersetzen durch

‚order_number‘            => $_SESSION[‚tmp_oID‘],

und schon sollten es mit der Ausgabe von „BillsafeHinweis“ und den Bankdaten in der Rechnung funktionieren.

Fehler im Kontaktformular nach Gambio Update 1.0.11?

Bei unserem Shop trat nach dem Einspielen des Updates der seltsame Effekt auf, dass wir bei einer Kundenanfrage durch unser Kontaktformular selbst als Absender eingetragen waren. Nach einem Blick in das Changelog des letzten Gambio-Updates fiel mir folgende Änderung auf (Änderung rot markiert):

alte Datei shop_content.php Zeile 90:

xtc_php_mail($_POST[‚email‘], $_POST[’name‘], CONTACT_US_EMAIL_ADDRESS, CONTACT_US_NAME, CONTACT_US_FORWARDING_STRING, $_POST[‚email‘], $_POST[’name‘], “, “, CONTACT_US_EMAIL_SUBJECT, nl2br($_POST[‚message_body‘]), $_POST[‚message_body‘]);

neue Datei shop_content.php Zeile 90-91:

// BOF GM_MOD:
xtc_php_mail(CONTACT_US_EMAIL_ADDRESS, CONTACT_US_NAME, CONTACT_US_EMAIL_ADDRESS, CONTACT_US_NAME, CONTACT_US_FORWARDING_STRING, $_POST[‚email‘], $_POST[’name‘], “, “, CONTACT_US_EMAIL_SUBJECT, nl2br($_POST[‚message_body‘]), $_POST[‚message_body‘]);

Nach dem Update wird der Shopbetreiber als Absender der Anfrage eingetragen, d.h. Absender und Empfänger der E-Mail ist der Shopbetreiber selbst. Nach dem Zurücksetzen auf die alte Dateiversion funktionierte das Kontaktformular wie vorher.

xtc_php_mail($_POST[‚email‘], $_POST[’name‘], CONTACT_US_EMAIL_ADDRESS, CONTACT_US_NAME, CONTACT_US_FORWARDING_STRING, $_POST[‚email‘], $_POST[’name‘], “, “, CONTACT_US_EMAIL_SUBJECT, nl2br($_POST[‚message_body‘]), $_POST[‚message_body‘]);

xdebug auch in Zend-Studio

ZendStudio bietet nur den eigenen Debugger voreingestellt. Allerdings kann xdebug mit einer kleinen Modifikation ebenfalls genutzt werden:

Im Unterverzeichnis
\Zend\Zend Studio – 7.0.1\plugins\com.zend.php_7.0.0.v20090831-1730

öffnen wir die Datei

plugin_customization

Suchen nach

org.eclipse.ui.workbench/UIActivities.com.zend.php.debug.ui.XDebugActivity=false

ersetzen durch

org.eclipse.ui.workbench/UIActivities.com.zend.php.debug.ui.XDebugActivity=true

Danach wird xdebug ebenfalls in der Debug-Konsole angezeigt.

XAMPP 1.7.2 und xdebug

Seit Xampp 1.72 ist xdebug in einer sofort lauffähigen Version enthalten. Einfach in der php.ini die Zeile

;zend_extension = „C:\xampp\php\ext\php_xdebug.dll“

ändern in

zend_extension = „C:\xampp\php\ext\php_xdebug.dll“

und schon sollte xdebug zur Verfügung stehen.

2

Anleitung für XAMPP, Eclipse PDT und xDebug unter Windows

Von xdebug.org die aktuelle Version herunterladen (Achtung: auf die richtige Version für das verwendete PHP achten!), in das Verzeichnis php\ext\ der xampp-Installation speichern (z.B. C:\xampp\php\ext\)

Unter Eclipse unter „Preferences => PHP => DEBUG“ die Einstellungen prüfen (Port und Server, müssen mit der PHP.INI übereinstimmen, s.u.)

Ich hab dir mal ne kurze php.ini für xdebug zusammengestellt.
Funktioniert mit Eclipse PDT problemlos:

Die vorhandene extension deaktivieren
;extension=php_xdebug-2.0.3-5.2.5.dll

Genauso sämtliche zend_ts_extensions.
;zend_extension_ts = „C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll“
;zend_extension_manager.optimizer_ts = „C:\xampp\php\zendOptimizer\lib\Optimizer“

[XDebug] ;; Only Zend OR (!) XDebug
zend_extension_ts=“C:\xampp\php\ext\php_xdebug-2.0.3-5.2.5.dll“
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.profiler_enable=0
xdebug.profiler_output_dir=“C:\xampp\tmp“