August 28, 2009
· Geschrieben von: admin
Nach einem Serverumzug hatte ich diverse Probleme mit der Ausführung eines Scriptes, welches in etwa 250 Variablen in einem Array per Post verschickt (komplexes Formular). Schnell wurde mir klar, dass mein Array stehts beim Eintrag Nr. 197 abgeschnitten war. Nach intensiver Kontrolle der Servereinstellungen in der PHP.ini / phpinfo() bin ich auf den Übeltäter gestoßen:
Die Suhosin Extension weist Standardmäßig folgende Einträge auf:
suhosin.post.max_vars = 200
suhosin.request.max_vars = 200
Wer also Probleme mit abgeschnittenen Post-Variablen hat, sollte seine [suhosin] Konfiguration überprüfen.
Juni 12, 2009
· Geschrieben von: admin
Da sich meine Neuinstallation des Entwicklungsrechners relativ aufwendig gestaltet nutze ich die Gelegenheit einige Dinge hier zu Dokumentieren:
- Zunächst benötigen wir die eigentliche Entwicklungsumgebung EasyEclipse for PHP, diese steht unter www.easyeclipse.org zum Download bereit.
- Zum lokalen Entwickeln nutzen wir am besten XAMPP, einen Installer findet man auf www.apachefriends.org. Nach der Installation sollten wir in der http.conf noch den DocumentRoot auf den Workspace-Folder von EasyEclipse legen.
- Als Debugger empfiehlt es sich die PHP-Extension XDebug zu verwenden, diese wird mit Xampp ausgeliefert muss allerdings noch aktiviert werden. Dafür fügen wir in der php.ini* folgendes bei den Extensions ein “extension=php_xdebug.dll“, kommentieren den kompletten Block[zend] aus und fügen folgendes ein: Lies den Rest des Beitrages
Juni 9, 2009
· Geschrieben von: admin
Hin und wieder entwickelt man ein Modul, welches von fremden Seiten z.B. in einem Frameset oder iFrame eingebettet werden soll. Diese Lösung ist zwar nicht sonderlich elegant, ist aber für den Kunden relativ einfach zu handhaben.
Leider wird man dabei aber auch feststellen, dass der Internet Explorer den Session Cookie nicht setzt, wenn die Session innerhalb eines Frames geöffnet wird und diese zeitgleich noch auf einer anderen (Sub-)Domain liegt.
Um dieses Problem zu umgehen, empfiehlt sich folgende Servereinstellung ind er php.ini:
session.use_only_cookies = 0
session.use_trans_id = 1
Hier wird zwar seitens PHP mit Sicherheitsproblemen gewarnt, da man theoretisch eine fremde Session-ID stehlen könnte. Aber solange es sich nicht um Hochsicherheitsdaten (z.B. Kundenadressen, Bankverbindung etc.) handelt und man evtl. noch die IP Adresse einmal in der Session speichert und vergleicht sollte man dennoch ein relativ sicheres System haben. Auch die Lebensdauer der Session sollte nicht zu lange gewählt werden.
Mai 15, 2008
· Geschrieben von: admin
Wenn ich mit dem freien jQuery Framework mittels AJAX bzw. jQuery.get() ein Template lade, kann ich auf dessen HTML-Elemente später nicht mehr über jQuery zugreifen. Über meinen eigenen JavaScript-Code kann ich dennoch auf die besagten Elemente zugreifen.
Ich habe derzeit keine Ahnung warum das so ist, vielleicht hinterlässt mir hier jemand einen Kommentar der mir weiterhilft… oder geht das dann generell nicht?
Februar 13, 2008
· Geschrieben von: admin
Kürzlich hatte ich das Problem, dass lange Texte über 4.000 Zeichen bei der Ausgabe über PHP abgeschnitten werden, beim speichern in die Datenbank wird jedoch der volle Text gespeichert. Um den gesamten Textstring wieder auszugeben müssen folgende Einstellungen in der php.ini bzw. mittels ini_set() vorgenommen werden.
1) Bei MS-SQL über ODBC:
odbc.defaultlrl = [Bytes];
2) Bei MS-SQL über PHP-MSSQL:
mssql.textlimit = 2147483647
mssql.textsize = 2147483647
Januar 23, 2008
· Geschrieben von: admin
Standardmäßig werden im FCKEditor nach dem Bild- oder Dateiupload nur relative Pfade zur Datei gespeichert. In einem mehrbenutzerfähigen System liegen die Daten aber häufig in einer zentralen Datenbank und sollen von verschiedenen URLs abgerufen werden. Ein weiteres Szenario wäre z.B. ein HTML-Newsletter mit absoluten Pfaden zu den Bilddaten auf dem Webserver.
Um den Filebrowser im FCKEditor auf absolute Pfade umzustellen kann man die Datei “fckeditor\editor\filemanager\browser\default\frmresourceslist.html wie folgt modifieren.
// Build the link to view the folder.
var sLink = ‘<a href=”#” onclick=”OpenFile(\” + ProtectPath( fileUrl ) + ‘\’);return false;”>’ ;
Erweitern wir einfach um die Stamm-URL (die URL der zentralen Datenhaltung):
// Build the link to view the folder.
var sLink = ‘<a href=”#” onclick=”OpenFile(\’http://www.meinesite.de’ + ProtectPath( fileUrl ) + ‘\’);return false;”>’ ;
Januar 23, 2008
· Geschrieben von: admin
Um den WYSIWYG-HTML-Editor in ein mehrbenutzerfähiges System (z.B. eine Mall oder gemeinsam genutztes CMS mit getrennter Dateiverwaltung) zu integrieren sind folgende Anpassungen notwendig:
- Die entsprechende Nutzer-ID in der Klasse “FCKeditor” deklarieren:
var $userId;
- Die Nutzer-ID in der Methode “FCKeditor()” (in Klasse FCKeditor) initieren:
$this->userId = ”;
- Weiter unten, in “CreateHtml()” den Querystring in der Variable $Link erweitern:
$Link = “{$this->BasePath}editor/{$File}?InstanceName=
{$this->InstanceName}&userId={$this->userId}” ;
- Nun benötigen wir eine Funktion um den Querystring in JavaScript auszuwerten, hierfür binden wir folgendes Script in die Datei fckeditor.html ein: querystring.js (download). Dies erfolgt z.B. über die Funktion LoadScript(’../querystring.js’) und muss vor dem Aufruf LoadScript(’../fckconfig.js’) erfolgen.
- Anschließend ergänzen wir die fckconfig.js um folgende Zeilen:
var qs = new Querystring();
var _userId = qs.get(”userId”);
Dies sollte unbedingt noch vor den Deklarationen “FCKConfig.Linkbrowser = true” etc. erfolgen.
- Jetzt ergänzen wir noch die URLs sämtlicher Filebrowser um folgende Parameterübergabe:
FCKConfig…URL = …Extension + ‘?CMS_ID=’ + _CMSID ;
- Abschließend fangen wir die Variable im Filemanager ab und ergänzen den Pfad in der Variable $Config['UserFilesPath'] in der Datei editor\filemanager\connectors\php\config.php um die Nutzer-Id ‘mein/pfad/’.$userId.’/';
Weiterhin müssen wir $Config['Enabled'] auf true setzen.
Nun sollte jeder Benutzer seine Dateien in ein eigenes Verzeichnis hochladen und niemand kommt sich mit seinen Dateien in die Quere. Da die Quickupload-Funktion Probleme bereitet hat habe ich diese deaktiviert, die Anwender müssen somit über den Filemanager Ihre Dateien hochladen und verwalten.
Diese Angaben basieren auf dem FCKEditor 2.51 in Verbindung mit PHP 4
Januar 16, 2008
· Geschrieben von: admin
Auch wenn ich von dieser Vorgehensweise abrate und in diesem Fall zu einem Array tendieren würde kommt man z.B. bei der Weiterentwicklung von bestehenden Code manchmal nicht daran vorbei einen Variablennamen in PHP dynamisch zu erzeugen.
Der Name unserer Testvariablen lautet z.B. $text1, $text2, $text3 etc.
for ($i=0; $i<10; $i++) {
echo $GLOBALS["text$i"];
}
Quelle: PHP-FAQ