Was sucht das # da?

  • Hey,
    stellt euch folgendes vor. Ihr habt zwei PHP-Dateien. In der einen kann man sich registrieren, diese Datei nennt sich register.php. Dort befindet sich sowohl das Formular als auch die Auswertung des Formulars. Ich habe das action-Attribut also einfach auf "#" gesetzt. Wenn bei der Auswertung alles gut gelaufen ist, wird weitergeleitet auf index.php?success=2. Aber irgendwie steht dann im Browser immer ...index.php?success=2#. Wie kann ich das ändern? O.o


    Mit freundlichen Grüßen,
    Philipp E.

  • Action ist relativ zum akutellen Pfad. Also wird eben ein '#' an den Link angehängt. (Genauso, wie wenn du auf einen Link mit href="#" klickst)


    Ändern kannst du das, indem du action einfach weglässt.

  • Zitat von "Sören"

    Ändern kannst du das, indem du action einfach weglässt.


    ..., was aber invaliden Code zur Folge hätte.


    Ich habe mir bei selbst auswertenden Formularen immer damit geholfen,

    PHP
    <form action="<?php echo $_SERVER["PHP_SELF"] ?> method="get|post">"


    zu schreiben.


    Hoffe, ich konnte helfen,
    webmaster3000

  • *EDIT*

    Zitat von &quot;webmaster3000&quot;
    PHP
    <form action="<?php echo $_SERVER["PHP_SELF"] ?> method="get|post">"


    */EDIT*


    lieber

    Code
    <form action="" method="get|post">


    (leer lassen)
    --> sören's code soll manipulierbar sein, habe ich einst von einer Weisen Person geleehrt bekommen.


    Gruß
    Phip

  • Das ist webmasters Code.
    Manipulieren kann man das durch Anhängen von irgendwelchem Code an die URL. Besser $_SERVER['SCRIPT_FILENAME'] (oder SCRIPT_NAME, weiß ich grad nicht, musst ausprobieren) benutzen.


    Zitat von &quot;webmaster3000&quot;


    ..., was aber invaliden Code zur Folge hätte.


    Wusst ich net.

  • @all:


    Code
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php </span><span class="syntaxkeyword">echo </span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"PHP_SELF"</span><span class="syntaxkeyword">] </span><span class="syntaxdefault">?><br /></span></span>


    Was soll daran denn unsicher sein? O.o Was soll man denn da anhängen? Man kann doch eh nur GET-Sachen anhängen oder nicht?


    Aber trotzdem Danke...

  • Tada!


    Die gesamte $_SERVER Variable lässt sich manipulieren, also Finger weg davon.


    In diesem Fall ist die Lösung sogar noch einfacher: Warum überhaupt irgendetwas vom Server berechnen und ausgeben lassen wenn es leer auch klappt? Und im Zweifelsfall hat man selbst immer noch den Dateinamen.

  • Bei PHP_SELF kann man z.B. einfach zwischen der Dateiendung und dem Query-String HTML- und/oder JavaScript-Code unterbringen, welcher durch PHP_SELF unescaped ausgegeben und somit ausgeführt wird.

  • Zitat von &quot;Sören&quot;

    Bei PHP_SELF kann man z.B. einfach zwischen der Dateiendung und dem Query-String HTML- und/oder JavaScript-Code unterbringen, welcher durch PHP_SELF unescaped ausgegeben und somit ausgeführt wird.


    Moment. Warum sollte man Javascript-Code auf dem eigenen Client ausführen lassen, der als einziger betroffen wäre? Und selbst wenn, funktioniert das überhaupt - ich meine, Tags in Attributen? Das würde dann ja so oder so ähnlich aussehen:

    Code
    <form action="<script type=text/javascript></scirpt>" method="get|post">
  • Es geht dabei auch darum das man z.B. eine URL manipuliert, diese dann an eine 3. Person sendet und somit an Daten des Benutzers wie Cookies (Passwörter!), etc. zu kommen.


    Code
    <form action="<script type=text/javascript></scirpt>" method="get|post">


    Ich kann es aber auch anders manipulieren, indem ich z.B. noch " und > nutze:


    Code
    <form action=""><script type=text/javascript></scirpt><nixMehr" method="get|post">

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!