Registrierungsformular über mehrere Schritte und mit eingebauter Überprüfung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Registrierungsformular über mehrere Schritte und mit eingebauter Überprüfung

    Hallo Leute,

    ich habe vor einen Registrierungsformular über mehrere Seiten zu schreiben, d.h. mit mehreren Schritten etc.
    Dazu habe ich als erstes folgenden Code:

    PHP-Code:
    <?php
    require ("config.inc");
    session_start();

    if ((
    $_POST['send']!= "1") || (isset($err_text)))
    {
    require (
    "includes/member1.inc");
    require (
    "includes/peintragen.js");
    }
    else
    {    
    require (
    "includes/member2.inc");
    }
    ?>
    Da fangen aber meine Probleme schon an ...
    Es werden wahrscheinlich drei oder noch mehr Schritte werden.
    Wie kann ich da am Besten unterscheiden?

    Das JavaScript lassen wir außen vor!
    Das ist für das Formular selber irrelevant.

    Nun zu der Datei member1.inc:

    PHP-Code:
    <?php
    $_SESSION
    ['Vorname'] = $_POST['Vorname'];
    $_SESSION['Nachname'] = $_POST['Nachname'];
    $_SESSION['EMail'] = $_POST['EMail'];
    $_SESSION['ICQ'] = $_POST['ICQ'];
    $_SESSION['PLZ'] = $_POST['PLZ'];
    $_SESSION['Ort'] = $_POST['Ort'];
    $_SESSION['Land'] = $_POST['Land'];
    $_SESSION['CLAN'] = $_POST['CLAN'];

    if(
    trim($_SESSION['Vorname'])=="")
    {
    $err_text.="<center>Please fill the field Vorname.<br></center>";
    } else if (
    strlen($_SESSION['Vorname']) < 4)
    {
    $err_text.="<center>Too short Vorname.<br></center>";
    }

    if(
    trim($_SESSION['Nachname'])=="")
    {
    $err_text.="<center>Please fill the field Nachname.<br></center>";
    } else if (
    strlen($_SESSION['Nachname']) < 4)
    {
    $err_text.="<center>Too short Nachname.<br></center>";
    }

    if(
    trim($_SESSION['EMail'])=="")
    {
      
    $err_text.="<center>Please fill the field E-Mail.<br></center>";
    }
    else
    {
      if(!
    ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$_SESSION['EMail']))
    {
        
    $err_text.="<center>Incorrect E-Mail.<br></center>";
    }
    }

    if((
    trim($_SESSION['ICQ'])!="") && (preg_match('/\D/' $_SESSION['ICQ'])))
    {
      
    $err_text.="<center>Incorrect ICQ.<br></center>";
    }

    if(
    trim($_SESSION['PLZ'])=="")
    {
     
    $err_text.="<center>Please fill the field PLZ.<br></center>";
    } else if (
    strlen($_SESSION['PLZ']) < 4)
    {
     
    $err_text.="<center>Too short PLZ.<br></center>";
    } else if(
    preg_match('/\D/' $_SESSION['PLZ']))
    {
     
    $err_text.="<center>Incorrect PLZ.<br></center>";
    }
      

    if(
    trim($_SESSION['Ort'])=="")
    {
    $err_text.="<center>Please fill the field Ort.<br></center>";
    } else if (
    strlen($_SESSION['Ort']) < 4)
    {
     
    $err_text.="<center>Too short Ort.<br></center>";
    }

    if(
    trim($_SESSION['Land']) == "0")
    {
    $err_text.="<center>Please select a country.<br></center>";
    }

    if(
    trim($_SESSION['CLAN']) == "-1")
    {
    $err_text.="<center>Please select a CLAN.<br></center>";
    }

    if((
    $_POST['send'] == "1") && (isset($err_text))) {
      echo 
    "<center><p><big><b>Error:</b></big><br></center>";
      echo 
    "$err_text</p>";
    }

    ?>
    <form name="eintragen" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <table border=0 align="center" width="50%">
    <tr>
    <td width="20%">
    Vorname*:
    </td>
    <td>
    <input name="Vorname" type="text" size="30" maxlength="30" value="<?php echo $_SESSION['Vorname']; ?>" onChange="pruefung()">
    </td>
    <td width="30%">
    <span id="Teil1a">&nbsp;</span>&nbsp;<strong><span id="fehler1a">&nbsp;</span></strong>
    </td>
    </tr>
    <tr>
    <td width="20%">
    Nachname*:
    </td>
    <td>
    <input name="Nachname" type="text" size="30" maxlength="30" value="<?php echo $_SESSION['Nachname']; ?>" onChange="pruefung()">
    </td>
    <td width="30%">
    <span id="Teil1b">&nbsp;</span>&nbsp;<strong><span id="fehler1b">&nbsp;</span></strong>
    </td>
    </tr>
    <tr>
    <td width="20%">
    E-Mail*:
    </td>
    <td>
    <input name="EMail" type="text" size="30" maxlength="30" value="<?php echo $_SESSION['EMail']; ?>" onChange="pruefung()">
    </td>
    <td width="30%">
    <span id="Teil2">&nbsp;</span>&nbsp;<strong><span id="fehler2">&nbsp;</span></strong>
    </td>
    </tr>
    <tr>
    <td width="20%">
    ICQ:
    </td>
    <td>
    <input name="ICQ" type="text" size="30" maxlength="30" value="<?php echo $_SESSION['ICQ']; ?>" onChange="pruefung()">
    </td>
    <td width="30%">
    <span id="Teil3">&nbsp;</span>&nbsp;<strong><span id="fehler3">&nbsp;</span></strong>
    </td>
    </tr>
    <tr>
    <td width="20%">
    Straße:
    </td>
    <td>
    <input name="Strasse" type="text" size="30" maxlength="30" value="<?php echo $_SESSION['Strasse']; ?>" onChange="pruefung()">
    </td>
    <td width="30%">
    <span id="Teil4">&nbsp;</span>&nbsp;<strong><span id="fehler4">&nbsp;</span></strong>
    </td>
    </tr>
    <tr>
    <td width="20%">
    PLZ*:
    </td>
    <td>
    <input name="PLZ" type="text" size="30" maxlength="6" value="<?php echo $_SESSION['PLZ']; ?>" onChange="pruefung()">
    </td>
    <td width="30%">
    <span id="Teil5">&nbsp;</span>&nbsp;<strong><span id="fehler5">&nbsp;</span></strong>
    </td>
    </tr>
    <tr>
    <td width="20%">
    Ort*:
    </td>
    <td>
    <input name="Ort" type="text" size="30" maxlength="30" value="<?php echo $_SESSION['Ort']; ?>" onChange="pruefung()">
    </td>
    <td width="30%">
    <span id="Teil6">&nbsp;</span>&nbsp;<strong><span id="fehler6">&nbsp;</span></strong>
    </td>
    </tr>
    <tr>
    <td width="20%">
    Land*:
    </td>
    <td>
    <select name="Land" onChange="pruefung()">
    <option value="0"<?php if ($_SESSION['Land'] == "0") { echo "selected"; } ?>>&nbsp;&nbsp;-&nbsp;Ihre Auswahl&nbsp;-&nbsp;&nbsp;</option>

    <option value="Germany"<?php if ($_SESSION['Land'] == "Germany") { echo "selected"; }?>>Deutschland</option>
    </select>
    </td>
    <td width="30%">
    <span id="Teil7">&nbsp;</span>
    </td>
    </tr>
    <tr>
    <td colspan="2">
    <span id="Link">&nbsp;</span>
    </td>
    <td>
    <span id="Teil8">&nbsp;</span>&nbsp;<strong><span id="fehler8">&nbsp;</span></strong>
    </td>
    </tr>
    <tr>
    <td>&nbsp;
    </td>
    </tr>
    <tr>
    <td width="20%">
    CLAN-Mitglied/-Leader*:
    </td>
    <td>
    <select name="CLAN" onChange="pruefung()">
    <option value="-1"<?php if ($_SESSION['CLAN'] == "-1") { echo "selected"; } ?>>&nbsp;&nbsp;-&nbsp;Ihre Auswahl&nbsp;-&nbsp;&nbsp;</option>

    <option value="1"<?php if ($_SESSION['CLAN'] == "1") { echo "selected"; }?>>Ja</option>
    <option value="0"<?php if ($_SESSION['CLAN'] == "0") { echo "selected"; }?>>Nein</option>
    </select>
    </td>
    <td width="30%">
    <span id="Teil9">&nbsp;</span>
    </td>
    </tr>
    </table>
    <center>
    <input name="weiter" type="Submit" value="Weiter">
    <input name="send" type="hidden" value="1">
    <input name="admineingriff" type="hidden" id="admineingriff">
    <input name="admineingriff2" type="hidden" id="admineingriff2">
    <br>
    <br>
    * Diese Angaben sind Pflichtangaben!<br><br>
    Infos zu den Angaben:<br>
    Hier klicken <!-- hier kommt der Link zur Hilfe -->
    </center>
    </form>
    Die Datei member2.inc sieht ähnlich aus:

    PHP-Code:
    <?php
    $_SESSION
    ['CLAN-Name'] = $_POST['CLAN-Name']; //CLAN-Name
    $_SESSION['CLAN-Member'] = $_POST['CLAN-Member']; //CLAN-Mitglieder
    $_SESSION['CLAN-HP'] = $_POST['CLAN-HP']; //CLAN-HP
    $_SESSION['CLAN-Pos'] = $_POST['CLAN-Pos']; //CLAN Position
    $_SESSION['CLAN-JPW'] = $_POST['CLAN-JPW']; //CLAN Join Passwort
    $_SESSION['CLAN-JPW2'] = $_POST['CLAN-JPW2']; //CLAN Join Passwort2

    $_SESSION['CLAN-Suche'] = $_POST['CLAN-Suche']; //Auf CLAN Suche

    echo $_SESSION['CLAN'];

    if (
    $_SESSION['CLAN'] == "1")
    {
        if(
    trim($_SESSION['CLAN-Name']) == "")
        {
        
    $err_text.="<center>Please define your CLAN-Name.<br></center>";
        }
        if(
    trim($_SESSION['CLAN-Member'])=="")
        {
        
    $err_text.="<center>Please fill the field Number of CLAN-Member.<br></center>";
        }
        else
        {
            if(!
    ereg("^([0-9]+)$",$_SESSION['CLAN-Member']))
            {
            
    $err_text.="<center>Incorrect Number of CLAN-Member.<br></center>";
            }                          
        }
        if(
    trim($_SESSION['CLAN-HP'])=="")
        {
        
    $err_text.="<center>Please fill the field CLAN-HP.<br></center>";
        }
        else
        {
            if(!
    ereg("^[[url]http://www.[/url]]+[_a-z0-9-]*(\.[a-z]{2,6})$",$_SESSION['CLAN-HP']))
            {
            
    $err_text.="<center>Incorrect CLAN-HP.<br></center>";
            }                             
        }
        if(
    trim($_SESSION['CLAN-Pos']) == "-1")
        {
        
    $err_text.="<center>Please select your CLAN-Position.<br></center>";
        }
        if(
    trim($_SESSION['CLAN-JPW']) == "")
        {
        
    $err_text.="<center>Please define your CLAN-Join-Password.<br></center>";
        }
        if(
    trim($_SESSION['CLAN-JPW2']) == "")
        {
        
    $err_text.="<center>Please repeat your CLAN-Join-Password.<br></center>";
        }
        if(
    trim($_SESSION['CLAN-JPW']) == trim($_SESSION['CLAN-JPW2']))
        {
        
    $err_text.="<center>The CLAN-Join-Passwords are incorrect.<br></center>";
        }
    } else
    {
        if(
    trim($_SESSION['CLAN-Suche']) == "-1")
        {
        
    $err_text.="<center>Please select your CLAN-Position.<br></center>";
        }
    }

    if((
    $_POST['send'] == "2") && (isset($err_text))) {
      echo 
    "<center><p><big><b>Error:</b></big><br></center>";
      echo 
    "$err_text</p>";
    }

    ?>
    ...
    So das sollte einen Einblick in die Quelltexte und meine Struktur bringen.
    Zur Unterscheidung benutze ich ja auch
    Code:
    <input type="hidden" name="send" value="[Zahl]">
    .
    Ich weiß aber nicht, ob das sinnvoll ist!

    Deswegen poste ich hier.
    Kann mir jemand helfen?

  • #2
    • Entferne unnötigen Code!
    • Erkläre dein genaues Problem.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar

    Lädt...
    X