Kategorie: PHP

CakePHP 2.x: versenden von Emails (CakeEmail) debuggen

Möglichkeit 1: Debug-Einstellung setzen

Eine einfache Möglichkeit, um das Versenden von Emails in CakePHP 2.x zu testen, ist die Debug-Einstellung der Email Konfiguration. Dabei genügt das Setzen der Transport-Einstellung auf ‚Debug‘ und schon wird der Inhalt der Email an der entsprechenden Stelle angezeigt:

<?php
// app/Config/email.php
class EmailConfig {
   public $default = array(
      'transport' => 'Debug',
      // ...

Dies funktioniert allerdings nur, wenn man sich die Ausgabe des aufgerufenen Scripts anzeigen lassen kann. Bei Cronjobs beispielsweise wird dies schon schwieriger.

Firefox – Content Encoding Error / Google Chrome – ERR_CONTENT_DECODING_FAILED

Beim Öffnen einer Webseite, erhält man folgenden Fehler in Google Chrome:

Error 330 (net::ERR_CONTENT_DECODING_FAILED): Unknown error

Nutzt man FireFox dann sieht dieser Fehler so aus:

Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.

Woran liegt das?

CakePHP: Upload von Dateien und Grafiken vereinfachen

Auf www.jamesfairhurst.co.uk ist eine sehr ausführliche Beschreibung zu finden, wie sich der Upload von Dateien/Grafiken in CakePHP vereinfachen lässt. Wichtigster Teil ist dabei die Funktion uploadFiles(), welche dem AppController hinzugefügt wird und somit in der ganzen App verfügbar ist. Diese verarbeitet die Formulardaten des Eingabeformulars und speichert die Uploads im einem angegebenen Verzeichnis ab. Mit dieser Funktion sind auch mehrfache Uploads möglich.

Wo ist meine php.ini?

Wo die aktuell verwendete php.ini gespeichert ist, lässt sich ganz einfach über phpinfo() ermitteln! Dazu einfach eine neue php-Datei im Web-Verzeichnis speichern und mit folgendem Inhalt füllen:

<?php phpinfo() ?>

Wird diese Datei über den Browser aufgerufen, dann ist aus der Ausgabe der Funktion phpinfo() ersichtlich, welche php.ini gerade verwendet wird:

PHP: str_split () für frühere PHP-Versionen

In PHP5 wurde die Funktion str_split () eingeführt:

array str_split ( string string [, int length] )

Konvertiert einen String in ein Array. Wenn der optionale Parameter split_length angegeben ist, enthält das zurückgegebene Array Elemente mit der in split_length definierten Länge, andernfalls enthält jedes Element ein einzelnes Zeichen.

http://de.php.net/manual/de/function.str_split.php

Eine alternative für frühere PHP-Versionen bietet folgende Funktion:

if (!function_exists("str_split")) {
  function str_split($str,$length = 1) {
    if ($length < 1) return false;
    $strlen = strlen($str);
    $ret = array();
    for ($i = 0; $i < $strlen; $i += $length) {
      $ret[] = substr($str,$i,$length);
    }
    return $ret;
  }
}