[Release] Register Erweiterung

07/17/2012 08:38 .Insane#1
Hey E*Pvpers,
ich will euch heute eine Erweiterung des Registers der Stefan Pfeifer HP geben.
Warum Stefan Pfeifer HP?
Erstens nutzen nur die Personen diese HP, die das nicht selber können und zweitens hatte ich einfach keine Lust selber eines zu coden.
Also fangen wir an.
DB:
Code:
ACCOUNT_DBF -> ACCOUNT_TBL -> rechtsklick und auf entwerfen klicken
Dort fügt ihr das hinzu:
frage (Datentyp: int)
antwort (Datentyp: text)
register.php
Code:
<?php include('./inc/header.php'); ?>
<div class="main">
<img src="img/main_head.png" alt="" />
<div class="site">
<h1>Registration</h1>
	<?php
        if(!isset($_POST['reg_username'])) $_POST['reg_username'] = '';
        if(!isset($_POST['reg_email'])) $_POST['reg_email'] = '';
        
        odbc_exec($mssql, 'USE [ACCOUNT_DBF]');
        $checkacc = odbc_exec($mssql, 'SELECT COUNT(*) as count FROM [ACCOUNT_TBL] WHERE account=\''.mssql_escape_string($_POST['reg_username']).'\'');
        $checkmail = odbc_exec($mssql, 'SELECT COUNT(*) as count FROM [ACCOUNT_TBL_DETAIL] WHERE email=\''.mssql_escape_string($_POST['reg_email']).'\'');
        $errors = array();
        if(empty($_POST['reg_username']) || empty($_POST['reg_password']) || empty($_POST['reg_confirmpw']) || empty($_POST['reg_email']) || empty($_POST['reg_confirmmail']) || empty($_POST['reg_antwort']))
            $errors[] = 'Du musst alle Felder ausfüllen!';
        if(!empty($_POST['reg_username']) && odbc_result($checkacc, 'count') > 0)
            $errors[] = 'Der Benutzername existiert bereits!';
        if(!empty($_POST['reg_email']) && odbc_result($checkmail, 'count') > 0)
            $errors[] = 'Die E-Mail Adresse existiert bereits!';
        if(!empty($_POST['reg_username']) && (strlen($_POST['reg_username']) > 10 || strlen($_POST['reg_username']) < 4))
            $errors[] = 'Dein Benutzername muss 4 - 10 Zeichen enthalten!';
        if(!empty($_POST['reg_password']) && (strlen($_POST['reg_password']) > 12 || strlen($_POST['reg_password']) < 6))
            $errors[] = 'Dein Passwort muss 6 - 12 Zeichen enthalten!';
        if((!empty($_POST['reg_password']) && !empty($_POST['reg_confirmpw'])) && $_POST['reg_password'] != $_POST['reg_confirmpw'])
            $errors[] = 'Deine Passwort Wiederholung stimmt nicht!';
        if(!empty($_POST['reg_email']) && !preg_match('/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/', $_POST['reg_email']))
            $errors[] = 'Die E-Mail Adresse ist nicht valide';
		if((!empty($_POST['reg_email']) && !empty($_POST['reg_confirmmail'])) && $_POST['reg_email'] != $_POST['reg_confirmmail'])
            $errors[] = 'Deine E-Mail Wiederholung stimmt nicht!';
        
        if(isset($_POST['reg_submit'])) {
            if(count($errors) > 0) {
                echo '<div class="fail">';
                foreach($errors as $error) {
                    echo $error.'<br/>';
                }
                echo '</div>';
            } else {
                odbc_exec($mssql, 'INSERT INTO [dbo].[ACCOUNT_TBL] (account, password, isuse, member, id_no1, id_no2, realname, reload, OldPassword, TempPassword, cash, lastvote1, lastvote2, lastvote3, votepoints, frage, antwort) VALUES (N\''.mssql_escape_string($_POST['reg_username']).'\', N\''.mssql_escape_string(md5($_CONFIG['pwdsalt'].$_POST['reg_password'])).'\', N\'T\', N\'A\', NULL, 0, N\'P\', NULL, 0, NULL, 0, NULL, NULL, NULL, 0, \''.mssql_escape_string($_POST['frage']).'\', \''.mssql_escape_string($_POST['reg_antwort']).'\')');
                odbc_exec($mssql, 'INSERT INTO [dbo].[ACCOUNT_TBL_DETAIL] (account, gamecode, tester, m_chLoginAuthority, regdate, BlockTime, EndTime, WebTime, isuse, secession, email) VALUES (N\''.mssql_escape_string($_POST['reg_username']).'\', N\'A000\', N\'2\', N\'F\', \''.mssql_escape_string(date('Ymd H:i:s')).'\', N\'20010101\', N\'20990101\', N\'20050101\', N\'O\', NULL, N\''.mssql_escape_string($_POST['reg_email']).'\')');
                echo '<div class="success">Dein Account wurde erfolgreich erstellt!</div>';
            }
        }
    ?>
    <form method="post">
        <form method="post">
        <table>
            <tr>
                <td>Accountname:</td>
                <td><input type="text" name="reg_username" maxlength="10" /></td>
            </tr>
            <tr>
                <td>Passwort:</td>
                <td><input type="password" name="reg_password" maxlength="11" /></td>
            </tr>
            <tr>
                <td>Wdh. Passwort:</td>
                <td><input type="password" name="reg_confirmpw" /></td>
            </tr>
            <tr>
                <td>E-Mail:</td>
                <td><input type="text" name="reg_email" /></td>
            </tr>
			<tr>
                <td>Wdh. E-Mail:</td>
                <td><input type="text" name="reg_confirmmail" /></td>
            </tr>
			<tr>
				<td>Geheimfrage:</td>
				<td>
                <select name="frage">
      			<?php
            		foreach($ghf as $id => $frage) {
                	echo '<option value="'.$id.'">'.$frage.'</option>';
            		}
        		?>
        		</select>   
                </td>
			</tr>
			<tr>
				<td>Geheimantwort:</td>
                <td><input type="text" name="reg_antwort" /></td>
            <tr>
                <td></td>
                <td><input type="submit" name="reg_submit" value="Account erstellen" /></td>
            </tr>
        </table>
    </form>
    </form>
	</div>
