PHP: SSL certificate problem – certificate verify failed

2. September 2010 at 17:34

Bekommt ihr eine Fehlermeldung ähnlich

SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

so ist die  Ursache ein fehlerhaftes bzw. ungültiges SSL-Zertifikat. Läuft der Script local (z.B. während der Entwicklung) so könnt ihr den SSL-Check mit den folgenden Zeilen deaktivieren:

$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;

Magento: Redirect Funktionen

20. August 2010 at 17:42

Die ReDirect Funktionen findet ihr in der Mage_Core_Controller_Varien_Action class.

/* Redirect to certain url  */
_redirectUrl($url)

/* Redirect to certain path */
_redirect($path, $arguments=array())

/* Redirect to success page */
_redirectSuccess($defaultUrl)

/* Redirect to error page */
_redirectError($defaultUrl)

/* Set referer url for redirect in response */
_redirectReferer($defaultUrl=null)

/*  Identify referer url via all accepted methods (HTTP_REFERER, regular or base64-encoded request param) */
_getRefererUrl()

/* Check url to be used as internal */
_isUrlInternal($url)

For redirect URL:
$url = "http://example.com";
Mage::app()->getFrontController()->getResponse()->setRedirect($url);
For redirect with path and arguments:
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl($path, $arguments));

Magento: Exception printing is disabled by default for security reasons

5. August 2010 at 12:52

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.

Magento: Breadcrumb auf jeder Seite anzeigen

14. Juli 2010 at 12:17

Wenn ihr eine Breadcrumb auf jeder Seite angezeigt haben möchtet, dann könnt ihr das wie folgt über die jeweilige Layout.xml einbinden. Hier ein Beispiel für den Warenkorb aus der checkout.xml:

<checkout_cart_index>
 <reference name="breadcrumbs">
 <action method="addCrumb">
 <crumbName>Home</crumbName>
 <crumbInfo><label>Startseite</label><title>Startseite</title><link>/</link></crumbInfo>
 </action>
 <action method="addCrumb">
 <crumbName>Wkindex</crumbName>
 <crumbInfo><label>Warenkorb</label><title>Warenkorb</title></crumbInfo>
 </action>
 </reference>

Magento: Statischen CMS Block im Template ausgeben

10. Juli 2010 at 16:27

Ihr könnt in Magento ein statischen CMS Block wie folgt im template einbinden.

Ein Beispiel zum einbinden über die entsprechende layout.xml :

<layout>
<asdf_xy_zzz>
<reference name="content">
 <block type="cms/block" name="cms_store_check">
 <action method="setBlockId"><block_id>store_check</block_id></action>
 </block>
 </reference>
 </asdf_xy_zzz>
</layout>

Direkt einbinden im Template:

echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_id')->toHTML();?>

Einbinden im CMS:

{{block type="cms/block" block_id="your_id" template="cms/content.phtml"}}

 

Magento: Über ein url-key einer Kategorie ein Link erzeugen

8. Juli 2010 at 20:36

Im Admin-Backend ist es möglich ein url-key für z.B. Kategorien zu setzen. Möchtet ihr jetzt automatisch von Magento anhand dieser ein Link erzeugen, könnt ihr das wie im folgenden Beispiel:

<a href="<?php echo Mage::getModel('catalog/category')->load(Mage::getModel('catalog/category')->getCollection()->addAttributeToFilter('url_key', 'all-bags')->getAllIds())->getUrl(); ?>" title="All bags" ><?php echo $this->__('All bags'); ?></a>

Zend Framework 1.10.5

4. Juni 2010 at 17:48

zend framework logo www.fly2mars-media.deNach den am 20.05. und 21.05. durch geführten Bug Hunt Days wurde vor einigen Tagen die Stable Release des Zend Framework 1.10.5 veröffentlicht. Diese Revision des Minor-Releases wird höchst wahrscheinlich einer der letzten sein, bevor das Zend Framework in die Version 2.0 wechselt.

