Mehrere Referer Abfragen möglich?

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

  • Mehrere Referer Abfragen möglich?

    <?
    $referer = getenv(HTTP_REFERER);
    if(!eregi("http://www.domain.com/index.php3",$referer)) {
    Header("Location:http://www.domain.com"); break; }
    ?>

    Angenommen ich möchte zusätzlich auch http://www.domain.com/index2.php3 mit einbeziehen - wie mach ich das?

    <?
    $referer = getenv(HTTP_REFERER);
    if(!eregi("http://www.domain.com/index.php3",$referer))
    if(!eregi("http://www.domain.com/index2.php3",$referer)) {
    Header("Location:http://www.domain.com"); break; }
    ?>

    funzt nicht....

  • #2
    <?
    $referer = getenv(HTTP_REFERER);
    if(!eregi("http://www\\.domain\\.com/index\\.php3",$referer)) && (!eregi("http://www\\.domain\\.com/index2\\.php3",$referer)) {
    Header("Location:http://www.domain.com"); exit; }
    ?>

    CAT Music Files

    Kommentar


    • #3
      Danke, aber irgendwie will er nicht (Parse error). Entschuldige meine Unwissen, hab wenig-keine Ahnung in PHP

      [Editiert von baerenwurm am 30-10-2001 um 11:16]

      Kommentar


      • #4
        Nimm allerdings besser die Funktion stristr() statt ereg.

        CAT Music Files

        Kommentar


        • #5
          auch mit der anderen Funktion kommt der parse error in der 3. Zeile

          Kommentar


          • #6
            if(!eregi("http://www\\.domain\\.com/index\\.php3",$referer) && !eregi("http://www\\.domain\\.com/index2\\.php3",$referer)) {

            entweder du klammerst die einzelnen Komponenten der if-Abfrag im gesamten oder du läßt die überflüssigen Klammern einfach weg. Auf jeden Fall mußt du alle Klammer auch wieder schließen oder alle die geschlossen werden, müssen auch geöffnet werden. In der Zeile hatte eine Klammer ( gefehlt. Hab jetzt mal die inneren Klammern weggelassen...

            Kommentar


            • #7
              Hab noch ein weiteres Problem:

              Auf domain.com gibt es mehrere Unterverzeichnisse

              www.domain.com/a/
              www.domain.com/b/ etc.

              In diesen Unterverzeichnissen liegt jeweils eine index.php4, welche sich zusammensetzt aus diversen php Dateien unter www.domain.com/
              (wie z.B. www.domain.com/menu.php3 & www.domain.com/main.php3 etc.)

              Angenommen ich bin unter www.domain.com/a/index.php4. In einem Menü (www.domain.com/menu.php3) wähle ich einen Link aus zu www.domain/b/index.php4. Diese soll in einem dem gleichen Fenster geöffnet werden.

              Jegliche Versuche das in den Referer aufzunehmen sind gescheitert, es linkt dann immer wieder zu www.domain.com zurück.

              Kommentar


              • #8
                was willst du denn machen? Und wie sieht dein jetztiger Code dazu aus?

                Kommentar


                • #9
                  Also...mein jetziger Code sieht folgendermaßen aus:

                  <?
                  $referer = getenv(HTTP_REFERER);
                  if(!eregi("http://www.prima-bella.de",$referer) && !eregi("http://www.primabella.de",$referer) && !eregi("http://www.prima-bella.com",$referer) && !eregi("../index2.php3",$referer)) {
                  Header("Location:http://www.prima-bella.com"); break; }
                  ?>

                  - index2.php3 ist die Index-Seite der verschiedenen Tussis
                  - die primabella Domains zeigen alle auf den selben Server
                  - http://www.prima-bella.com/spears/index.php4 ist z.B ein Model...in einem Menü auf den Seiten des jeweiligen Models kann man andere Models auswählen.

                  --> Man sollte jedoch nur zu den Models gelangen, wenn man von der Startseite (www.prima-bella.com) zu der Index-Seite (www.prima-bella.com/index2.php3) gelangte. Falls man ein Model ausgewählt hat, sollte man aber auch von diesem mittels des Menüs zu den anderen kommen können (ohne, daß man wieder auf http://www.prima-bella.com kommt). Jedoch sollte man nicht z.B. http://www.prima-bella.com/spears/index.php4 direkt im Browser eingeben können.

                  Falls Du dir die Seite anschauen willst, sei gewarnt vor den tausenden, libidinösen Seiten, die beim Betreten jener aufpoppen.


                  [Editiert von baerenwurm am 30-10-2001 um 13:46]

                  Kommentar


                  • #10
                    Poppen

                    jaja, wie recht du hast. Zum "normalen" Poppen von diversen Seiten kommen auch noch haufenweise JavaScript-Fehler-Popups dazu. Also nee, wirklich

                    egal, wie dem auch sei...

                    hmm, ich würde es vielleicht so einrichten, daß du über die index2.php3 die verschiedenen Menüs aufrufst und dort als erstes prüfst, ob der Referrer "http://www.prima-bella.com/index2.php3" ist und dann das anzeigst, sonst umleiten auf Startseite.
                    Die Menüs der Wonneproppen auf andere Proppen würde ich einfach über die index2.php3 laufen lassen, d.h. bei Wahl eines Models wird index2.php3 mit einem Parameter (am Besten noch mit Formular-Post-Methode) aufgerufen und diese Seite weiß dann, daß gleich eine Weiterleitung stattfinden soll.

                    Was meinst du? Ist das das, was du willst? Sonst habe ich dich, trotz eingehender Studie deiner Seite , noch nicht verstanden...

                    Kommentar


                    • #11
                      Das hört sich alles sehr schlau und für meine Absicht passend an, danke. Doch dieses Form-Mail-Dings...wie mach ich das dann mit den Parametern und so?

                      P.S: Eine ähnliche Überlegung hatte ich auch schon angestellt, nur war diese zu allgemein und aufgrund fehlender Fachkenntnisse von PHP (UND HTML !) wußt ich's nicht umzusetzen.

                      Kommentar


                      • #12
                        also, die Abfrage nach dem Referer hast du ja schon von oben. die also auf jedes Subdomain-Index-Skript einsetzen.
                        Dann unten die Select-Box:
                        Code:
                        <form action="/index2.php3" method="post" target="top">
                        <input type="hidden" name="submenu" value="yes">
                        <select name="wahl">
                        	<option value="model1_verzeichnis">Model 1</option>
                        	<option value="model2_verzeichnis">Model 2</option>
                        </select>
                        
                        und in der index2.php3:
                        
                        <?
                        if ($HTTP_POST_VARS["submenu"]=="yes") {  // index2.php3 wird NICHT von Startseite aus aufgerufen, sondern über Menü
                        	$ziel="http://www.prima-bella.com/".$HTTP_POST_VARS["wahl"]."/index.php4";
                        	header("Location: ".$ziel);
                        	exit();
                        	}
                        else {
                        	// hier dann die normale Start-index2.php3-Seite
                        	}
                        ?>
                        durch das Verwenden von $HTTP_POST_VARS kannst du halbwegs sicher kontrollieren, ob die Daten auch per POST-Methode, also von einem Formular gekommen sind und nicht an die URL angehängt wurden. Zur weiteren Sicherheit könntest du dann wiederum den Referer checken. Dann muß schon einiges gefakte werden, damit man an die Seiten rankommt.
                        Okay? Viel Spaß damit

                        Kommentar


                        • #13
                          Ok, erstmal vielen Dank!
                          Hab nur noch ein paar Fragen dazu:

                          - <form action="/index2.php3" method="post" target="top">
                          <input type="hidden" name="submenu" value="yes">
                          <select name="wahl">
                          <option value="model1_verzeichnis">Model 1</option>
                          <option value="model2_verzeichnis">Model 2</option>
                          </select>

                          muß wohl in die menu.php3!?

                          - Der nachfolgende Teil in die Index2.php3 und wo "// hier dann die normale Start-index2.php3-Seite" steht muß das HTML Zeugs der Index2.php3 Seite rein?

                          Kommentar


                          • #14
                            jep, richtig!

                            das Formular (HTML) muß wohl in die Datei, welche bei dir unten links die Auswahlliste produziert. menu.php3 hört sich genau so an, wie wenn die dafür zuständig wäre.

                            und bei der index2.php3 sollte der PHP-Code oben rein, welcher dann so endet:
                            Code:
                            <?
                            if ($HTTP_POST_VARS["submenu"]=="yes") {  // index2.php3 wird NICHT von Startseite aus aufgerufen, sondern über Menü
                            	$ziel="http://www.prima-bella.com/".$HTTP_POST_VARS["wahl"]."/index.php4";
                            	header("Location: ".$ziel);
                            	exit();
                            	}
                            else { ?>
                            
                            hier dann die normale Start-index2.php3-Seite stehen, 
                            also einfach den HTML-CODE hier einfügen. 
                            Die else-Anweisung von PHP schließt dann wieder unten, 
                            also hier als nächste Zeile.
                            
                            <?	}  ?>

                            Kommentar


                            • #15
                              Ok, sehr vielen Dank für Deine Mühe!!!

                              Kommentar

                              Lädt...
                              X