<img src="img/main_foot.png" alt="" />	
</div>
<?php include('./inc/footer.php'); ?>
config.inc.php
Code:
Unter den PSC values:
	// Geheimfragen
	$ghf = array( 
		1 => 'Dein favorisiertes Schulfach ist ...?',  
		2 => 'Dein Geburtsort war ...?',  
		3 => 'Dein Lieblingsverein ist ...?',  
		4 => 'Der Name deines ersten Haustieres war ...?',  
		5 => 'Dein erstes Computerspiel war ...?',  
		6 => 'Deine absolute Lieblingsfarbe ist ...?' 
		);
Ihr könnt so viele Geheimfragen hinzufügen, wie ihr wollt.
Wenn ihr noch das skript für das ändern der Geheimfrage und -antwort im User Panal haben wollt, meldet euch einfach.
Bei Problemen könnt ihr euch auch gerne melden.

Lg

Ein großes Dankeschön an Xxl3lubbs, der mir einen Verbesserungsvorschlag geschickt hat.
07/17/2012 09:55 Marv!n#2
Unvorteilhaft, die gesamte Frage bei jedem User in die Datenbank zu schreiben. Da lieber die Fragen durchnummerieren und dann die entsprechende ID abspeichern (warum das so besser ist, sollte klar sein xD).
07/17/2012 11:40 .Insane#3
Danke nochmals.
Habe den Post editiert.
07/17/2012 22:51 Lumi#4
Wie wärs mit Geburtstag und Captcha? :D
Das könnte ich gebrauchen.
07/18/2012 04:20 lolix3#5
Guck mal in dem Damned Flyff Register, da sollte dies beides enthalten sein.

@ Topic

Ganz netter release, wer es brauch..

Greetz
07/18/2012 23:32 Bloodyrain™#6
Nice Release und willst du noch bei mir WebDev sein,weil du antwortest mir nicht mehr.
07/19/2012 23:32 paddelx3#7
Quote:
Originally Posted by Bloodyrain™ View Post
Nice Release und willst du noch bei mir WebDev sein,weil du antwortest mir nicht mehr.
Benjamin aka Frison ist noch in seiner Lernphase und kann soweit ich
das mitgekriegt hab bis jetzt nur richtig CSS/HTML und ist somit in der
Anfangsphase von PHP, aber es ist ja noch kein Meister vom Himmel gefallen. :3
Wenn du für zwischendruch einen Webdev brauchst bzw einmalig, dann sollte dir der Namee xX|3lubbs geläufig sein.

@ Te.
Ich finde den Release Sinnfrei, immerhin haste das Script um 2 Zeilen erweitert.
der User hat dann eine GF aber sinnvoller währe es doch, wenn du
auch bei Funktionen wie beim ändern des PSW's -oder der Email- die GF abfragst
und mit der eingabe vergleichst?

lg