PHP und HTML



  • hi!

    Warum funktioniert das nicht???

    <body>
    
    <?
    
    print("Das Ergebnis ist: ".$feld*$feld."!");
    
    ?>
    
    <form method="post" action="index.php" name="test">
    
    <input type="text" size="10" name="feld">
    <input type="submit" value="ok">
    
    </form>
    
    </body>
    

    Will einfach nur eine Zahl einlesen, und diese dann mit sich selbst multipliziert ausgeben.

    Gruß Friggel



  • print("Das Ergebnis ist: ".$_GET['feld']*$_GET['feld']."!");
    


  • Sorry aber das funktioniert trotzdem nicht! Versteh das nicht, weil normalerweise kann man ja auch einfach $feld schreiben, es sind ja nur Variablen.

    Siehst du einen anderen Fehler???

    gruß Friggel



  • Habs jetzt grad nochmal mit method=get versucht, da macht er es wie ich es will.

    An was kann das liegen, will post verwenden, weil nicht jeder sehen soll was passiert.

    Gruß Friggel



  • oh mann, hatte wohl bissl zu großzügig gelesen: statt $_GET brauchst du natürlich $_POST

    Du kannst nicht einfach $feld verwenden, da bei neueren PHP-Versionen register_globals defaultmäßig auf off steht 😉



  • Kann man die register_globals aktivieren???

    Oder was gibt es für ein Vorteil, wenn ich meine Variablen mit $_Get bzw. POST ansprechen muss???

    Soll das irgendwie sicherer sein oder wie???

    Gruß Friggel



  • Hallo,

    Kann man die register_globals aktivieren???

    Ja, in der php.ini register_globals auf on setzen...

    Soll das irgendwie sicherer sein oder wie???

    Das hat den Vorteil, dass nur noch Variablen ausgewertet werden, die explizit mit GET bzw. POST abgefragt werden. Wenn möglich, würde ich register_globals immer auf on stellen. Den großen Nachteil sehe ich dabei nicht.



  • Wenn du alle Variable vor der Benutzung sauber initialisiert gibt es keine Probleme - wenn möglich solltest du aber (damit dein Script nachher auch überall läuft) register_globals auf off lassen.

    Angenommen du bastelst dir einen Login (user und pass werden per formular übertragen)

    <?php
     if($user == 'blubber' && $pass == 'geheim') $login = true;
     if($login) {
      // Ausgabe von Sachen die nicht jeder sehen soll
     }
    ?>
    

    Jetzt kannst du an die Inhalte dranzukommen, indem du das Script entweder über index.php?user=blubber&pass=geheim aufrufst - aber auch über index.php?login=1!
    Wenn du darauf achtest, dass der Variablen immer explizit ein Wert zugewiesen wird gibt es keine Probleme, aber sonst stellt das unter Umständen ein großes Sicherheitsrisiko dar ⚠



  • CarstenJ schrieb:

    Wenn möglich, würde ich register_globals immer auf on stellen.

    Ich meinte natürlich off..... 😮



  • Hatte mich schon gewundert - passte irgendwie nicht so ganz in mein Bild von dir 🤡



  • Danke für eure posts!

    Ich werde die register_globals dann auf off lassen. Muss man zwar mehr schreiben, wenn man eine Variable auswerten will, aber dann bin ich sicher dass das Script überall läuft, und dass is ja nach euren Antworten auch sicherer.

    Danke, Gruß Friggel


Anmelden zum Antworten