Was wir brauchen:
- Email Server (
) - reCaptcha Code (
) - Mein Register Script (
)
Bei Google reCaptcha, erstellt ihr euch einen Account und danach fügt ihr eure Seite da hinzu und erhaltet dann 2 Keys, einmal Private Key und Public Key, diese brauchen wir gleich.
Zuerst öffnen wir die include/config.php und stellen diese ein.
PHP Code:
<?php
// MSSQL Data
define('MSSQL_HOST', 'xxx\SQLEXPRESS'); // MSSQL Host
define('MSSQL_USER', ''); // MSSQL Username
define('MSSQL_PASS', ''); // MSSQL Password
// Connecting to MSSQL (ODBC)
$mssql = odbc_connect('Driver={SQL Server};Server='.MSSQL_HOST.';', MSSQL_USER, MSSQL_PASS);
function mssql_escape_string($string) {
$replaced_string = str_replace("'", "''", $string);
return $replaced_string;
}
?>
$allow_register: Ob man sich registrieren kann.
$salt: Eure verschlüsslung des Hashes.
$pubkey: Hier kommt der Public Key von reCaptcha.
$privkey: Hier kommt der Private Key von reCaptcha.
$key_link: Dies passt ihr an euch ein.
$sender_mail: Der Absender der Email, hier kann im grunde alle stehen.
PHP Code:
<?php
include('include/config.php');
include('include/asql.php');
require_once('include/recaptchalib.php');
$allow_register = 1;
if( $allow_register == 1 ){
$salt='kikugalanet'; // Password Encryption
$pubkey=''; // reCaptcha Public Key
$privkey=''; // reCaptcha Private Key
$design='white'; // reCaptcha Design
$key_link = 'http://lucidsoft.de/validate.php?key='; // Link zur validate.php
$sender_mail = '
'; // Email Adresse von dem es ausgehen soll.
$nicht_erlaubt = array( '/\'/' => '', '/\;/' => '', '/\"/' => '' ); // Nicht ändern
?>
<script type="text/javascript">
var RecaptchaOptions = {
theme : '<?php echo $design; ?>'
};
</script>
<?php
function random_string($length = 32){
$newpass = '';
$string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
mt_srand((double)microtime()*1000000);
for ($i=1; $i <= $length; $i++) {
$newpass .= substr($string, mt_rand(0,strlen($string)-1), 1);
}
return $newpass;
}
function doesUsernameExist($name){
$exit = FALSE;
$result = odbc_exec($mssql, 'SELECT * FROM [ACCOUNT_TBL] WHERE [account]=\''.mssql_escape_string($name)'.\'');
if (odbc_num_rows($result) != 0){
$exit = TRUE;
}
$result = odbc_exec($mssql, 'SELECT * FROM [ACCOUNT_TBL_VALIDATE] WHERE [account]=\''.mssql_escape_string($name)'.\'');
if (odbc_num_rows($result) != 0){
$exit = TRUE;
}
return $exit;
}
function SendEmail($email, $key){
$betreff = 'Registrations Code';
$nachricht = "Um die registration abzuschliessen, gehe bitte auf folgenden Link -> $key_link";
$nachricht .= '?key='.$key;
$header = "From: $sender_mail" . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email, $betreff, $nachricht, $header);
return TRUE;
}
if(isset($_POST['submit'])){
$user = preg_replace ("[^A-Za-z0-9]", "", $_POST['username']);
$pass = preg_replace ("[^A-Za-z0-9]", "", $_POST['password']);
$email = preg_replace (array_keys($nicht_erlaubt), array_values($nicht_erlaubt), $_POST['email']);
$idk=array('"', "'", ';', '-');
$user = str_replace($idk, '', $user);
$pass = str_replace($idk, '', $pass);
$resp = recaptcha_check_answer ($privkey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
if($_POST['username'] == "")
echo '<font color="red">Gebe einen User an</font>';
else if($_POST['password'] == "")
echo '<font color="red">Gebe ein Passwort ein</font>';
else if($_POST['password'] != $_POST['password2'])
echo '<font color="red">Die Passwoerter stimmen nicht ueberein</font>';
else if ((strlen($_POST['username']) > 15) || (strlen($_POST['username']) < 6))
echo '<font color="red">Dein Passwort sollte zwischen 6 bis 15 zeichen lang sein</font>';
else if ((strlen($_POST['password']) > 15) || (strlen($_POST['password']) < 6))
echo '<font color="red">Dein Passwort sollte zwischen 6 bis 15 zeichen lang sein</font>';
else if($_POST['username'] != $user)
echo '<font color="red">Es sind nicht erlaubte zeichen vorhanden</font>';
else if($_POST['password'] != $pass)
echo '<font color="red">Es sind nicht erlaubte zeichen vorhanden</font>';
else if($_POST['email'] == "")
echo '<font color="red">Bitte gebe eine Email an</font>';
else if($_POST['email'] != $email)
echo '<font color="red">Es sind nicht erlaubte zeichen vorhanden</font>';
else if(strlen($_POST["recaptcha_response_field"]) == 0)
echo '<font color="red">Hast du den reCaptcha vergessen ?</font>';
else if(!$resp->is_valid){
echo '<font color="red">Der eingegebene reCaptcha ist falsch:'.$resp->error.'</font>';
else {
$pass = mssql_escape_string(md5($salt.$pass));
if(!doesUsernameExist(mssql_escape_string($user))){
$gen_key = random_string();
odbc_exec($mssql, 'USE [ACCOUNT_DBF]');
odbc_exec($mssql, 'INSERT INTO [ACCOUNT_TBL_VALIDATE] ([account], [password], [email], [key], [datum]) VALUES (\''.mssql_escape_string($user).'\', \''.mssql_escape_string($pass).'\', \''.mssql_escape_string($email).'\', \''.mssql_escape_string($gen_key).'\', \''.date('Y-m-d').'\')');
SendEmail($email, $gen_key);
echo '<font color="green">Es wurde eine Email mit dem Aktivierungscode versand.</font>';
} else {
echo '<font color="red">Registration fehlgeschlagen</font>';
}
}
mssql_close();
}
echo '<form action="register.php" method="post">';
echo '<table border=0>';
echo '<tr><td>Username:</td><td><input type="text" name="username" /> <small>(zwischen 6 und 15 zeichen)</small></td></tr>';
echo '<tr><td>Password:</td><td><input type="password" name="password" /> <small>(zwischen 6 und 15 zeichen)</small></td></tr>';
echo '<tr><td>Repeat Password:</td><td><input type="password" name="password2" /> <small>(zwischen 6 und 15 zeichen)</small></td></tr>';
echo '<tr><td>Email:</td><td><input type="text" name="email" /> <small></small></td></tr>';
echo '<tr><td>Repeat Email:</td><td><input type="text" name="email2" /> <small></small></td></tr>';
echo '</table>';
echo '<br><font color="red"><small>Damit dein Account freigeschaltet wird, muss die Email bestätigt werden.</small></font><br><br>';
echo recaptcha_get_html($pubkey, $error);
echo '<br /><input type="submit" name="submit" value="Register" />';
echo '</form>';
} else {
echo '<font color="red"><b>Die Registration ist zur Zeit deaktiviert.</b></font>';
}
?>
PHP Code:
<?php
include('include/config.php');
include('include/asql.php');
if(isset($_GET['key'])){
odbc_exec($mssql, 'USE [ACCOUNT_DBF]');
$retval = odbc_exec($mssql, 'SELECT * FROM [ACCOUNT_TBL_VALIDATE] WHERE [key] = \''.mssql_escape_string($_GET['key']).'\'');
if( odbc_result($retval, 'account' != '' ) ){
$user = odbc_result($retval, 'account');
$pass = odbc_result($retval, 'password');
$email = odbc_result($retval, 'email');
// MSSQL Execute
odbc_exec($mssql, 'EXEC [dbo].[usp_CreateNewAccount] @account=\''.$user.'\', @pw=\''.$pass.'\', @email=\''.$email.'\'');
odbc_exec($mssql, 'DELETE FROM [ACCOUNT_TBL_VALIDATE] WHERE [key] = \''.mssql_escape_string($_GET['key']).'\'');
echo '<font color="green">Die Registration wurde abgeschlossen</font>';
} else {
echo '<font color="red">Die Registration ist fehlgeschlagen</font>';
}
} else {
echo '<font color="red">Es wurde kein Key übermittelt</font>';
}
?>
Credits: 100% Sedrika
DON'T COPY & PASTE







