Kategorie: PHP
-
PHP-Funktionen in JS benutzen mit php.js
Wer vermisst es nicht: High Level Funktionen, die einem die einfachsten arbeiten abnehmen in Javscript. Von PHP ist man immer gewöhnt schlanken, gut lesbaren Code zu schreiben, auch dank der vielen eingebauten Hilfsfunktionen, wie z.B. für die String Verarbeitung: strncmp strpbrk strpos strrchr strrev strripos strrpos strspn strstr strtok strtolower strtoupper strtr Dies ist zeit…
-
Yii Griedview ID nicht definiert
Wenn man die Yii Gridview benutzt, um bei Dataprovider Daten schnell in eine Tabelle zu verpacken, muss man aufpassen, dass man definiert, was die eindeutige ID jeder Zeile ist. Bei einem CArrayDataProvider muss man das Attribut „keyField“ setzen : $this->widget(‚zii.widgets.grid.CGridView‘, array( ‚dataProvider‘ => new CArrayDataProvider($myData, array(„keyField“ => „myKeyFieldName“)), ) )); ?> ansonsten…
-
Cross Domain Ajax Requests
Von Hause aus sind Cross Domain Ajax Requests aus Sicherheitsgründen nicht erlaubt, weil so fremder Schad-Code beim Client nachgeladen und ausgeführt werden kann. Um trotzdem einen erfolgreichen Ajax Request auf eine andere Domain oder Subdomain oder auch nur von HTTP auf HTTPS zu senden, muss man die Access-Control-Allow-Origin beachten. Man muss nicht jsonp benutzen, wie…
-
Yii PHP Objekte übergeben nach Javascript
Es gibt verschiedene Varianten die PHP Variablen und Objekte nach Javascript zu übergeben: 1. mit PHP json_encode() var employmentTypesIds = <?php echo json_encode($employmentTypesIds)?>; 2. per Extension mit Active Record Relationen! – carjson 3. per Script Übergabe: $cs->registerScript(‚php_vars‘, ‚messages1 = ‚.CJSON::encode(Yii::app()->createAbsoluteUrl(„/messages/hello“)).‘;‘. ‚messages1 = ‚.CJSON::encode(Yii::app()->createAbsoluteUrl(„/messages/goodbye“)).‘;‘ );
-
Yii Session Handling über die Datenbank aktivieren
Aus Sicherheitsgründen kann man die Session mit Yii nicht über das Dateisystem, sondern über die Datenbank verwalten lassen automatisch und die Sessionvariable verschlüsseln. Folgende Konfiguration ist dafür notwendig: ‚components‘ => array( ’session’=>array( ‚class‘ => ’system.web.CDbHttpSession‘, ‚connectionID‘ => ‚db‘, ’sessionTableName‘ => ’session‘, ‚autoStart’=>true, ‚cookieMode’=>’only‘, //’savePath’=>’/tmp‘, ’sessionName’=>’connected_session‘, ‚timeout’=>60*60,//…
-
Yii CGridView Custom Header für Pdf Generierung
Um ein PDF generieren zu können mit mpdf, muss man die thead-Tags entfernen, da diese nicht umgewandelt werden von mpdf. Dazu kann man die folgende Klasse verwenden: Yii::import(‚zii.widgets.grid.CGridView‘); class PDFGridView extends CGridView { public function renderTableHeader() { $options[‚class‘] = ‚pdf-grid-header‘; echo CHtml::openTag(‚tr‘, $options) . „\n“; foreach ($this->columns as $header) { …
-
PHP überprüfen, ob ein String eine valide Asin ist
Um zu überprüfen, ob ein String eine valide Asin ist, muss man die 2 möglichen Regeln für Asins überprüfen: ein „B“ gefolgt von 2 Zahlen und 7 alphanumerischen Werten eine spezial ISBN-Vairiante: 9 Zahlen und am Ende entweder ein „X“ oder eine weitere Zahl (sehr selten) Der passende reguläre Ausdruck in einer Funktion gekapselt in…
-
PHP Design Patterns
Das Verständnis und die Anwendung von Design Patterns gehören in der fortgeschrittenen Programmierung zum guten Ton. Der Sinn für die Verwendung von Design Patterns ist die Software erweiterbar zu halten und auch Jahre später noch ohne großen Aufwand an neue Anforderungen anpassen zu können. Die folgenden Ausführungen sind aus dem Standardwerk zu dem Thema „PHP Design…
-
WordPress Paragraph Tags werden nicht eingefügt
Man kann sehr einfach über das Problem stolpern, dass die <p>-Tags (Paragrapgh-Tags) nicht automatisch im Blog eingefügt werden. Um das Problem zu lösen, musste man einfach die Hook vorher ausführen, die die Paragraph Tags setzt: $content = get_the_content(); echo apply_filters(‚the_content‘, $content); Dies ergab sich dadurch, dass der Content noch nach iso kodiert werden musste. Ansosnten…
-
Yii AR Search mit Relations Attribute Has_Many
Um eine Suche auch über die Relationen einer Active Record Klasse zu realisieren, muss Folgendes beachtet werden: 1. Die Relation muss vorhanden sein: public function relations() { ‚categories‘ => array(self::HAS_MANY, ‚place_id‘, ‚category_id‘), 2. Die Relation muss suchbar sein: public function rules() { array(’name, categories‘, ’safe‘, ‚on‘ => ’search‘), 3. In der Suchfunktion…