Chris: Variable auf gültige Farbangabe überprüfen ?

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

  1. 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

    1. 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

      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

      1. Hi Chris,

        was du suchst, sind reguläre Ausdrücke. :-) Schau da mal nach.

        Gruß
        Ben

        1. 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.

          --
          Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
          Zufällige Hinweise:
          ------------------------
          Probleme mit Formularen?
          http://tutorial.riehle-web.com hilft weiter.
          1. 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

            --
            bythewaythewebsuxgoofflineandenjoytheday
            1. 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.

              --
              Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
              Zufällige Hinweise:
              ------------------------
              Probleme mit Formularen?
              http://tutorial.riehle-web.com hilft weiter.
    2. 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.

      --
      Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
      Zufällige Hinweise:
      ------------------------
      > Bitte schickt mir die Antwort als E-Mail an xy@xy.de
      Wie bitte? Noe, gibbet net!
  2. 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

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!