Link weiterleiten bei register_globals=off

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

  • Link weiterleiten bei register_globals=off

    Hallo Leute,

    ich habe schon alles durchsucht und gegoogelt, aber habe immer noch nichts passendes gefunden. Da ich noch PHP Anfänger bin, hat mir da immer jemand geholfen, doch der ist leider verschollen?

    Bin von 1und1 zu Strato und dort funktioniert ein redirect nicht mehr, da die dort register_globals=off haben.

    Ich habe es auch schon mit dem extract probiert (so wie man mir bei strato geraten hat), aber hat nicht funktioniert.

    Das Problem ist, dass immer auf die "==0" geleitet wird und die anderen Ziele "==1" usw. nicht berücksichtigt werden. Man kommt immer auf "==0"
    Die Ziele werden übrigens per Frameset übergeben.

    Am liebsten würde ich das kleine script ja einfach neu schreiben, aber wie?

    Hier ist mal das Ding:

    PHP-Code:
    <html> 
    <head> 
    <title>Redirect</title> 

    <!-- Linkweiterleitung CODE START --> 


    <?php 

    if($ziel==0){ 
    $goto="http://www.domain.blabla"

    if(
    $ziel==1){ 
    $goto="http://www.domain2.blabla"

    if(
    $ziel==2){ 
    $goto="http://www.domain3.blabla"


    ?> 

    <!-- Linkweiterleitung CODE ENDE --> 


    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
    <meta http-equiv="refresh" content="1; URL=javascript:location.replace('<?php echo $goto ?>')"> 

    <link rel="stylesheet" href="myCSS.css" type="text/css"> 
    </head>

    Mir würde ja schon der Ansatz reichen um das blöde $goto zu ändern.

    Ich würde mich über jede Hilfe riesig freuen.

    Vielen Dank schon mal und beste Grüße

    Knut
    PHP muss i lernen

  • #2
    Ich denke mal $ziel ist eine $_GET (oder auch $_POST) variable, die mit register_globals natürlich auch in $ziel gespeichert wird. Benutze das globale Array mit dem Index "ziel", und da steht das gleiche als wenn dus mit register_globals benutzen würdest.
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      Hier lesen für register_globals, ansonsten header mit Location:.
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        http://www.peterkropff.de/site/tutor...er_globals.php

        dass du nichts gefunden hast, glaube ich dir nicht...

        Kommentar


        • #5
          Hallo,

          vielen Dank schon mal für Eure superschnellen Antworten.

          @ArSeN
          Meinst Du so?:

          <?php

          if($ziel==0){
          $_GET="http://www.domain.blabla";
          }

          Sorry, aber ich würde nicht fragen, wenn ich davon Ahnung hätte.


          @ tontechniker und TobiaZ
          nichts gefunden stimmt ja nicht. Ich habe sehr viel gefunden, aber ich komme damit wirklich nicht klar. Bin schon ganz wuschig. Bin wirklich noch superanfänger. Hab schon ein Buch über PHP, aber da steht auch nicht drinn was ich mache muss.

          Ich möchte ja nur eine Alternative für das $goto.

          Also wenn in dem Link folgendes abgefragt wird :

          http://www.domain.de/frameset.php?ziel=1

          dann soll die URL aus dem Script :
          if($ziel==1){
          $goto="http://www.domain2.blabla";
          }

          neu im Frameset geöffnet werden.

          Die Variable $ziel sollte weiter so lauten (zur not kann ich Die auch überall ändern).

          Habt Ihr da bitte eine Idee?

          Vielen Dank und beste Grüße

          Knut
          PHP muss i lernen

          Kommentar


          • #6
            schalt dein error-reporting ein, so wie es in den regeln steht, dann erhältst du auch eine fehlermeldung, diese gilt es zu beseitigen und dein script läuft.

            Kommentar


            • #7
              PHP-Code:
              <?php
              if($_GET['ziel'] == 0){
              $goto "http://www.domain.blabla";
              }
              Davon abgesehen das das enorm ungeschickt und total hirnrissig ist (das Frameset übrigens nochmehr) sind das wirklich Grundlagen!
              Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

              Kommentar


              • #8
                @TobiaZ
                vielen Dank für den Rat und Sorry (Ich weiss das das Nichtigkeiten für Euch sind). Und ich weiss ja auch, dass ich erst alles durchsuchen soll. Habe mir das auch in den Regeln durchgelesen.
                Übrigens kommt das (error-reporting) net an den Dateianfang, sondern an den Scriptanfang. So hat es jedenfalls erst bei mir funktioniert!
                Der Fehler liegt bei der Variabel "ziel"

                @ArSeN
                Hab das auch so geändert, aber es funktioniert trotzdem nicht! Ich weiss auch das es hirnrissig ist. Wie gesagt, das hat mir jemand gemacht, deshalb möchte ich es ja auch modernisieren.

                Ich werde mal weiter suchen und Eure Zeit nicht mehr in Anspruch nehmen. Versuche mal eine andere Lösung zu gehen, ohne frameset und PHP Weiterleitung. Das ist wirklich unsinn!

                Vielen Lieben Dank trotzdem für Euren Versuch der Hilfe.

                Beste Grüße

                Knut
                PHP muss i lernen

                Kommentar


                • #9
                  Übrigens kommt das (error-reporting) net an den Dateianfang, sondern an den Scriptanfang. So hat es jedenfalls erst bei mir funktioniert!
                  Versuch das nächste mal die PHP-Funktionen in PHP-Tags zu packen.

                  Hab das auch so geändert, aber es funktioniert trotzdem nicht!
                  Ist erstens keine Problembeschreibung und zweitens zeig mal deinen Code.

                  Kommentar


                  • #10
                    Hallo TobiaZ,

                    achso, das mit den in PHP Tags packen stimmt dann natürlich


                    Also.. der geänderte Code würde dann so aussehen:

                    PHP-Code:
                    <html>
                    <head>
                    <title>Redirect</title>

                    <!-- Linkweiterleitung CODE START -->

                    <?php

                    if($_GET['ziel'] == 0){
                    $goto "http://www.domain.de/blabla0";
                    }
                    if(
                    $_GET['ziel'] == 1){
                    $goto "http://www.domain.de/blabla1";
                    }

                    ?>

                    <!-- Linkweiterleitung CODE ENDE -->


                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                    <meta http-equiv="refresh" content="1; URL=javascript:location.replace('<?php echo $goto ?>')">

                    </head>


                    Das funktioniert auch so, aber es wird im Frameset immer blabla0 angezeigt und nicht die blabla1

                    Ich habe das so übrigens mit dem error gemacht und es wird in diesem Beispiel kein Fehler angezeigt!

                    Es klappt nur nicht mit den verschiedenen URLs.
                    Man kommt halt immer auf die "==0"

                    Ich weiss nicht weiter.

                    Beste Grüße

                    Knut
                    PHP muss i lernen

                    Kommentar


                    • #11
                      Wie lautet denn der genaue Link, mit dem du blabla1 zu erreichen versuchst? Kann mir kaum vorstellen was da nicht funktionieren soll.
                      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                      Kommentar


                      • #12
                        Hallo ArSeN,

                        so sieht das aus :

                        PHP-Code:
                        <html>
                        <head>
                        <title>Redirect</title>

                        <!-- Linkweiterleitung CODE START -->

                        <?php

                        if($_GET['ziel'] == 0){
                        $goto "http://www.snowtrex.de/?code=1534&design=279&pop=no&subcode=startseite";
                        }
                        if(
                        $_GET['ziel'] == 1){
                        $goto "http://www.snowtrex.de/index/index.php?nav=625&sei_id=2&code=1534&design=21&subcode=arlberg";
                        }

                        ?>

                        <!-- Linkweiterleitung CODE ENDE -->


                        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                        <meta http-equiv="refresh" content="1; URL=javascript:location.replace('<?php echo $goto ?>')">

                        <link rel="stylesheet" href="myCSS.css" type="text/css">
                        </head>

                        <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
                        <table width="100%" border="0" height="100%" cellpadding="0" cellspacing="0">
                          <tr>
                            <td align="center" valign="middle"><span class="ArialRed12">Datenbank wird 
                              geladen</span><br>
                              <br>
                              <span class="ArialGrey12">Bitte um etwas Geduld</span></td>
                          </tr>
                        </table>
                        </body>
                        </html>

                        Das sind aber nur die ersten 2 von ca. 75 redirect-Links.

                        Das ist jetzt so, wie ich es machen sollte.

                        Wenn du die Links direct im Browser aufrufst, dann funktionieren die wie gewünscht. So bald die aber über das frameset und PHP aufgerufen werden, kommst Du immer auf die Startseite also auf die "==0"

                        Keine Ahnung mehr.

                        Beste Grüße

                        Knut
                        PHP muss i lernen

                        Kommentar


                        • #13
                          Ich hab aber nach dem Link gefragt, den du aufrufst, um zu
                          PHP-Code:
                          if($_GET['ziel'] == 1
                          zu kommen, und nicht nach dem, wohin du weitergeleitet wirst.
                          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                          Kommentar


                          • #14
                            Achso..

                            BSP:
                            http://www.domain.de/frameset.php?ziel=1

                            Das läuft dann so, es wird das frameset aufgerufen und darin kommt im mainframe dann der aufruf zur redirect.php (dort ist das script und die deeplinks)

                            Das frameset sieht dann so aus :

                            PHP-Code:
                            <FRAMESET ROWS="100%" COLS="*,785,*" BORDER=0> 
                              <FRAME NAME="li" SRC="links.html" SCROLLING="NO" MARGINHEIGHT=0 MARGINWIDTH=0 frameborder="NO">
                              <frameset rows="217,*" frameborder="NO" border="0" framespacing="0" cols="*"> 
                                <frame name="topFrame" scrolling="NO" noresize src="oben.html" frameborder="NO" marginwidth="0" marginheight="0" >
                                <FRAME NAME="start" src="redirect.php?ziel=<?php echo $ziel ?>" SCROLLING="AUTO" MARGINHEIGHT=0 MARGINWIDTH=0 NORESIZE frameborder="NO">
                              </frameset>
                              <FRAME NAME="re" SRC="rechts.html" SCROLLING="NO" MARGINWIDTH=0 NORESIZE frameborder="NO" marginheight="0">
                            </FRAMESET>
                            Alles wirklich sehr durcheinander, deshalb würde ich es am liebsten neu machen, so dass ich es auch verstehe und nicht auf andere angewiesen bin.

                            Gruss

                            Knut
                            PHP muss i lernen

                            Kommentar


                            • #15
                              Ja siehste, dann musst du da natürlich aus dem
                              PHP-Code:
                              <?php echo $ziel ?>
                              auchnoch ein
                              PHP-Code:
                              <?php echo $_GET['ziel'?>
                              machen.
                              Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                              Kommentar

                              Lädt...
                              X