Tanja1990: php-problem mit opera 12.11

hallo,

ich bin im bereich php ein newbie.

folgendens script funktioniert unter opera 12.11 nicht richtig:

  
<html>  
<head>  
<title>abc</title>  
</head>  
<body>  
<p>Die Webseite</p>  
<?php  
$url = $_GET['url'];  
echo "$url\n";  
?>  
<p>ist nicht mehr Teil dieses Internet-Angebots.</p>  
<form action="<?=$url?>" target="_blank">  
<input type="submit" value="ok" onclick="javascript:history.go(-1)">  
<input type="button" value="Zurück" onclick="javascript:history.go(-1)">  
</form>  
</body>  
</html>  

durch drücken des buttons "ok" soll sich in einem neuem fenster, die in der variable "url" gespeicherte webseite öffnen. gleichzeitig soll im aktuellen fenster die voherige seite aufgerufen werden.

beim ie und beim ff klappt dies wie gewünscht. nur opera 12.11 zickt rum und öffnet das neue fenster nicht, geht aber eine seite zurück.

kann mir einer helfen?

gruß tanja

  1. Moin

    zuersteinmal hat dies nichts mit PHP zu tun. Zum 2. warum kopierst du um?

      
    <?php  
    $url = $_GET['url'];  
    echo "$url\n";  
    ?>  
    
    

    nutze doch bitte direkt die Variable

      
    <form action="<?php echo $_GET['url']?>" target="_blank">  
    
    

    Nun zu deinem eigentlichen Problem. In Opera kann man die Auswertung des HTML-Target-Attributes verhindern. Somit würde das Formular ins selbe Fenster geöffnet, was du gleich darauf mit javascript:history.go(-1) wieder zurückkehren lässt.

    Was willst du denn eigentlich erreichen?

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    ### Henry L. Mencken ###
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ## Viktor Frankl ###
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
    1. Tach!

      nutze doch bitte direkt die Variable

      <form action="<?php echo $_GET['url']?>" target="_blank">

        
      htmlspecialchars() fehlt noch, sonst ist das kaputt.  
        
      ~~~php
        
      <form action="<?php echo htmlspecialchars($_GET['url']) ?>" target="_blank">  
      
      

      dedlfix.

      1. Moin

        htmlspecialchars() fehlt noch, sonst ist das kaputt.

        <form action="<?php echo htmlspecialchars($_GET['url']) ?>" target="_blank">

          
        Ja natürlich... sorry  
          
        Gruß Bobby  
        
        -- 
        -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-  
        ### Henry L. Mencken ###  
        -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-  
        ## Viktor Frankl ###  
          
        ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
        
      2. Was bewirkt htmlspecialchars()?

        1. Moin

          Was bewirkt htmlspecialchars()?

          Es maskiert Sonderzeichen, damit XSS nicht möglich ist! Das ist sehr wichtig!!

          Stell dir vor du rufst deine Hinweis.php folgendermaßen auf:

          hinweis.php?url=url="><iframe src=http://example.com/>

          Probiers am besten aus. Hier könnte Javascript o.ä. eingeschleusst werden.

          Gruß Bobby

          --
          -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
          ### Henry L. Mencken ###
          -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
          ## Viktor Frankl ###
          ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
    2. Was willst du denn eigentlich erreichen?

      ich bastel gerade an meiner hp

      bei beim anklicken von externernen links auf der seite beispiel.html soll die seite hinweis.php im gleichen fenster aufgerufen werden.

      <a href="hinweis.php?url=http://www.example.org">externe seite</a>

      auf der hinweis.php soll nach klick auf ok die domain www.example.org in einem neuem fenster geöffnet werden und die hinweis.php geht zurück zur seite beispiel.html

      ich hoffe es wird klar.

      1. Moin

        Was willst du denn eigentlich erreichen?

        ich bastel gerade an meiner hp

        ähm... ja... wich dachte nicht das du Kuchen backen möchtest...

        bei beim anklicken von externernen links auf der seite beispiel.html soll die seite hinweis.php im gleichen fenster aufgerufen werden.

        <a href="hinweis.php?url=http://www.example.org">externe seite</a>

        auf der hinweis.php soll nach klick auf ok die domain www.example.org in einem neuem fenster geöffnet werden und die hinweis.php geht zurück zur seite beispiel.html

        ich hoffe es wird klar.

        Ok, also ist dies der Code der hinweis.php. Ein Neues Fenster wirst du wohl per Javascript aufrufen müssen. Denn in Opera, lässt sich das target unterdrücken.

        Entsprechende Scripte gibt es zu tausenden.

        Gruß Bobby

        --
        -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
        ### Henry L. Mencken ###
        -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
        ## Viktor Frankl ###
        ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
        1. Ok, also ist dies der Code der hinweis.php. Ein Neues Fenster wirst du wohl per Javascript aufrufen müssen. Denn in Opera, lässt sich das target unterdrücken.

          kann ich denn mit javascript auf die variable url (hinweis.php?url=http://www.example.org/) zugreifen um sie zur weiterleitung zu nutzen?

          Gruß Tanja

          1. Moin

            Du schreibst ein kleines Script, das ein Fenster öffnet in Javascript (da gibt es tausende im Netz)

            Infos hier: http://de.selfhtml.org/javascript/objekte/window.htm#open@title=http://de.selfhtml.org/javascript/objekte/window.htm#open

              
            <script type="text/javascript">  
            function FensterOeffnen (Adresse) {  
                MeinFenster = window.open(Adresse, "Zweitfenster", "width=300,height=400,left=100,top=200");  
                MeinFenster.focus();  
            }  
            </script>  
              
            <form action="javascript:void(0)" >  
                <input type="submit" value="ok" onclick="FensterOeffnen(<?php echo htmlentities($url)?>),javascript:history.go(-1)">  
                <input type="button" value="Zurück" onclick="javascript:history.go(-1)">  
            </form>  
              
            
            

            Gruß Bobby

            --
            -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
            ### Henry L. Mencken ###
            -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
            ## Viktor Frankl ###
            ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
            1. Moin

              <input type="submit" value="ok" onclick="FensterOeffnen(<?php echo htmlentities($url)?>),javascript:history.go(-1)">

                
              So passierts beim Schnellschrieben.  
                
              Richtig natürlich:  
                
              ~~~html
                
              <input type="submit" value="ok" onclick="FensterOeffnen('<?php echo htmlentities($_GET['url'])?>');javascript:history.go(-1)">  
              
              

              Gruß Bobby

              --
              -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
              ### Henry L. Mencken ###
              -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
              ## Viktor Frankl ###
              ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
            2. verstanden, jetzt komme ich allein weiter.

              vielen lieben dank für deine hilfe bobby! :-)

              gruß tanja