PHP: In PHP den Referer Forwarded Client / IP anzeigen, auch hinter einem Load-Balancer
geht über die Server-Variable „HTTP_X_FORWARDED_FOR“ wie folgt:
echo $_SERVER["HTTP_X_FORWARDED_FOR"];
geht über die Server-Variable „HTTP_X_FORWARDED_FOR“ wie folgt:
echo $_SERVER["HTTP_X_FORWARDED_FOR"];
Nach der Installation von Zend Server CE ist PEAR erst mal nicht einsatzbereit.
Konfigurieren lässt sich PEAR ganz einfach über den Aufruf der Datei …\ZendServer\bin\go-pear.bat (mit Admin-Rechten ausführen).
Startet die PEAR_ENV.reg (liegt ebenfalls unter …\ZendServer\bin\)!
Danach könnt ihr PHPUnit direkt über PEAR nach installieren, einfach im selben Ordner mit den Kommandos:
pear upgrade pear
pear channel-discover components.ez.no
pear channel-discover pear.phpunit.de
pear channel-discover pear.symfony-project.com
pear install –alldeps phpunit/PHPUnit
Taucht eine Fehlermeldung ähnlich:
Failed to download pear/HTTP_Request2 within preferred state „stable“, latest re
lease is version 2.0.0RC1, stability „beta“, use „channel://pear.php.net/HTTP_Request2-2.0.0RC1“ to install
install failed
so wechselt den Status mit pear config-set preferred_state beta und start die installation erneut!
Taucht ein Fehler ähnlich dem folgenden auf:
C:\Program Files\Zend\ZendServer\bin>pear install pear/XML_RPC2
SECURITY ERROR: Will not write to C:\Users\User\AppData\Local\Temp\pear\cache\
b521f99a31e9c4ca2b11faa4b5f31ef5rest.cacheid as it is symlinked to C:\Users\dani
el\AppData\Local\Temp\pear\cache\b521f99a31e9c4ca2b11faa4b5f31ef5rest.cacheid –
Possible symlink attack
install failed
Löscht einfach den Cache-Ordner! 😉
Ihr erhaltet in Magento die Ausgabe „Exception printing is disabled by default for security reasons.“ und wollt mehr Debug-Ausgaben?
Einfach die Datei [magento-root-path]/errors/local.xml.sample umbenennen in [magento-root-path]/errors/local.xml
Und schon wird bei erneuter Ausführung der Fehler erzeugenden Seite das PHP Tracing aktiviert und die Fehlermeldung ausgegeben.
Manchmal ist es ganz hilfreich sich alle verfügbaren Methoden einer Klasse ausgeben zu lassen, das könnt ihr mit der folgenden Funktion:
<style type="text/css"> body { font-family: arial;font-size: 0.9em;} </style> <?php function out_methods($class) { echo '<p><strong>'.$class.'</strong><br>'; $methods = get_class_methods($class); sort($methods); foreach($methods as $k => $v) { echo "[$k] => $v <br>"; } echo '</p><hr>'; } require_once 'app/Mage.php'; out_methods('Mage_Catalog_Model_Product'); out_methods('Mage_Catalog_Model_Category'); ?>
Eine ausführliche Anleitung zum Debugging von Java-Script im Firefox findet ihr hier.
Mit der folgenden Funktion könnt ihr Firebug mit Hilfe der FirePHPCore ansprechen, dazu ggf. den entsprechenden Pfad zur Library anpassen (bei path to library):
function firebug($array=array(), $error_reporting=true) { if($error_reporting) error_reporting(E_ALL); // path to library require_once PFAD_RELATIV . "/class/Firebug/FirePHP.class.php"; $firephp = FirePHP::getInstance(true); require_once (PFAD_RELATIV."/class/Firebug/fb.php"); //$firephp->group('Debug Group'); $firephp->dump('dump', $array); //$firephp->fb($array, 'dump', FirePHP::DUMP); $firephp->fb($array, 'dump', FirePHP::INFO); //$firephp->groupEnd(); }
Mit der folgenden Funktion könnt ihr Firebug direkt im ZendFramework ansprechen
function firebug($value= '') { $writer = new Zend_Log_Writer_Firebug(); $logger = new Zend_Log($writer); $request = new Zend_Controller_Request_Http(); $response = new Zend_Controller_Response_Http(); $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance(); $channel->setRequest($request); $channel->setResponse($response); // Start output buffering ob_start(); // Now you can make calls to the logger $logger->log($value, Zend_Log::INFO); // Flush log data to browser $channel->flush(); $response->sendHeaders(); }
<?php FB::log('Log message'); FB::info('Info message'); FB::warn('Warn message'); FB::error('Error message'); ?>
console.trace();
console.dir(object);
console.dirxml(element);
console.dir(window);
console.log("The %d item has a value of: %d", fifth, myvalue);
how-to-integrate-firephp-for-ajax-development
Object Inspection
console.dir(object)
XML Object inspection
console.dirxml(element)