Bananas Development Blog: Archives

Formulardaten validieren mit PHP

Nein ich werde nicht erklären wie das geht, sondern eher mal einen Ansatzt zeigen wie man es besser machen kann.

Bisher wurde immer überprüft ob bestimmte zeichen in der Eingabe eines Formulares enthalten sind. Wenn ja dann geben einen Fehler zurück.
Soweit so gut.

Nun kann man das aber auch anderster machen.
Wenn man nun überprüfen möchte ob die Eingabe nur Alphanumerische zeichen enthält.
Nein kein Array mit dem Alphabet machen...nein,nein.

$check = false;
$pattern = '/[^\p{L}\p{N}]/u';
$value = preg_replace($pattern, '', $input);
if($input === $value) {
$check = true;
}


So was wird den da gemacht ?
Nun eigentlich ganz einfach.
Die Eingabe wird mit einem preg_replace und den Unicode character properties (runter scrollen bis Unicode character properties) bearbeitet.
Wenn nun der replace greift wird ja die Eingabe($value) verändert. Nun vergleicht man das Ergebnis($value) des replace mit der original Eingabe($input) und wenn die stimmen dann ist die Eingabe valide und wenn nicht, dann waren da Zeichen enthalten die da nicht rein sollen.

Mal was anderes oder ?

Banana
out.

Segmentaion fault on preg_replace in Zend_Db_Statement

So ich mag das ZF da es ja so viele fertige Möglichkeiten bietet.

Aber manchmal habe ich das gefühl das es einfach ein wenig übertreibt.

Bin gerade auf folgenden Bug gestoßen:
Segmentaion fault on preg_replace in Zend_Db_Statement

Da muss man erster mal darauf kommen. Erster dachte ich es seien irgendwelche Zeichen in der SQL oder so, aber nein es fing ab einer bestimmten SQL länge an.
Mit Hilfe von ZendStudio und der Debug funktion konnte ich dann das Problem bestimmen.

Es ist die Zeile 187 in der Zend/Db/Statement.php Datei (ZF version 1.7.1).
Dieser preg_replace fällt da auf die Nase und in der erro log des apache steht nur "[notice] child pid 7426 exit signal Segmentation fault (11)"

Nun ja da es ja schon dieses Bug gibt und bisher keine Lösung musste ich mir selber helfen.

Also habe ich einfach die Zeile 108 in der Zend/Db/Statement.php auskommentiert. Dies ist die Zeile in der das SQL mit der funktioner _parseParameters aufbereitet wird (oder was auch immer.....).
Bisher ging dann alles gut und auch das SQL machte dann keine Probleme mehr.

So nun geht es weiter.

Banana
out.

Zend Framework, Zend_DB und ? in dem SQL

Sollte irgend jemand schon mal den Fehler bekommen haben:
Invalid parameter number: no parameters were bound" when using ' and ? in where clause

dem kann geholfen werden.

Dazu ist aber folgendes nötig. Man braucht mindestens MySQL 4.1.3 sowie die mysqli extension von PHP. Denn damit sollte der Fehler nicht mehr kommen.

Hat mich schon ne weile genervt, da ich einfach nicht dahinter gekommen bin warum.

Hier ist sogar ein Bug dazu:
Invalid parameter number: no parameters were bound" when using ' and ? in where clause

Dazu sollte man beachten, dass die mysqli Extension die bessere Wahl ist, wenn man aktuellere MySQL Datenbanken verwendet.

banana
out.

Bundesamt warnt vor Microsofts Internet Explorer

Oh hoppla....

Jeder Browser hat so seine Vor- und Nachteile und Schwächen. Sogar der Firefox ist nicht gegen alles gefeit. Und auch nur seine geringere Verbreitung hält die Bösewichte noch zurück, da es einfach lukrativer ist. (Das ist auch ein Grund warum es kaum Schadsoftware für Unix/Linux gibt.)

Da nun die Aktuelle Sicherheitslücke aber anscheinen so schlim ist warnt nun sogar das Bundesamt für Sicherheit in der Informationstechnik davor im Moment den Internet Explorer zu nutzen.

