PHProxy 0.5b2 - new POST

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

  • PHProxy 0.5b2 - new POST

    Hallo,

    hab mal mehr oder weniger zum Spaß das oben genannte Script "installiert" und bin dieses nun am erweitern.

    Soweit geht alles bis auf eins und zwar:
    Ich möchte das Formular um ein Feld erweitern.

    Eig kein Problem, Feld selbst ins Formular hinzugefügt.
    Wenn man sich nun den Quelltext anschaut ist (soweit ich das sehe) auch alles richtig.

    Nur ich kann das letzte Feld, also meins, nicht per POST abrufen imgegensatz zu de anderen also $_POST['...']

    Nun meine Frage, kennt jemand das Script und kann mir jemand helfen?
    http://prox.webhop.net

  • #2
    Re: PHProxy 0.5b2 - new POST

    Original geschrieben von AllOnline
    Nur ich kann das letzte Feld, also meins, nicht per POST abrufen imgegensatz zu de anderen also $_POST['...']
    Steht dein neues Formularfeld innerhalb der <form>-Tags?
    Werden die POST-Daten irgendwo gefiltert, also unerwünschtes gelöscht?

    Kommentar


    • #3
      Hallo,

      erstmal danke für deine antwort.
      Zu deiner ersten Frage, schau lieber selber in den Quelltext aber eig. hab ich dies oben schon erläutert.

      Zudem anderen; das weiß ich ja eben nicht, deswegen frag ich doch!

      Kommentar


      • #4
        Keiner eine Idee?
        Soll ich den ganzen Quelltext hochladen?
        Per ICQ könnt ihr mich auch erreichen um den Code zuhaben?!

        Kommentar


        • #5
          Naja, für Otto-Normal-PHPler ist es schwer, wenn man das Script nicht kennt. Hellsehen können wir nicht. Du müsstest also selber mal ein bisschen debuggen und ggf. Codeauszüge(!) posten. Ich denke mal, dass hier niemand das komplette Script durchsehen möchte...

          Kommentar


          • #6
            da ich aber nicht weiß was wichtig ist leider ka

            PHP-Code:
            function set_post_vars($array$parent_key null)
            {
                
            $temp = array();

                foreach (
            $array as $key => $value)
                {
                    
            $key = isset($parent_key) ? sprintf('%s[%s]'$parent_key
            urlencode($key)) : urlencode($key);
                    if (
            is_array($value))
                    {
                        
            $temp array_merge($tempset_post_vars($value$key));
                    }
                    else
                    {
                        
            $temp[$key] = urlencode($value);
                    }
                }
                
                return 
            $temp;
            }

            function 
            set_post_files($array$parent_key null)
            {
                
            $temp = array();

                foreach (
            $array as $key => $value)
                {
                    
            $key = isset($parent_key) ? sprintf('%s[%s]'$parent_key,
             
            urlencode($key)) : urlencode($key);
                    if (
            is_array($value))
                    {
                        
            $temp array_merge_recursive($tempset_post_files($value$key));
                    }
                    else if (
            preg_match('#^([^\[\]]+)\[(name|type|tmp_name)\]#'
            $key$m))
                    {
                        
            $temp[str_replace($m[0], $m[1], $key)][$m[2]] = $value;
                    }
                }

                return 
            $temp;

            PHP-Code:
            /
            // SET FLAGS
            //

            if (isset($_POST[$_config['url_var_name']]) && !isset($_GET[$_config['url_var_name']]) && 
            isset(
            $_POST[$_config['flags_var_name']]))
            {    
                foreach (
            $_flags as $flag_name => $flag_value)
                {
                
                    
            $_iflags .= isset($_POST[$_config['flags_var_name']][$flag_name]) ? (string)
            (int)(bool)
            $_POST[$_config['flags_var_name']][$flag_name] : ($_frozen_flags[$flag_name] ? $flag_value '0');
                }
                
                
            $_iflags base_convert(($_iflags != '' $_iflags '0'), 216);
            }
            else if (isset(
            $_GET[$_config['flags_var_name']]) && 
            !isset(
            $_GET[$_config['get_form_name']]) && ctype_alnum($_GET[$_config['flags_var_name']]))
            {
                
            $_iflags $_GET[$_config['flags_var_name']];
            }
            else if (isset(
            $_COOKIE['flags']) && ctype_alnum($_COOKIE['flags']))
            {
                
            $_iflags $_COOKIE['flags'];
            }

            if (
            $_iflags !== '')
            {
                
            $_set_cookie[] = add_cookie('flags'$_iflagstime()+2419200);
                
            $_iflags str_pad(base_convert($_iflags162), count($_flags), '0'STR_PAD_LEFT);
                
            $i 0;

                foreach (
            $_flags as $flag_name => $flag_value)
                {
                    
            $_flags[$flag_name] = $_frozen_flags[$flag_name] ? $flag_value : (int)(bool)$_iflags{$i};
                    
            $i++;
                }
            }

            [...]

            //
            // STRIP SLASHES FROM GPC IF NECESSARY
            //

            if ($_system['stripslashes'])
            {
                function 
            _stripslashes($value)
                {
                    return 
            is_array($value) ? array_map('_stripslashes'$value) : 
            (
            is_string($value) ? stripslashes($value) : $value);
                }
                
                
            $_GET    _stripslashes($_GET);
                
            $_POST   _stripslashes($_POST);
                
            $_COOKIE _stripslashes($_COOKIE);
            }

            [...]

            if (isset(
            $_POST[$_config['url_var_name']]) && !isset($_GET[$_config['url_var_name']]))
            {   
                
            header('Location: ' $_script_url '?' $_config['url_var_name'] .
             
            '=' encode_url($_POST[$_config['url_var_name']]) . '&' 
            $_config['flags_var_name'] . '=' base_convert($_iflags216));
                exit(
            0);

            PHP-Code:
             if ($_flags['include_form'] && !isset($_GET['nf']))
                {
                    
            $_url_form      '<div style="...">'
                                    
            '<form method="post" action="' $_script_url '">'
                                    
            ' <label for="____' $_config['url_var_name'] . 
            '"><a href="' $_url '">Address</a>:</label> <input id="____' .
             
            $_config['url_var_name'] . '" type="text" size="80" name="' 
            $_config['url_var_name'] . '" value="' $_url '" /> '

                            
            ' <input type="submit" name="go" value="Go" />'
                                    
            ' [go: <a href="' $_script_url '?' .
             
            $_config['url_var_name'] . '=' encode_url($_url_parts['prev_dir']) .
            ">up one dir</a>, <a href="' 
            $_script_base '">main page</a>]'

                            
            ' <a href="#" onclick=" document.getElementById(\'massage\').style.display = \'inline\';"> 
            Options </a>'                        
                            
            '</div><div id="massage" style="..."> 
            '
            ;
                            
                    foreach (
            $_flags as $flag_name => $flag_value)
                    {
                   
             if (!
            $_frozen_flags[$flag_name])
                        {
                            
            $_url_form .= '<label><input type="checkbox" name="' $_config['flags_var_name'] .
             
            '[' $flag_name ']"' . ($flag_value ' checked="checked"' '') . ' /> '
             
            $_labels[$flag_name][0] . '</label> ';
                        }
                    }


                    
            $_url_form .= '<label><select name="proxy" size="1">'.readproxy($_url_form).'</select> Proxy </label> 
            <a href="#" onclick=" document.getElementById(\'massage
            \').style.display = \'none\';"> 
            Close </a></div></form></div>'
            ;

                    
            $_response_body preg_replace('#\<\s*body(.*?)\>#si'
            "$0\n$_url_form$_response_body1);


                }
            }

            $_response_keys['content-disposition'] = 'Content-Disposition';
            $_response_headers['content-disposition'][0] = empty($_content_disp) ? 
            (
            $_content_type == 'application/octet_stream' 
            'attachment' 'inline') . '; filename="' $_url_parts['file'] . '"' $_content_disp;
            $_response_keys['content-length'] = 'Content-Length';
            $_response_headers['content-length'][0] = strlen($_response_body);    
            $_response_headers   array_filter($_response_headers);
            $_response_keys      array_filter($_response_keys);

            header(array_shift($_response_keys));
            array_shift($_response_headers);

            foreach (
            $_response_headers as $name => $array)
            {
                foreach (
            $array as $value)
                {
                    
            header($_response_keys[$name] . ': ' $valuefalse);
                }
            }

            echo 
            $_response_body
            Zuletzt geändert von AllOnline; 21.04.2009, 11:32.

            Kommentar


            • #7
              Und die Postingregeln hast du auch nicht beachtet...

              ich verschieb mal nach Projekthilfe.

              Kommentar


              • #8
                OffTopic:

                In wie fern halt ich mich nicht an die Regeln?


                Wie soll ich den betroffenen den Code zukommen lassen?
                Sind schon nur ausschnitte!

                http://sourceforge.net/projects/poxy/

                oben etwas angepasst!
                Zuletzt geändert von AllOnline; 21.04.2009, 11:35.

                Kommentar


                • #9
                  Meine Güte, das kann doch nicht so schwer sein. Suche im Script die Stelle, an der du deine POST-Variable brauchst. Dort machst du var_dump($_POST) und schaust was da ist. Wenns fehlt, suchst du ab dort rückwärts nach unsets.

                  Wenn dir das alles zu kompliziert ist, solltest du vielleicht kein Script von der Stange nehmen sondern erstmal selber eins schreiben. Hinterher weißt du bescheid.

                  Kommentar


                  • #10
                    Generell habe ich schon mehrere Sachen geschrieben.

                    PHP-Code:
                     if (isset($_response_headers['content-length']))     {    
                         
                    $_content_length $_response_headers['content-length'][0];    
                         unset(
                    $_response_headers['content-length'], 
                    $_response_keys['content-length']);     }     if 
                    (isset(
                    $_response_headers['content-disposition']))     {  
                        
                       
                    $_content_disp $_response_headers['content-disposition'][0];     
                        unset(
                    $_response_headers['content-disposition'], $_response_keys['content-disposition']);     }     if 
                    (isset(
                    $_response_headers['set-cookie']) && 
                    $_flags['accept_cookies'])     {         foreach ($_response_headers['set-cookie'] as $cookie)         {    
                             
                    $name $value $expires $path $domain $secure 
                    $expires_time '';   
                               
                    preg_match('#^\s*([^=;,\s]*)\s*=?
                    \s*([^;]*)#'
                    ,  $cookie$match) && list(, $name$value) = 
                    $match;             preg_match('#;\s*expires\s*=\s*([^;]*)#i',   
                      
                    $cookie$match) && list(, $expires)      = $match;             
                    preg_match('#;\s*path\s*=\s*([^;,\s]*)#i',      $cookie$match) && 
                    list(, 
                    $path)         = $match;             preg_match 
                    PHP-Code:
                     unset($data); 
                    in php wird leider alles gespeichert :-(

                    unset finde ich 8mal und die haben ja schon ihren sinn, wie kann ich den meine benötige POST "abspeichern"? eig ja ganz am anfang der seite vor jedem unset und in ne andere var speichern?! geht aber net :-(

                    Könnte sich nciht doch einer den source angucken (oben link)?

                    aber nirgends wird das nen post gelöscht?!
                    und auch kein $_REQUEST

                    direkt am anfang
                    array(0) { }
                    Zuletzt geändert von AllOnline; 21.04.2009, 19:02.

                    Kommentar


                    • #11
                      Jetzt geh doch bitte endlich mal logisch vor ...

                      Erst mal var_dump($_POST) ganz an den Scriptanfang - ist der Wert vorhanden, ja oder nein?

                      Wenn ja - dann weiter "runter" mit der Kontrollausgabe - bis er irgendwann nicht mehr da ist.

                      Wenn nein - dann wird's Zeit, sich das Formular noch mal genauer anzuschauen.


                      Und dass das error_reporting auf E_ALL steht, dürfen wir ja wohl hoffentlich voraussetzen?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        direkt am anfang

                        quote: array(0) { }

                        Errorreport ist natürlich auf all


                        mit
                        PHP-Code:
                        var_dump($_REQUEST); 
                        kommt unter den vielen cookies der beuschten unterseiten noch folgende punkte:

                        PHP-Code:
                        ["q"]=> string(7"uggc://" 
                        ["hl"]=> string(3"2f3" 
                        ["flags"]=> string(3"2f3" 

                        "__utma"
                        ]=> string(64"251912392.2433809709681262000.1239539267.1239539267.1239655085.2" 
                        ["__utmz"]=> string(70"251912392.1239539267.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" 
                        ["wt_eid"]=> string(19"2123961245000475798" 
                        ["_csuid"]=> string(16"4911c0004cb6a06b" 
                        ["wt_l_v"]=> string(10"1240321505" 
                        ["wt_sid"]=> string(19"2124032138100845151" 
                        ["mc"]=> string(1"1" 
                        Die ersten drei ehören immer zum phproxy

                        aber das formular bietet ja viele felder, wenn ihr die seite besucht seht ihr es ja, das formular ist zudem richtig (quelltext)

                        http://prox.webhop.net
                        Zuletzt geändert von AllOnline; 21.04.2009, 19:22.

                        Kommentar


                        • #13
                          Original geschrieben von AllOnline
                          direkt am anfang

                          quote: array(0) { }
                          Na schau mal an - da ist wohl insgesamt nicht viel mit POST-Parametern, hm?


                          Und wenn man sich das ganze mal kurz anschaut (ich sag's noch mal: Debuggen, und zwar mit ein bisschen Verstand, kann Wunder wirken ...), dann sieht man auch, woran's liegt:

                          Dein Formular zielt auf /index.php - und wenn ich dahin einen Request absetze, dann zeigt mir FireBug, dass als Antwort ein 302 Found plus Location-Header kommt, der auf
                          http://prox.webhop.net/index.php?q=aHR0cDovL2V4YW1wbGUuY29tLw%3D%3D&hl=3ef
                          umleitet.

                          Und nach so einer Umleitung ist nix mehr mit POST, weil der Client diese Adresse daraufhin per GET anfordert ...

                          Also findest du jetzt mal raus, warum dein Script diese Umleitung vornimmt. (Das kryptische im Query-Part des URLs scheint ja sowas wie 'ne Session-ID zu sein.)
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Das wird gemacht weil es ein webproxy ist und die "unterseite" kein post empfangen darf, die sie nichts angeht.

                            deswegen wird das gemacht!

                            aber wie komm ich dann an meine post gesendet proxy?
                            zudem kommen die anderen post kommenja auch an die passende stelle, wird ja nur nie mit $_POST angesprochen.

                            Wahrscheinlich eher mit header location ect nur wie?
                            da kenn ich mich eben net aus!

                            Kommentar


                            • #15
                              Original geschrieben von AllOnline
                              Das wird gemacht weil es ein webproxy ist und die "unterseite" kein post empfangen darf, die sie nichts angeht.

                              deswegen wird das gemacht!
                              OMFG ...

                              aber wie komm ich dann an meine post gesendet proxy?
                              Überleg dir doch vielleicht erst mal, wie du an einen Duden kommst.

                              zudem kommen die anderen post kommenja auch an die passende stelle, wird ja nur nie mit $_POST angesprochen.

                              Wahrscheinlich eher mit header location ect nur wie?
                              da kenn ich mich eben net aus!
                              Falls obiges "Erklärungen" darstellen soll, die das Problem besser nachvollziehbar machen ... sorry, Nope - mir ist immer weniger klar, was du a) eigentlich vorhast, und wo b) jetzt dein Problem liegt.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X