Variable auf gültige Farbangabe überprüfen ?
Chris
- php
Hi Ihr,
ich versuche hier jetzt seid längerer Zeit zu überprüfen ob eine Variable $farbe eine gültige Farbangabe enthält.
Also soll praktisch beispielsweise true zurückliefern, wenn
$variable=#FFFFFF ist und false zurückliefern, wenn $variable=#ÜÜ76JK
ist... wie kriege ich sowas hin ? Ich will damit die Hintergrundfarbe meiner Site via PHP verändern, nur will ich verhindern, dass User durch angabe oder manipulation der Variable die Hintergrundfarbe in eine ungültige Variable verändern...
Ich hoffe Ihr könnt mir helfen ;)
Danke schonmal
gruß chris
einfach abprüfen ob:
die variable ein # enthält
die variable ziffern von 0-9 enthält
die variable nur buchstaben von A-F enthält
Gruß Galahad
einfach abprüfen ob:
die variable ein # enthält
die variable ziffern von 0-9 enthält
die variable nur buchstaben von A-F enthältGruß Galahad
Und wie geht dass ? Sorry aber ich hab noch nicht so viel Ahnung von pHP und so... (ist auch erst meine erste Homepage).
Ich hab schonmal auf php.net geguckt, aber da ist nur sowas zum überprüfen ob Variable numeric ist... und dass hilft mir nicht weiter. Gibt es nicht auch Farbangaben die Ziffern und Buchstaben enthalten ? Eigentlich schon oder ? wie FF0000 (rot)
Gruß Chris
Hi Chris,
was du suchst, sind reguläre Ausdrücke. :-) Schau da mal nach.
Gruß
Ben
Hi Ben,
was du suchst, sind reguläre Ausdrücke. :-) Schau da mal nach.
Ich hab heute meinen guten Tag:
//Definition der Überprüfungsfunktion
function color_check($color)
{
$preg = "/#[a-zA-Z0-9]{6}/";
if(preg_match($preg,$color)) return true;
else return false;
}
//Aufruf der Funktion
if(color_check($_POST['eingegebeneFarbe'])) {
//Hintergrundfarbe ändern
}
else {
//Bei falscher Farbe machen
}
Alles klar soweit?
MfG, Dennis.
Huhu Dennis
$preg = "/#[a-zA-Z0-9]{6}/";
das passt aber auch auf "#Braten" mit "#Bohnen" und "#Erbsen".
Also besser [a-fA-f0-9] als Zeichen Klasse nehmen.
Dann gibt es für Farbangeben ja auch noch die Kurzschreibweise mit nur drei Zeichen.
Also f20 => ff2200.
Das wäre dann ggf. auch noch mit zu berücksichtigen.
Viele Grüße
lulu
Huhu Dennis
Hihi lulu, ;-)
$preg = "/#[a-zA-Z0-9]{6}/";
das passt aber auch auf "#Braten" mit "#Bohnen" und "#Erbsen".
Also besser [a-fA-f0-9] als Zeichen Klasse nehmen.
Stimmt, wäre besser.
Dann gibt es für Farbangeben ja auch noch die Kurzschreibweise mit nur drei Zeichen.
Also f20 => ff2200.
Das wäre dann ggf. auch noch mit zu berücksichtigen.
Man könnte z.B. einen zweiten RegEx machen, der darauf machted und dann fragen ob $preg1 oder $preg2 matched.
$preg2 = /"[a-fA-F0-9]{3}"/
MfG, Dennis.
Hi Galahad,
die variable ein # enthält
die variable ziffern von 0-9 enthält
die variable nur buchstaben von A-F enthält
Kleine Buchstabn sind IMHO auch erlaubt.
MfG, Dennis.
Hi,
ich versuche hier jetzt seid längerer Zeit zu überprüfen ob eine Variable $farbe eine gültige Farbangabe enthält.
Wozu?
ist... wie kriege ich sowas hin ? Ich will damit die Hintergrundfarbe meiner Site via PHP verändern, nur will ich verhindern, dass User durch angabe oder manipulation der Variable die Hintergrundfarbe in eine ungültige Variable verändern...
Wenn der User illegale Werte übergibt ist das sein Problem ([tm] ;->).
Solche "Beschränkungen" finde ich ziemlich einengend/bevormundend und ggf. wirklich kontraproduktiv (wie z.B. hier die Überprüfung des URLs auf vermeintliche "Korrektheit", was dazu führen kann, das hier gepostete URLs nicht "klickbar" sind - oder auch "E-Mail-Checker" mit "wunderbaren Bauchlandungen" nach der Erweiterung der Domainnamen mit Sonderzeichen).
Erlaubt Farbangaben wären z.B.
#FF0000, #ff0000, #f00, red, rgb(255,0,0), rgb(100%,0%,0%), ...
Gruß, Cybaer