Entwickler-Ecke

Programmiersprachen (Server) - Post an gleiche Seite


FinnO - Di 15.09.09 19:40
Titel: Post an gleiche Seite
Hi Leute,

für ein Registrierungsskript, möchte ich von einer Seite in sie selbst posten. Klingt komisch, darum Code:



Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
if (!isset($_Post["Username"]))  //bleibt immer unset
  {  
  echo(                                              //Ausgabe der Registrierungsseite. Später zur Übersicht Separat machen.
     
  "<form action="register.php" method="post" name="Registration">    //register.php ist die gleiche seite. 
    <label>Gewünschter Benutzername</label>
      <input name="Username" type="text" />
      <label>Gewünschtes Passwort</label>
      <input name="Pass" type="password" /> 
      <label>Passwort wiederholen</label>
    <input name="RepeatPass" type="password" /> 
    <input name="Button" type="submit" value="Registrieren" />
  </form>");
  
    if (isset($_GET["Error"]))                                  //Ausgabe eventueller Fehlermeldungen
    {
      $Error = $_GET["Error"];
      echo("<font color="#FF0000">".$Error."</font>");
    }
  }
  else
  {
    $Username     = $_POST["Username"];
    $Pass       = MD5( $_POST["Pass"]);
    $RepeatPass   = MD5( $_POST["RepeatPass"]);
    
    if ( (!isset($Pass)) || (!isset($RepeatPass)) )                       //Passwortverifikation
    {
      unset($Pass);
      unset($Username);
      unset($RepeatPass);      
      header("location: register.php?Error="Sie haben kein gültiges Passwort angegeben"");  

    }
    elseif ($Pass != $RepeatPass)
    {      
      unset($Pass);
      unset($Username);
      unset($RepeatPass);      
      header("location: register.php?Error="Passwörter stimmen nicht überein!"");

    }
    
    echo("Willkommen ".$Username."!");                              //Begrüßungsseite...
    
  }


Die Formatierung sieht normal anders aus ;) liegt am Forum.

Folgendes Problem: Irgendwie kommen die an die gleiche seite Geposteten Dinge nicht an. Geht das überhaupt, und wenn ja, wie?

Moderiert von user profile iconNarses: CS- durch Code-Tags ersetzt.


jaenicke - Mi 16.09.09 07:06

Du solltest dir dringend einen besseren PHP-Editor zulegen, mit entsprechender Code-Formatierung würde dir der Fehler nämlich direkt ins Gesicht springen. ;-)
Ich markiere es einfach einmal:

Quelltext
1:
2:
3:
4:
5:
if (!isset($_Post["Username"]))  //bleibt immer unset
  {  
  echo(                                              //Ausgabe der Registrierungsseite. Später zur Übersicht Separat machen.
     
  "<form action="register.php" method="post" name="Registration">    //register.php ist die gleiche seite.
Du musst dann als PHP-Stringzeichen einfache Anführungszeichen nehmen, da so dein String bereits im HTML-Quelltext endet. ;-)

Wie gesagt: Nimm einen richtigen PHP-Editor, dann passiert so etwas auch nicht...
Ich selbst benutze diesen:
http://www.mpsoftware.dk/phpdesigner.php
Freeware Version (viele fehlende Funktionen): http://download.cnet.com/PHP-Designer-2007-Personal/3000-10248_4-10575026.html

Es gibt aber auch genug komplett kostenlose:
Einmal Aptana Studio [http://aptana.com/studio], da gibt es ein PHP Plugin, wobei Aptana Studio selbst auch als Plugin für Eclipse zur Verfügung steht, und dann Eclipse selbst [http://www.eclipse.org/].


jakobwenzel - Mi 16.09.09 08:25

Oder wenn du im Delphiforum bleiben willst: http://www.delphi-forum.de/viewtopic.php?p=321112


FinnO - Mi 16.09.09 18:01

;) also solche Fehler mache ich wirklich nicht :P Ich denke mal, das PHPbb nimmt die backslashs raus oder so, keine Ahnung, auf jeden Fall wird der Code usw. Fehlerfrei interpretiert wie auch immer.

Fakt ist. Die an die eigene Seite geposteten Daten kommen nicht an. Hat jemand Lösungsideen?


Christian V. - So 20.09.09 13:49

es heisst $_POST, nicht $_Post


FinnO - So 20.09.09 14:54

*tilt*