Auf der Website zum Zend Framework wurden ebenfalls wieder einige Updates vorgenommen. So wurde die Sektionen Reference Guide und Quick Start weiter aktualisiert. Der Bereich Learning Zend Framework ist schon bei Version 1.10.0 neu hinzugekommen. Herunterladen könnt ihr die aktuelle Version unter:

35 wirklich hilfreiche PHP Tutorials and Techniken für Entwickler

26. März 2010 at 10:23

35 wirklich hilfreiche PHP Tutorials and Techniken für Entwickler. Themen sind neben PHP auch JQuery, MySQL, CSS und alles was das Web-Entwickler-Herz begehrt. Hier geht es zum Link.

Mail verschicken mit PHPmailer & SMTP Auth

27. November 2009 at 10:38

Zum versenden von Emails mit SMTP-Auth unter PHP könnt ihr unter anderem die Library PHPmailer verwenden.
Diese ist kostenlos zu laden unter sourceforge.net/projects/phpmailer

Die folgende PHP-Funktion zeigt wie damit HTML-Mails inkl. Anhang sowie vorherigen SMTP-Auth versendet werden können:

function sendmail($subject='', $recipient='', $body='', $FILES = array())
 {
 //Klasse einbinden
 require_once(PFAD_ZU_PHPMAILER_CLASS  .  '/phpmailer/class.phpmailer.php');
 //Instanz von PHPMailer bilden
 $mail = new PHPMailer();
 // Parameter setzen
 $mail->IsSMTP(); //Versand SMTP festlegen
 $mail->Host = "smtp.server.de"; //SMTP-Server setzen
 $mail->SMTPAuth = true;     //Authentifizierung aktivieren
 $mail->Username = "UserName";  // SMTP Benutzername
 $mail->Password = "UserPassword"; // SMTP Passwort
 $mail->IsHTML(true);
 //$mail->AddEmbeddedImage('logo.jpg', 'logoimg', 'logo.jpg'); // attach file logo.jpg, and later link to it using identfier logoimg
$mail->AltBody='Hier kann optional der alternative Body Text Definiert werden';
 // Return Path setzen
 $mail->Sender = 'absender@email.com';
 //Absenderadresse der Email setzen
 $mail->From = 'absender@email.com';
 //Name des Abenders setzen
 $mail->FromName = 'User XY';
 //Empfaengeradresse setzen (mehrere Empfaenger durch Komma trennen, soll jede E-Mail separat verschickt werden so muss ein Array uebergeben werden)
 $mail->AddAddress($recipient);
 //Empfaenger einer Blindkopie setzen
 $mail->AddBCC('bcc@email.com', 'bcc2@email.com');
//Empfäer einer Kopie setzen
//$mail->AddCC('cc@email.com');
 //Betreff der Email setzen
 $mail->Subject = $subject;
 //Text der EMail setzen
 $mail->Body = $body;
 // Dateien anhäen?
 for($i=0; $i<count($FILES); $i++)
 {
$mail->AddAttachment($FILES[$i]['pfad'], $FILES[$i]['name']);
 }
 // Senden
 $mail->Send();
 }

Firebug / FirePHP über PHP ansprechen

19. November 2009 at 15:45

firebug

Firebug mit FirePHPCore-Library ansprechen

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();
}

Firebug in ZendFramework ansprechen

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();
}

Debug Log Ausgabe in Firebug

<?php
FB::log('Log message');
FB::info('Info message');
FB::warn('Warn message');
FB::error('Error message');
?>

Log Debug Ausgabe in Firebug aus JavaScript

Stack traces

console.trace();

Object Inspection

console.dir(object);

XML Object inspection

console.dirxml(element);

Current Events on the Page

console.dir(window);

With Objects

console.log("The %d item has a value of: %d", fifth, myvalue);

Firebug with Ajax developement

how-to-integrate-firephp-for-ajax-development

Weiter führende Links

Stack traces
console.trace(); 

Object Inspection
console.dir(object)

XML Object inspection
console.dirxml(element)