Code-Schnipsel QUERY STRING eval fff: Unterschied zwischen den Versionen

Aus Weimarnetz Wiki
Zur Navigation springen Zur Suche springen
K (→‎Code: noch besser)
(→‎Code: besser)
Zeile 1: Zeile 1:
 
=Code=
 
=Code=
* Kompliziert:
 
 
<pre>
 
<pre>
fkt_read_browsers_query_string () {     # SENS: read and sanitize/convert query-string to useable vars
+
fkt_eval_query_string () {
                                        #      (e.g. ?A=1&B=2 changes to correct setted vars A and B)     
+
      local SANITIZED="$(echo $QUERY_STRING | sed -e 's/[^%&=+-:@-_a-z~]//g')"
                                        # ARG1: string, query string
+
      local ESCAPED="$(httpd -d $SANITIZED | sed -e 's/=/="/g' -e 's/&/";/g ' -e 's/$/"/g')"
        local QUERY_STRING="$1"
 
                                                                                                                                   
 
        test -z "$QUERY_STRING" return 1
 
 
 
        IFS=\&
 
        set ${QUERY_STRING%%[^%&=+-:@-_a-z~]*}
 
        unset IFS
 
        VARS="$(echo $* | sed -e 's/ /"; /g' -e 's/=/="/g' -e 's/$/"/g')"
 
        VARS="$(httpd -d "$VARS")"
 
                                                 
 
        eval "$VARS"                                                               
 
}
 
</pre>
 
  
* Einfach:
+
      eval $ESCAPED
<pre>
 
fkt_eval_query_string () {
 
        eval $(httpd -d "$QUERY_STRING" | sed -e 's/[^%&=+-:@-_a-z~]//g' -e 's/=/="/g' -e 's/&/"; /g ' -e 's/$/"/g')
 
 
}
 
}
 
</pre>
 
</pre>

Version vom 26. Juli 2007, 13:58 Uhr

Code

fkt_eval_query_string () {
       local SANITIZED="$(echo $QUERY_STRING | sed -e 's/[^%&=+-:@-_a-z~]//g')"
       local ESCAPED="$(httpd -d $SANITIZED | sed -e 's/=/="/g' -e 's/&/";/g ' -e 's/$/"/g')"

       eval $ESCAPED
}

Erklaerung

  • aus dieser URL (POST/GET egal)
    • NODE=512&HOST=silber2&LOCA=Steinbr&GPSX=11.3313&GPSY=50.9934&MAIL=bla%40blub.org&PHON=0110%2F123456&MENU=expert&GOGO=%DCbernehmen"
  • wird ein
    • NODE="512"; HOST="silber2"; LOCA="Steinbr"; GPSX="11.3313"; GPSY="50.9934"; MAIL="bla@blub.org"; PHON="0110/123456"; MENU="expert"; GOGO="Übernehmen"
  • mit eval wird das ganze dann uebernommen und steht zur Verfuegung