PHP Ein Registrierungsformular erstellen! Aber wie?

RageComics

Cadet 2nd Year
Registriert
Juli 2012
Beiträge
31
Hallo.

Ich versuche seit letzter Zeit ein Browsergame zu erstellen.

Ich habe nun das Aussehen von der Startseite fertig (http://rage-comics.bplaced.net/US), jedoch

krieg ich es noch nicht hin, dass das Registrierungsformular auch funktioniert.

Ich habe schon unzählige YT Tutorials angeschaut und viele Forum Threads gelesen, aber

irgendwie will es einfach nicht gehen.

Ausserdem krieg ich die Register Tabelle nicht neben das Bild im body.


Hier mal die Codes von:

index.php:

HTML:
<!doctype html>

 <html>

  <head>

   <title>Unternehmens Simulator</title>
   <meta name="author" content="***********">
   <meta name="description" content="">
   <meta name="keywords" content="">
   <meta name="date" content="2012-18-05">

   <link href=style.css type=text/css rel=stylesheet>

   <link rel="shortcut icon" type="image/x-icon" href="images/icon.ico"/>

  </head>

  <body>



   <table align=center>

    <tr>

     <td>

      <div>

       <header>



       </header>


       <nav>

        <ul>

         <a href=index.php><li>Home</li></a>

         <a href=news.html><li>News</li></a>

         <a href=faq.html><li>FAQ</li></a>




        </ul>

       </nav>


     <br />
     <br />
     <form class="login">
     <table>
     <tr>
     <td>Username:</td>
     <td><input name="nickname" maxlength="16" type="text"/></td>
     <td><input type="button" name="login" value="Login" /></td>
     </tr>
     <tr>
     <td>Passwort:</td>
     <td><input name="pw" maxlength="20" type="text"/></td>
     <td><a href="">Passwort vergessen</a>
     </tr>
     </table>
     </form>
     <br />
     <br />
     <br />
     <img src="images/body.png"  width="471" style="border: 0px;" />
   <h3><u>Registrierung</u></h3>




     <form action="register.php" method="post">
	 <table width="30%" class="register">
	    <tr>
	       <td>
	       Username:
           </td>
           <td>
           <input name="username" maxlength="16" type="text"/>
	       </td>
	    </tr>
	    <tr>
	       <td>
             E-Mail:
             </td>
             <td>
             <input name="email" type="text"/>
           </td>
           </tr>
           <tr>
           <td>
	         E-Mail Wiederholung:
             </td>
             <td>
              <input name="remail" type="text"/>
	       </td>
	    </tr>
	    <tr>
	       <td>
	         Passwort:
             </td>
             <td>
              <input name="pw" maxlength="20" type="text"/>
	       </td>
	       </tr>
	       <tr>
	       <td>
	         Passwort Wiederholung:
             </td>
             <td>
             <input name="rpw" maxlength="20" type="text"/>
	       </td>
	    </tr>
		<tr>
		<td colspan="2">
		<br />
		<br />
		  <center><input type="submit" value="Registrieren" /></center>
		  </td>
		  </tr>
	 </table>
     </form>
     <br />
     <br />


	 </div>

    </td>

   </tr>

  </table>
 </body>

</html>

und die register.php:

PHP:
<?php
include("index.php");
$username = $_POST['username'];
$email = $_POST['email'];
$remail = $_POST['remail'];
$pw = $_POST['pw'];
$rpw = $_POST['rpw'];

      if(isset($username) OR $username != '' AND $pw == $rpw AND $email == $remail) {

		   echo "Sie haben sich erfolgreich registriert!";
       }
       else {
           echo "Bitte f&uuml;llen Sie das Formular korrekt aus!";
       }
?>

Wär echt nett, wenn ihr euch das mal durchschauen könntet.
 
Zuletzt bearbeitet:
Was soll denn mit $username passieren?? :)
Code:
if(isset($username) OR $username != '' AND $pw == $rpw AND $email == $remail) {
 echo "Sie haben sich erfolgreich registriert!";
} else {
 echo "Bitte f&uuml;llen Sie das Formular korrekt aus!";
}
Kannst natürlich auch $$ und || verwenden, ich schreibe es lieber :D
 
das soll in eine mysql datenbank eingetragen werden aber erstmal muss das ja richtig mit der if Abfrage funktionieren

So du kannst es jetzt mal bei dir ausprobieren, ich hab es hochgeladen bei mir geht es aber immer noch nicht

rage-comics.bplaced.net/US
 
Zuletzt bearbeitet:
<img src="images/body.png" width="471" style="margin-left: 30px;margin-right: 30px;float: left;border: 0px;">

das sollte dein bild neben das Formular bringen
 
Gibt es in der ersten <form> überhaupt ein Submit?
<input type="submit" value="Submit" />

Aber eventuell klappt das auch so, teste das doch erstmal mit GET bevor du es mit Post machst.

