EnricoL: Parameterübergabe klappt nicht

Hallo,

das Problem mit dem gleichzeitigen Wechseln von Textfarbe und Grafik bei
OnMouseOver bzw. OnMouseOut habe ich nun so gelöst, in dem ich einfach
die verschiedenen Zustände im Browser wiedergegeben und über ein
Screenshot-Programm zugeschnitten habe.

Somit habe ich faktisch nur noch eine Grafik, die sowohl den Text als auch
die Grafik enthält, die nun bei OnMouseOver bzw. OnMouseOut gewechselt wird.

Was jetzt nicht funktioniert, ist das korrekte Auslesen des übergebenen
Parameters:

<?php

$Aktion = $_REQUEST['$Aktion'];

if (!isset($Aktion))
      {
         ...
      }
      else
         echo $Aktion;

echo '<a href="' . $_SERVER["PHP_SELF"] . '?Aktion='Titel_suchen'">';
      echo '<img src="' . $Link_1 . '" width="40" height="20" border="0" name="Titel_suchen">';
      echo '</a>';

...

?>

In der Statusleiste des Browsers wird der Link korrekt angezeigt, aber
nicht ausgelesen.

Obiger Code dient nur dem Austesten der Funktionaltität oder, wie im
meinen Fall, der Nicht-Funktionalität.

Ist die Abfrage über $_REQUEST falsch oder woran könnte es liegen ?

Same procedure as in the last posting:

Vielen lieben Dank für Eure Unterstützung.

Gruß
EnricoL

  1. Was jetzt nicht funktioniert, ist das korrekte Auslesen des übergebenen
    Parameters:

    echo '<a href="' . $_SERVER["PHP_SELF"] . '?Aktion='Titel_suchen'">';

    $Aktion = $_REQUEST['$Aktion'];

    Das ist hoffentlich ein Tippfehler und nicht die Auswirkung der völlig nutzlosen PHP-Eigenart, in Zeichenketten Variablen auszuwerten. Dein Parameter liegt in $_REQUEST['Aktion'], nicht $_REQUEST['$Aktion'].

    Ich find's auch besser, $_GET zu verwenden, wenn man URL-Parameter erwartet, aber das ist eher kosmetischer Natur.

    echo $Aktion;

    Falls diese Zeile nicht der Fehlersuche dient: Von außen kommende Daten vor der Ausgabe immer, immer, immer durch htmlspecialchars() oder htmlentities() jagen. Im Momemt ist es ein Leichtes, deiner Seite beliebigen HTML- oder Javascript-Code unterzujubeln, einfach durch Übergabe im Parametet Aktion.

    1. Hallo

      Ich find's auch besser, $_GET zu verwenden, wenn man URL-Parameter erwartet, aber das ist eher kosmetischer Natur.

      Das sehe ich Persönlich anders.

      Ich würde immer $_GET oder $_POST verwenden, da ein ausenstehender der den Quellcode list nie auf den ersten blick sehen kann von wo der Wert kommen solte. Außer es wird Dokumentiert.
      Wenn man selber etwas größer skripte schreibt, und ein Jahr später was ändern möchte muss man auch erstmal überlgen woher kommt die ganzen Werte überhaupt.

      Was aber überflüssig ist, wenn man gleich $_GET oder $_POST verwendet.

      Also mein Fazit:

      Es erhöt die Lesbarkeit von Quelltext und spart Zeilen da man nix Dokumentieren muss.

    2. Hello,

      echo '<a href="' . $_SERVER["PHP_SELF"] . '?Aktion='Titel_suchen'">';

      Falls diese Zeile nicht der Fehlersuche dient: Von außen kommende Daten vor der Ausgabe immer, immer, immer durch htmlspecialchars() oder htmlentities() jagen. Im Momemt ist es ein Leichtes, deiner Seite beliebigen HTML- oder Javascript-Code unterzujubeln, einfach durch Übergabe im Parametet Aktion.

      echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?Aktion='Titel_suchen'">';

      so wäre es besser, wenn man nicht Gefahr laufen will, dass z.B. Formulare später entführt werden können. Durch die Eigenschaft "Path Info" des Apachen kann man in $_SERVER['PHP_SELF'] etwas "unterjubeln"

      Liebe Grüße

      Tom

      --
      Coming Back soon

  2. Hellihello

      
    $Aktion = $_REQUEST['Aktion'];  
    
    

    man beachte das Fehlende "$". Dann:

      
    var_dump ($_REQUEST);  
    var_dump ($Aktion;  
    
    

    und

      
    <?php if (!isset($Aktion)): ;?>  
    <p> some html</p>  
    <?php else:;?>  
    <a href="<?php echo $_SERVER["PHP_SELF"];?>Aktion="Titel_suchen">  
    <img src="<?php echo $Link_1;?> width="40" height="20" border="0" name="Titel_suchen">  
    <?php endif;?>  
    
    

    Dank und Gruß,

    frankx

    --
    tryin to multitain  - Globus = Planet != Welt
    1. Hellihello

      Hallo frankx,

      ich kriege das nicht gebacken und versteh nur noch Bahnhof :-(

      Gruß
      EnricoL

      1. Hellihello

        ich kriege das nicht gebacken und versteh nur noch Bahnhof :-(

        Du weißt was ein Array() ist?

        wieso gibst du nicht var_dump($_REQUEST); mal an?

        Dank und Gruß,

        frankx

        --
        tryin to multitain  - Globus = Planet != Welt
      2. Hi,

        ich kriege das nicht gebacken und versteh nur noch Bahnhof :-(

        Dann fang kleiner an, und erlerne *Grundlagen* - denn da scheint's noch massiv zu fehlen.

        MfG ChrisB