Also einfach mal die alternativen Browser ausprobieren und warten bis das Problem behoben ist.

Quelle: Bundesamt warnt vor Microsofts Internet Explorer (Spiegel Online)

Willst du Pixel Artist werden ?

Immer schon mal was in Pixeln malen wollen aber einfach keine Zeit und nicht das Händchen dafür ?

Mit dieser Seite kannst du dir eine Pixel Graphic zusammenbauen ohne professionell zu sein. (Ok um ein schönes Bild zu erstellen sollte man schon wissen was zu tun ist...)

Ever wanted to create your own isometric pixel picture, but didn't know what the word isometric meant? Well, now you can fulfil your wildest dreams with Cubescape!

CUBESCAPE Your own digital landscape

Dinge die einem helfen, ein guter Webdesigner zu werden

# Bleibe am Balll

In zwei Wochen wird man kein guter Webdesigner. Man lernt im Laufe der Zeit und sammelt Erfahrungen die einen enorm weiterbringen.
# Brainstorming

Bevor ich mit der Arbeit anfange schreibe ich mir erstmal auf, was mir zu dem zu bearbeitendem Thema einfällt. Wenn ich eine Website zum Thema Lifestyle gestalten soll, schreibe ich einfach Dinge wie zum Beispiel “Autos, Geld, Frauen, Klamotten..” auf einen Zettel. Diese Stichworte verwende ich oftmals im Design als Stock Fotos..
# Sei dankbar für positive sowie negative Kritik (wichtig)

Jeder fängt mal klein an, und anfangs macht man auch sehr viele Fehler. Durch Kritik von erfahreneren Leuten lernt man am meisten also sollte man für ehrliche und konstruktive Kritik sehr dankbar sein. Viele “Anfänger” reagieren immer sehr gereizt auf Kritik, wass ich absolut nicht verstehen kann.


Hier geht es weiter ... 11 Dinge die einem helfen, ein guter Webdesigner zu werden

Banana
out

PHP $_POST nur 200 Einträge ???? (Suhosin)

Ahhhhh......

Ok nach dem ich an meinem Verstand gezweifelt habe, habe ich dann doch noch eine Erlösung gefunden.

Also hier erster mal mein Problem:
Ein test Installation von einer Software hatte das Problem, dass ein sehr großes Forumlar nicht richtig übertragen worde. Nicht richtig ist vielleicht die falsche Beschreibung denn es gab keine Fehlermeldung oder so.
Die $_POST Variable in PHP wurde einfach nicht größer als 200 Einträge ( count($_POST); ).

ABER WARUM ????
Kein Syntaxfehler oder offene Tags im HTML. Ich konnte sogar die Stelle finden an der nichts mehr an input Felder übernommen worde...

Wie löst man den so was ?
Nach was sucht man da bei Google ??
Na ja ganz einfach:
length $_POST 200

Und was kam dabei raus ?
-> $_POST limited to 200?

Ahh da ist das "Problem": Suhosin

Nun die Lösung:
- Folgende Einstellungen in der suhosin.ini ändern bzw. aktivieren (wo die suhosin.ini ist findet man über phpinfo(); heraus. Kann aber auch sein, dass diese Einstellungen in der normalen php.ini sind.)
suhosin.request.max_varname_length = 128
suhosin.request.max_vars = 2000
suhosin.request.max_totalname_length = 256
suhosin.request.max_array_index_length = 128
suhosin.post.max_vars = 2000
suhosin.post.max_value_length = 65000
suhosin.post.max_totalname_length = 256
suhosin.post.max_name_length = 128

Die wichtigste Einstellung ist die suhosin.post.max_vars den diese war bzw. ist im Orginalzustand auf 200 gesetzt.
Daher auch das Limit auf 200 Einträge in der Post Variable.


Darauf muss man erster mal kommen...


Banana
out.

WYSIWYG Fürs Web

Ich denke mal viele kenne TinyMCE als den WYSIWYG Editor fürs web.
Aber es gibt noch viel mehr davon. Da kann man sich eine aussuchen und somit den besten für sein Porjekt auswählen.


20 Excellent Free Rich-Text Editors

Banana
out