eval problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • eval problem

    bin dabei ne funktion zu basteln mit der ich usereingaben checken kann

    mit dem 'extra' wert kann ich noch zusätzlich ne 'if' einbauen, leider klappt das mit dem eval nicht!

    falls ihr noch ideen habt, wie man die funktion verbessern könnte, immer man hier anhängen


    PHP-Code:
    <form name="<?php $PHP_SELF ?>" method="post" action="">
      <input name="feld1" type="text" value="feld1">
      <input name="feld2" type="text" value="feld2">
      <input name="feld3" type="text" value="feld3">
      <input type="submit" name="submit" value="Senden">
    </form>
    <?php
    //defines
    define('TYPE_AUTO'0);
    define('TYPE_GET'1);
    define('TYPE_POST'2);
    define('TYPE_SESSION'3);

    //debug var function
    function vd($var)
    {
        
    //$var auf array checken
        
    if( is_array($var) OR is_object($var)) {
            echo 
    "<hr><pre style=\"background-color:#FF8888\">";
            
    print_r($var);
            echo 
    "</pre><hr>";
        } elseif(
    is_string($var)) {
            echo 
    "<hr><p style=\"background-color:#FF8888\">".$var."<p><hr>";
        } else {
            echo 
    "<hr><p style=\"background-color:#FF8888\">Inhalt der var:<br>".$var."<p><hr>";
        }
    }

    //check_fields function
    function check_fileds($array$type TYPE_AUTO) {

        foreach(
    $array as $key => $value) {
            
    //check typ
            
    switch( $value['type'] )
            {
                case 
    TYPE_SESSION:
                    if( isset(
    $_SESSION[$value['name']]) )
                        
    $var $_SESSION[$value['name']];
                break;
                
                case 
    TYPE_POST:
                    if( isset(
    $_POST[$value['name']]) )
                        
    $var $_POST[$value['name']];
                break;
                
                case 
    TYPE_GET:
                    if( isset(
    $_GET[$value['name']]) )
                        
    $var $_GET[$value['name']];
                break;
                
                case 
    TYPE_AUTO:
                    if( isset(
    $_REQUEST[$value['name']]) )
                        
    $var $_REQUEST[$value['name']];
                break;
            }
            
            
    //extra if 
            
    if(isset($value['extra'])) {
                
    $extra substr($value['extra'], 1, -1);
                
    $input $var;
            }

            
    //check if the var exist
            
    if(!$var) {
                
    $novar[] = array($value['name'],$value['msg']);
            }elseif(eval(
    $extra)) {
                
    $novar[] = array($value['name'],$value['msg']);
            }
        }

        
    //build array
        
    if(isset($novar)) {
            foreach (
    $novar as $key => $value) {
                
    // hier könnte man evtl noch was machen
            
    }
        }

        return 
    $novar;
    }

    if(isset(
    $_POST['submit'])){
        echo 
    "abgeschickt";
        
    //check array
        
    $array = array();
        
    $array[] = array('name'     =>     'feld1',
                        
    'msg'        =>    'hey feld1 eingeben',
                        
    'typ'        =>    TYPE_POST,
                        
    'extra'        =>    '($input != "3")');
        
    $array[] = array('name'     =>     'feld2',
                        
    'msg'        =>    'hey feld2 eingeben',
                        
    'typ'        =>    TYPE_POST);
        
    $array[] = array('name'     =>     'feld3',
                        
    'msg'        =>    'hey feld3 eingeben',
                        
    'typ'        =>    TYPE_POST);
        
    $array[] = array('name'     =>     'feld4',
                        
    'msg'        =>    'hey feld4 eingeben',
                        
    'typ'        =>    TYPE_POST);

        
    vd(check_fileds($arrayTYPE_POST));

    ?>
    thx Mukraker

  • #2
    Wo ist die Problembeschreibung?

    Kommentar


    • #3
      Parse error: parse error, unexpected $end in C:\Programme\xampp\htdocs\sites\check.php(66) : eval()'d code on line 1


      < im betreff *g*
      das eval funzt nicht!
      thx Mukraker

      Kommentar


      • #4
        ahh ich penner

        vielleicht sollte ich den check nach 'extra' vors eval machen!

        PHP-Code:
        <form name="<?php $PHP_SELF ?>" method="post" action="">
          <input name="feld1" type="text" value="feld1">
          <input name="feld2" type="text" value="feld2">
          <input name="feld3" type="text" value="feld3">
          <input type="submit" name="submit" value="Senden">
        </form>
        <?php
        //defines
        define('TYPE_AUTO'0);
        define('TYPE_GET'1);
        define('TYPE_POST'2);
        define('TYPE_SESSION'3);

        //debug var function
        function vd($var)
        {
            
        //$var auf array checken
            
        if( is_array($var) OR is_object($var)) {
                echo 
        "<hr><pre style=\"background-color:#FF8888\">";
                
        print_r($var);
                echo 
        "</pre><hr>";
            } elseif(
        is_string($var)) {
                echo 
        "<hr><p style=\"background-color:#FF8888\">".$var."<p><hr>";
            } else {
                echo 
        "<hr><p style=\"background-color:#FF8888\">Inhalt der var:<br>".$var."<p><hr>";
            }
        }

        //check_fields function
        function check_fileds($array$type TYPE_AUTO) {

            foreach(
        $array as $key => $value) {
                
        //check typ
                
        switch( $value['type'] )
                {
                    case 
        TYPE_SESSION:
                        if( isset(
        $_SESSION[$value['name']]) )
                            
        $var $_SESSION[$value['name']];
                    break;
                    
                    case 
        TYPE_POST:
                        if( isset(
        $_POST[$value['name']]) )
                            
        $var $_POST[$value['name']];
                    break;
                    
                    case 
        TYPE_GET:
                        if( isset(
        $_GET[$value['name']]) )
                            
        $var $_GET[$value['name']];
                    break;
                    
                    case 
        TYPE_AUTO:
                        if( isset(
        $_REQUEST[$value['name']]) )
                            
        $var $_REQUEST[$value['name']];
                    break;
                }
                
                
        //extra if 
                
        if(isset($value['extra'])) {
                    
        $extra substr($value['extra'], 1, -1);
                    
        $input $var;
                }

                
        //check if the var exist
                
        if(!$var) {
                    
        $novar[] = array($value['name'],$value['msg']);
                }elseif(isset(
        $value['extra'])) {
                    
        $extra substr($value['extra'], 1, -1);
                    
        $input $var;
                    if(eval(
        $extra)) {
                        
        $novar[] = array($value['name'],$value['msg']);
                    }
                }
            }

            
        //build array
            
        if(isset($novar)) {
                foreach (
        $novar as $key => $value) {
                    
        // hier könnte man evtl noch was machen
                
        }
            }

            return 
        $novar;
        }

        if(isset(
        $_POST['submit'])){
            echo 
        "abgeschickt";
            
        //check array
            
        $array = array();
            
        $array[] = array('name'     =>     'feld1',
                            
        'msg'        =>    'hey feld1 eingeben',
                            
        'typ'        =>    TYPE_POST,
                            
        'extra'        =>    '($input != "3")');
            
        $array[] = array('name'     =>     'feld2',
                            
        'msg'        =>    'hey feld2 eingeben',
                            
        'typ'        =>    TYPE_POST);
            
        $array[] = array('name'     =>     'feld3',
                            
        'msg'        =>    'hey feld3 eingeben',
                            
        'typ'        =>    TYPE_POST);
            
        $array[] = array('name'     =>     'feld4',
                            
        'msg'        =>    'hey feld4 eingeben',
                            
        'typ'        =>    TYPE_POST);

            
        vd(check_fileds($arrayTYPE_POST));

        ?>
        thx Mukraker

        Kommentar


        • #5
          läuft?

          Kommentar


          • #6
            immer noch das selbe

            Parse error: parse error, unexpected $end in C:\Programme\xampp\htdocs\sites\check.php(69) : eval()'d code on line 1
            Zuletzt geändert von mukraker; 11.04.2004, 20:28.
            thx Mukraker

            Kommentar


            • #7
              immer noch keine lösung für eval

              hab leider immer noch das selbe problem
              thx Mukraker

              Kommentar


              • #8
                aktueller code?

                Kommentar


                • #9
                  wie wär's mit:
                  PHP-Code:
                  <form name="<?php echo $PHP_SELF ?>" method="post" action="">
                  // besser $_SERVER['PHP_SELF']

                  Kommentar


                  • #10
                    aktueller code ist dieser immer noch

                    PHP-Code:
                    <form name="<?php $PHP_SELF ?>" method="post" action="">
                      <input name="feld1" type="text" value="feld1">
                      <input name="feld2" type="text" value="feld2">
                      <input name="feld3" type="text" value="feld3">
                      <input type="submit" name="submit" value="Senden">
                    </form>
                    <?php
                    //defines
                    define('TYPE_AUTO'0);
                    define('TYPE_GET'1);
                    define('TYPE_POST'2);
                    define('TYPE_SESSION'3);

                    //debug var function
                    function vd($var)
                    {
                        
                    //$var auf array checken
                        
                    if( is_array($var) OR is_object($var)) {
                            echo 
                    "<hr><pre style=\"background-color:#FF8888\">";
                            
                    print_r($var);
                            echo 
                    "</pre><hr>";
                        } elseif(
                    is_string($var)) {
                            echo 
                    "<hr><p style=\"background-color:#FF8888\">".$var."<p><hr>";
                        } else {
                            echo 
                    "<hr><p style=\"background-color:#FF8888\">Inhalt der var:<br>".$var."<p><hr>";
                        }
                    }

                    //check_fields function
                    function check_fileds($array) {

                        foreach(
                    $array as $key => $value) {
                            
                    //check typ
                            
                    switch( $value['type'] )
                            {
                                case 
                    TYPE_SESSION:
                                    if( isset(
                    $_SESSION[$value['name']]) )
                                        
                    $var $_SESSION[$value['name']];
                                break;
                                
                                case 
                    TYPE_POST:
                                    if( isset(
                    $_POST[$value['name']]) )
                                        
                    $var $_POST[$value['name']];
                                break;
                                
                                case 
                    TYPE_GET:
                                    if( isset(
                    $_GET[$value['name']]) )
                                        
                    $var $_GET[$value['name']];
                                break;
                                
                                case 
                    TYPE_AUTO:
                                    if( isset(
                    $_REQUEST[$value['name']]) )
                                        
                    $var $_REQUEST[$value['name']];
                                break;
                            }
                            
                            
                    //extra if 
                            
                    if(isset($value['extra'])) {
                                
                    $extra substr($value['extra'], 1, -1);
                                
                    $input $var;
                            }

                            
                    //check if the var exist
                            
                    if(!$var) {
                                
                    $novar[] = array($value['name'],$value['msg']);
                            }elseif(isset(
                    $value['extra'])) {
                                
                    $extra substr($value['extra'], 1, -1);
                                
                    $input $var;
                                if(!eval(
                    $extra)) {
                                    if(isset(
                    $value['extra2'])) {
                                        
                    $extra2 $value['extra2'];
                                    } else {
                                        
                    $extra2 $value['msg'];
                                    }
                                    
                    $novar[] = array($value['name'],$extra2);
                                }
                            }
                        }

                        
                    //build array
                        
                    if(isset($novar)) {
                            foreach (
                    $novar as $key => $value) {
                                
                    // hier könnte man evtl noch was machen
                            
                    }
                        }

                        return 
                    $novar;
                    }

                    if(isset(
                    $_POST['submit'])){
                        echo 
                    "abgeschickt";
                        
                    //check array
                        
                    $array = array();
                        
                    $array[] = array('name'     =>     'feld1',
                                        
                    'msg'        =>    'hey feld1 eingeben',
                                        
                    'typ'        =>    TYPE_POST,
                                        
                    'extra'        =>    '($input == "3")',
                                        
                    'extra2'    =>    'hey extra bed nicht erfüllt');

                        
                    $array[] = array('name'     =>     'feld2',
                                        
                    'msg'        =>    'hey feld2 eingeben',
                                        
                    'typ'        =>    TYPE_POST,
                                        
                    'extra'        =>    '($input == "2")',
                                        
                    'extra2'    =>    'hey extra bed nicht erfüllt');

                        
                    $array[] = array('name'     =>     'feld3',
                                        
                    'msg'        =>    'hey feld3 eingeben',
                                        
                    'typ'        =>    TYPE_POST);

                        
                    $array[] = array('name'     =>     'feld4',
                                        
                    'msg'        =>    'hey feld4 eingeben',
                                        
                    'typ'        =>    TYPE_POST);

                        
                    vd(check_fileds($array));

                    ?>
                    thx Mukraker

                    Kommentar


                    • #11
                      mich interessiert mehr der eval()ed code.

                      Kommentar


                      • #12
                        wie kann man sich den eval(ed) code ausgeben lassen =?
                        thx Mukraker

                        Kommentar


                        • #13
                          so wie es aus sieht, wenn dein Code wahrheitsgemäss gepostet ist ,
                          gibt es kein eval, der Fehler sollte in Zeile 1 sein, welche mit meinem
                          Lösungsvorschlag zu beheben sollte, hat denn nicht geholfen ?

                          Kommentar


                          • #14
                            eval() problem immer noch

                            1. das $PHP_SELF habe ich geändert
                            -> immer noch das selbe Problem

                            2. sry, aber eval() ist im code drin.
                            thx Mukraker

                            Kommentar


                            • #15
                              Ah ja, ich blinde

                              OK tippt mal: die($extra); vor der Zeile if(!eval($extra)) ein und poste die Ausgabe mal

                              Kommentar

                              Lädt...
                              X