Datentyp 'boolean' definieren, auf gültigen RGB Code tracken

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von sevY, 09.03.2004.

  1. sevY

    sevY Thread Starter Gast

    Hi zusammen,

    hier ein Auszug aus meinem Script und anschließend die Fragen dazu :)

    PHP:
        echo"
            <body onload=\"javascript:dialog();\">
            "
    ;
        
    $valid='false';
        }
    else
        {
        echo
    "
            <body>
            "
    ;
        
    $valid='true';
    Wie definiere ich die Variable $valid als boolschen Datentyp? Also so als String geht ja auch, aber geht es nicht irgendwie das ich das „sauber“ löse? Ist hier eher unwichtig, aber gut für mich zur Übung.

    PHP:
    if((isset($_POST['colourswitch']) && !empty($_POST['colourswitch'])) && $valid=='true')
    Wie prüfe ich nun die Variable $valid auf true oder false im boolschen Sinne nachdem ich sie oben entsprechend definiert habe?

    PHP:
    eregi('#',$_POST['rgb'])
    Hier überprüfe ich nur, ob der RGB Code auch eine # beinhaltet.

    Ich würde das gerne in eine Funktion zusammenfassen, die die Variable $_POST['rgb']

    1.) auf die # am Anfang(!) des Codes überprüft
    2.) ab der 2. Stelle auf eine Länge von 6 Zeichen prüft
    3.) ab der 2. Stelle die Zeichen auf gültige RGB Definitionszeichen prüft (zb ein @ ist nicht erlaubt)

    Ich dachte dabei an eine abstrakte Funktion in dieser Form, die dann true bzw. false wiedergibt:

    PHP:
        function check_rgb($x)
            {
            
    //Aktionen
            
    }  

    Vielen Dank und liebe Grüße

    Yves
     
  2. Delmar

    Delmar MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    MacUser seit:
    28.09.2002
    Na Du,

    also, die Variable $valid definierst Du folgendermaßen:
    PHP:
    $valid TRUE;
    Um zu prüfen, ob diese auch TRUE ist, einfach:
    PHP:
    if ($valid)
    Wenn Du prüfen möchtest, ob sie nicht TRUE ist (also FALSE):
    PHP:
    if (!$valid)
    Die Sache mit der Überprüfung kann ich Dir mal zusammenbasteln. Wir sehen uns heute
    Abend doch sowieso, oder?!
     
  3. Delmar

    Delmar MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    MacUser seit:
    28.09.2002
    Hab Dir mal ne Funktion gebastelt!

    PHP:
    function checkRGB($rgb)
    {
        (
    eregi('^#[0-9]{6}$',$rgb)) ? $result TRUE $result FALSE;
        return 
    $result;
    }
     
  4. Delmar

    Delmar MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    MacUser seit:
    28.09.2002
    Dabei fällt mir in Deinem oberen Code was auf! Den kannst Du auch noch ein wenig
    optimieren. Man sollte PHP generell immer so wenig wie möglich über echo ausgeben
    lassen. Da der PHP Parser / Interpreter über die Stellen im Code läuft, die von '<?php'
    und '?>' eingeschlossen sind. Wenn Du jetzt die JavaScript Funktion nur aufrufen lassen
    möchtest, wenn eine bestimmte Bedingung erfüllt ist, z.B. $var == 'Yves', dann solltest
    Du das folgendermaßen machen:

    PHP:
    <body <?php if($var == 'Yevs') { echo "onload=\"dialog()\""; } ?>

    Das 'java script' ist hierbei überflüssig, da Du die Funktion 'onload()' benutzt, hierdurch
    rufst Du generell nur JavaSkripts auf. Also überflüssig!

    Die Variable $valid brauchst Du doch grundsätzlich nicht, wenn Du in der folgenden Be-
    dingung die gleiche Abfrage machst, wie eben erklärt, also

    PHP:
    if($var == 'Yves' && $_POST['colourswitch']_&&_!empty($_POST['colourswitch'])
    Darüber hinaus fragst Du doch $_POST['colourswitch'] schon als boolschen Wert ab - ist
    $_POST[colourswitch'] gesetzt oder nicht! Von daher hattest Du Dir Deine erste Frage
    schon selbst beantwortet. :D
     
  5. sevY

    sevY Thread Starter Gast

    Hi, erstmal vielen Dank. Alles klar bei dir? Bin immer noch nicht weiter mit der Pixelschubbserei ;)=


    Frage ich die Variable $colourswitch tatsächlich strikt ab? Ich dachte mit isset($colourswitch) prüfe ich nur ob diese vorhanden ist, unabhängig ihres Datentyps.

    Deine Funktion kam mir auch in den Sinn. Aber in einem anderen Forum wurde herausgefunden, das so zb auch #FFCC000 möglich ist.

    Dort wurde folgendes vorgeschlagen:

    PHP:
    function check_hex($hex) {

    ____return preg_match("/^#([0-9a-fA-F]{6})?$/"$hex);

    }

    Was die Code Optimierung angeht… darf ich das trotzdem so machen? Weil ich finde es übersichtlicher :D


    Vielen Dank


    Liebe Grüße

    Yves
     
  6. Delmar

    Delmar MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    MacUser seit:
    28.09.2002
    Natürlich kannst Du das so lassen, anders ist es aber eleganter gelöst. :D

    Hm ... was ich bei meiner Funktion vergessen habe, ist die Abfrage der Buchstaben A-F,
    aber das was Du da schreibst ist nicht richtig. Es werden nur 6 Zeichen plus die Raute
    akzeptiert - 7 Zeichen nicht!
     
Die Seite wird geladen...
Ähnliche Themen - Datentyp 'boolean' definieren
  1. menzimuck
    Antworten:
    3
    Aufrufe:
    707

Diese Seite empfehlen