PHP:
<form action="form_action.asp" method="get">
  First name: <input type="text" name="fname" /><br />
  Last name: <input type="text" name="lname" /><br />
  <input type="submit" value="Submit" />
</form>

Dann siehst du oben in der URL Zeile ob er die Werte übernommen hat.
Du solltest schon mal schauen an welcher Position im Code die Variablen nicht übernommen werden. Oder ob der Fehler erst später bei der Übernahme in die Datenbank auftritt.
 
Zuletzt bearbeitet:
Wenn du vielleicht eine Fehlermeldung nennen könntest dann wäre das bestimmt hilfreich. :)

Und das Formular für die Registrierung ist nicht neben dem Bild, weil das Bild nicht innerhalb der selben Table im selben <tr> ist.
 
<img src="images/body.png" width="471" style="margin-left: 30px;margin-right: 30px;float: left;border: 0px;">

das sollte dein bild neben das Formular bringen

hey danke hat super geklappt ;)
 
Ah.. Da steht $_POST[''], übergibt dein Formular die Daten als POST?
Sonst verändere noch mal Zeile 81
-> <form action="register.php">
-> <form action="register.php" method="post">

Sonst muss ich mir gleich mal alles in eigene Dokumente kopieren und schauen :)
 
so ich hab method post reingemacht, aber es geht noch nicht ganz. wenn z.B. email und remail ungleich sind, sagt er trotzdem das man sich registriert hat. soll ich die dateien mal als .zip irgendwo hochladen?
 
Ja, der Fehler war das OR bei mir.. mach mal ein AND daraus und probiere es noch mal. Es muss ja geprüft werden ob $username gesetzt ist UND ob es NICHT leer ist UND der rest.. Dann sollte es auch besser funktionieren.
PHP:
if(isset($username) AND $username != '' AND $pw == $rpw AND $email == $remail) {
 echo "Sie haben sich erfolgreich registriert!";
} else {
 echo "Bitte f&uuml;llen Sie das Formular korrekt aus!";
}
 
Vielen dank hat super geklappt
Ergänzung ()

eine einzige frage noch: wie kann ich es machen das die Meldung nicht unten rechts ausserhalb des Borders sondern unter dem Registrierungsfeld erscheint?
 
Indem du sie dort auch hinschreibst ;)
Stichwort: Templates.
 
Du solltest übrigens mal deine gesamte Struktur noch einmal überdenken.

Tabellen sind AUSSCHLIESSLICH für tabellarische Inhalte gedacht. Tabellen sind KEIN Gestaltungselement. Tabellen versauen dir den Tag, Tabellen versauen Suchmaschinen den Tag, Tabellen versauen Screenreadern den Tag, Tabellen erzeugen übermäßig viel Traffic und Tabellen lassen sich ganz beschissen stylen.

Passwortfelder NIE NIE NIE im Klartext befüllen. Wozu ist denn deiner Meinung nach <input type="password"> entwickelt worden?

Für winzig kleine Projekte kann man mal wild HTML und PHP mischen und für jeden Prozess eine eigene .php - Datei anlegen. Sobald dein Projekt auch nur einen Klecks Komplexität zeigt kommst du um eine anständige Seiten- und Inhaltsverwaltung über Datenbank & Includes nicht drumrum, genauso wenig wie um eine deutliche Trennung von Logik und Darstellung.

Abstände baut man nicht mit <br>-Spam. Der erzwungene Zeilenumbruch macht in Fließtexten durchaus mal Sinn, hat aber im Hinblick auf das gesamte Layout einfach gar nichts verloren. Was passiert wohl, wenn jemand in seinem Browser eine größere oder kleinere Schriftart/größe einstellt als du vorgesehen hast? Dein ganzes Layout kollabiert.

DOCTYPE schreibt man groß.

Die Definition des Character Encodings sollte immer mitgeliefert werden, sonst kommt beim Kunden teilweise nur Grütze an.

meta name="date" gibts nicht

<table> hat kein attribut align mehr in HTML5 (eigentlich hat quasi nix mehr solche Attribute). Dasselbe gilt für width und was du noch so alles verwendest

<ul><a><li>...</li></a></ul> ist falsch. <ul> und <ol> dürfen als Kinder NUR <li> haben

<img> MUSS ein alt-Attribut haben, und sei es nur alt=""

<center> gibts nicht in HTML5

Und noch etwas zum rein rechtlichen: Niemand kann vom Frontend aus klar darauf schließen, dass du noch keine Registrierungsdaten speicherst. Überleg dir schonmal Impressum, Disclaimer und Datenschutzvereinbarung. Die wirst du alle rechtssicher brauchen, bevor du auch nur ein Bit in die Datenbank schreibst.

Und noch etwas zum Thema Sicherheit: Hast du dir schon Gedanken über SQL Injections und Passwortverschlüsselung gemacht? Wenn du dich in den Bereichen nicht gut auskennst kannst du mit so einem Projekt nicht nur dich in Teufels Küche bringen sondern deine gesamte Spielerschaft gleich mit.
 
Zurück
Oben