Dynamische Webseiten

Virtueller Campus Projekt, PHBern

StartseiteJavaScriptCSSJSPPHPMySQLDrucken

Schriftgrösse: kleiner - zurücksetzen - grösser

Online Anmeldung

Online Anmeldung ist eine häufig verwendete Datenbankapplikation, die im Internet in verschiedenen Formen zu finden ist. Die Daten werden in einem Anmeldeformular eingetragen, überprüft und anschliessend in eine Datenbank eingetragen. Der Benutzer erhält ein eMail als Bestätigung und kann auf der Teilnehmenliste kontrollieren, ob der Eintrag erfolgreich war. Im folgenden Beispiel werden folgende Komponenten verwendet:

  • mySQL Tabelle person mit den Feldern id, name, vorname, anrede, fach , sprache und email
  • Verbindung zur Datenbank: connect.php
  • Formular für Dateneingabe: anmeldung.php
  • Liste der bereits angemeldeten Personen: anmeldliste.php

  • Beispiel zeigen (anmeldung.php) // Code ohne Zeilennummerierung anzeigen

    Beispiel zeigen (anmeldliste.php) // Code ohne Zeilennummerierung anzeigen

    <?php //connect.inc.php
    mysql_connect('host''user''passwort');
    mysql_select_db("database") or die("Datenbank existiert nicht");
    ?>


    <?php //anmeldung.php 
    header("Cache-Control: no-cache, must-revalidate"); 
    $name "";
    $vorname "";
    $email "";
    $error_msg "";
    $msg "";

    // Abbrechen
    if (isset($_POST["cancel"]))
    {
      
    $insertGoTo "http://www.google.ch/"
      
    header(sprintf("Location: %s"$insertGoTo));
      exit;
    }

    // Teilnehmerliste
    if (isset($_POST["liste"]))
    {
      
    $insertGoTo "anmeldliste.php"
      
    header(sprintf("Location: %s"$insertGoTo));
        exit;
    }

    //Eingabe überprüfen und in Variablen speichern
    if (isset($_POST["submit"])) 
    {
      
    $name trim($_POST["tName"]);
      if (
    strlen($name) == 0)
        
    $error_msg "Es wurde kein Name eingegeben! ";
        
      
    $vorname trim($_POST["tVorname"]);
      if (
    strlen($vorname) == 0)
        
    $error_msg .= "Es wurde kein Vorname eingegeben! ";
        
      
    $anrede $_POST["rAnrede"];
      
    $fach $_POST["aSelect"];
      
    $sprache $_POST["rSprache"];
        
      
    $emailtrim($_POST["tMail"]);
      if (
    strlen($email) == 0)
         
    $error_msg .= "Es wurde keine Email-Adresse eingegeben!";
      else if (!
    preg_match ("/@/"$email))
         
    $error_msg .= "Die Email-Adresse ist ungültig!";    
          
      if(
    $error_msg)
      {
        
    $msg =  "Ihre Anmelung ist unvollständig: <br> ";
      }
      else
      {
        
    //Datenbankeintrag
          
    include("connect.inc.php");
        
    $sql ="INSERT INTO person (name,vorname,anrede,fach,sprache,email) VALUES".
                   
    "('$name','$vorname','$anrede','$fach','$sprache','$email')";
        
    $eintragen mysql_query($sql);
          
    $msg "Wir haben Ihre Anmeldung erhalten.";
          
    $name "";
        
    $vorname "";
        
    $email "";
        
     
    /*    //Anmeldung mit eMail bestätigen. Wegen Spam-Mail deaktiviert
        $recipient = $email;
        $subjekt = "Bestaetigung der Anmeldung";
        $header = "From: mailadress \n";
        $mail_body = "Datum: ".date("d.m.Y"). "\n";
        $mail_body .= "Name: " . $name . "\n";
        $mail_body .= "Vorname: " . $vorname . "\n";
        $mail_body .= "Email: " . $email . "\n";
        $mail_body .= "Fach: " . $fach . "\n";
        $mail_body .= "Sprache: " . $sprache . "\n\n";
        $mail_body .= "Wir haben Ihre Anmeldung erhalten.\n";
        mail($recipient, $subjekt , $mail_body, $header); 
     */  
      
    }
    }
    ?>
    <html>
    <head><title>anmeldung</title></head>
    <body >
    <p><font face="Arial, Helvetica, sans-serif" size="2">
    <p>Anmeldeformular.</p>
    <form name="form1" method="post" action="">
      <table width="64%"  border="0"  bgcolor="#F0F0F5">
        <tr >
          <td width="40%"><div align="right"></div></td>
          <td width="60%">&nbsp;</td>
        </tr>
        <tr>
          <td><div align="right">Name:</div></td>
          <td><input name="tName" type="text" value = "<?php echo $name?>" size="35"></td>
        </tr>
        <tr >
          <td><div align="right">Vorname:</div></td>
          <td><input name="tVorname" type="text" value = "<?php echo $vorname?>" size="35"></td>
        </tr>
        <tr >
          <td><br><div align="right">Anrede</div></td>
          <td><p>      <br>
            <input type="radio" name="rAnrede" value="Herr" checked> Herr
            <input type="radio" name="rAnrede" value="Frau">Frau </p>
          </td>
        </tr>
        <tr>
          <td><br><div align="right">Studienfach:</div></td>
          <td><br>
            <select name="aSelect">
            <option>Informatik</option>
            <option>Biologie</option>
            <option>Chemie</option>
            </select></td>
        </tr>
        <tr>
          <td ><br><div align="right">Sprache:</div></td>
          <td><br>
           <input type="radio" name="rSprache" value="Deutsch" checked> Deutsch
           <input type="radio" name="rSprache" value="Französisch">Französisch </td>
        </tr>
        <tr >
          <td><br><div align="right">Email:</div></td>
          <td><br>
            <input name="tMail" type="text" value = "<?php echo $email?>" size="35"></td>
        </tr>
        <tr >
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr >
          <td>&nbsp;</td>
          <td><input type="submit" name="submit" value="Abschicken"> 
                <input type="submit" name="cancel" value="Abbrechen"> 
              <input type="submit" name="liste" value="Teilnehmerliste anzeigen"> 
          </td>   
         </tr>
        <tr >
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
    <p><?php echo $msg?></p>
    <p><?php echo $error_msg?></p>
    </font>
    </form>
    </body>
    </html>
    <?php
    mysql_free_result
    ($rs);
    mysql_close();
    ?>

    <? //anmeldliste.php ?>
    <?php
    include("connect.inc.php");

    $query_rs "SELECT * FROM person ORDER BY name,vorname";
    $rs mysql_query($query_rs);
    $row_rs mysql_fetch_assoc($rs);
    $totalRows_rs mysql_num_rows($rs);
    ?>
    <html>
    <head><title>anmeldliste</title></head>
    <body>
    <p><font face="Arial, Helvetica, sans-serif" size="2">
    <P>Teilnehmerliste (Stand <?php echo strftime('%d.%m.%Y'?>)</P>
    <table width="88%" border="1" cellpadding="0" cellspacing="0" bgcollor = "#F0F0F5">
      <tr bgcolor="#F0F0F5">
        <td width="13%">Name</td>
        <td width="15%">Vorname</td>
        <td width="15%">Anrede</td>
        <td width="15%">Fach</td>
        <td width="15%">Sprache</td>
        <td width="21%">Email</td>
      </tr>
    <?php do { ?>
      <tr bordercolor="#CCCCCC">
        <td> <?php echo $row_rs['name']; ?>&nbsp;</td>
        <td> <?php echo $row_rs['vorname']; ?>&nbsp;</td>
        <td> <?php echo $row_rs['anrede']; ?>&nbsp;</td>
        <td> <?php echo $row_rs['fach']; ?>&nbsp;</td>
        <td> <?php echo $row_rs['sprache']; ?>&nbsp;</td>
        <td> <?php echo $row_rs['email']; ?>&nbsp;</td>
      </tr>
    <?php } while ($row_rs mysql_fetch_assoc($rs)) ; ?>  
    </table>
    <p>Anzahl Anmeldungen: <?php echo $totalRows_rs ?> </p>
    <p>&nbsp;</p>
    <p><a href="anmeldung.php">Zurück zum Anmeldeformular</a></p>
    </font>
    </body>
    </html>
    <?php
    mysql_free_result
    ($rs);
    mysql_close();
    ?>

    Bemerkungen zum Programmcode:
    Schaltfläche Abbrechen (Zeilen 8 - 13)
    Es gehört zum guten Programmierstil dem Benutzer eine "Abbrechen"-Schaltfläche zur Verfügung zu stellen, die ihn ermöglicht, die Eingabe zu unterbrechen, ohne den Browser schliessen zu müssen. Ein Button HTML stellt ein Button Reset (input type="reset") zur Verfügung, der die eingegeben Daten zurückstellt. Man kann aber auch selbst eine Schaltfläche programmieren, die das Formular verlässt und auf eine angegebene Webseite umleitet.
    Es empfiehlt sich, solche Programmteile zu Beginn des Programmcodes zu platzieren, bevor die Verbindung zur Datenbank erstellt wird.

    Dateien connect.php, anmeldung.php und anmeldliste.php gezipt zum hinunterladen:

    Download: anmeldung.zip (2.44 KB)