URL filtern

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

  • URL filtern

    Guten Tag, ich habe ein kleines Problem mit einer Funktion:

    PHP-Code:
      function setnewurl($oldurl,$link_variable,$array_string)
        {
          if (
    strpos($oldurl,"index.php")===FALSE)
            {
              
    $result_url=$oldurl."index.php";
            }
          if (
    strpos($oldurl,"?")===FALSE)
            {
              
    $result_url=$oldurl."?".$link_variable."=";
            }
          else
            {
              if (
    strpos($oldurl,$link_variable."=")===FALSE)
                {
                  
    $result_url=$oldurl."&".$link_variable."=";
                }
              else
                {
                  if (
    count($array_string)>0)
                    {
                      foreach(
    $array_string as $searchstring)
                        {
                          if (
    strpos($oldurl,$searchstring)>0)
                            {
                              
    $result_url substr($oldurl,0,strpos($oldurl,"&".$searchstring)).
                              
    substr($oldurl,(strpos($oldurl,"&".$searchstring)+1+strlen($searchstring)))
                              .
    "&".$link_variable."=";
                            }
                        }
                    }
                }
            }
          return 
    $result_url;
        } 
    Diese Funktion soll unter Beibehaltung bestimmter übergebenen Werte andere Variablen hinzufügen.

    der Aufruf erfolgt hiermit:

    PHP-Code:
    $new_url2=setnewurl($old_url,"res",array("res=800","res=1024","res=1280")); 
    und
    PHP-Code:
    $new_url3=setnewurl($old_url,"lang",array("lang=de","lang=en")); 
    $old_url=$REQUEST_URI;

    Das Problem ist, dass es manchmal funktioniert und manchmal eben nicht. Dann wird aus
    PHP-Code:
    http://localhost/index.php?res=800&lang=de 
    PHP-Code:
    http://localhost/hp?res=800&lang=de&res=1024 
    gemacht dabei sollte
    PHP-Code:
    http://localhost/index.php?lang=de&res=1024 
    herauskommen. Wie schon gesagt, manchmal macht er es und manchmal eben nicht. Wenn ich dann noch eine Filterfunktion drüber lege, die mir bestimmte Switch-Variablen rauszieht, macht er meine Funktion gar nicht mehr und schreibt nur
    PHP-Code:
    http://localhost/index.php?res=1024 

  • #2
    wenn hier weiter leider Rat weiß, hab ich ne andere Frage:

    gibt es ne Funktion, mit der ich herausbekomme, welche Variablen übergeben worden sind, mit isset() wird mir das zu komplex, jede einzelne Möglichkeit abzufragen abzufragen?

    Kommentar


    • #3
      hab jetzt, ehrlichgesagt, wenig zeit, um mich in deinen code reinzulesen (noch 1 oder 2 umbrüche, und er wäre gut formatiert), kann dir aber evtl ein paar nützliche funktionen empfehlen:

      parse_url()
      output_add_rewrite_var() und output_reset_rewrite_vars()

      evtl. mal in $_SERVER["argv"] reinschauen...

      Kommentar


      • #4
        Ich habe diese Funktion zum Laufen bewegen können. Das mit dem Formatieren möchte ich nicht jedesmal meine Aufläsung dazu ändern, ich hoffte einfach, dass es so hinpasst. Deine Vorschläge werde ich mir mal zu gemüte führen. Nur irgendwie kann er mir nicht die $action-Variable rausfiltern :-( die ich später auch mit auswerten möchte.

        Kommentar


        • #5
          Original geschrieben von DannyL
          gibt es ne Funktion, mit der ich herausbekomme, welche Variablen übergeben worden sind, mit isset() wird mir das zu komplex, jede einzelne Möglichkeit abzufragen abzufragen?
          Mit array_keys und $_GET.
          hopka.net!

          Kommentar

          Lädt...
          X