[Homepage] register Frage

  • Hallo Com,
    ich habe hier mal mein register script, aber iwie kann ich beim Captcha eingeben was ich will,
    hat vllt jmd nen Fix dafür?

    PHP
    <h1>Registration</h1><div class="site">	<?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_check']) || empty($_POST['reg_captcha']))            $errors[] = 'Du musst alle Felder ausf&uuml;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(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 , votepoints) 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, 0)');                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">        <table>            <tr>                <td>Benutzername:</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><img src="./inc/captcha.php" name="captcha" /></td>                                <td><input type="text" name="reg_captcha" maxlength="5" /></td>		</tr>                 <tr>                           <td></td>                           <td><input type="submit" name="reg_submit" value="Account erstellen" /></td>            </tr>        </table>    </form></div>


    wie baue ich jetzt die Captcha abfrage ein?

    Danke
    MfG
    .:Flyff:.

  • zb

    PHP
    if(!isset($_POST['captcha_eingabe'])
       echo '<h1>Gebe ein captcha ein!!</h1>';


    Da du ja eh alles mit is set abfragst^^

  • Zitat von Cross;280597

    zb

    PHP
    if(!isset($_POST['captcha_eingabe'])
       echo '<h1>Gebe ein captcha ein!!</h1>';


    Da du ja eh alles mit is set abfragst^^

    Wo ist da das Captcha?

  • papa ich gehe davon aus da er es schon soweit eigbeaut hat und nur an der überprüfung scheitert (liest sich so raus)

  • Selbst dann ist es falsch, da ein Captcha ja aus 2 Teilen besteht.

    Richtig wäre in dem fall :

    PHP
    if(empty($_POST['reg_captcha']) || md5($_POST['reg_captcha']) != md5($_POST['captcha'])) $errors[] = 'Das Captcha ist nicht oder falsch angegeben.';


    Wobei ich sagen muss das ich bezweifel das dass Captcha so erstellt werden kann :

    PHP
    <td><img src="./inc/captcha.php" name="captcha" /></td>
                    <td><input type="text" name="reg_captcha" maxlength="5" /></td>

    Ich gehe stark von aus das man die captcha.php so ändern muss das man die Captcha Variable erstellen muss und dann im GET an die captcha.php ergeben muss im img und die captcha.php wird dann zum Bild einfach nur. ( Da hilft auch das Script von mir mit dem Bild erstellen , man muss nur die richtigen einstellungen machen ;-) )
    Zumindest mach ich es so. Und erstellen tue ich die Captcha variable immer mit der funktion :

    PHP
    function createcaptchacode($varlong){
        $captcha = "";
        $pool = "qwertzupasdfghkyxcvbnm23456789WERTZUPLKJHGFDSAYXCVBNM";
        srand ((double)microtime()*1000000);
        for($i=1;$i<=$varlong;$i++) {
            $captcha .= substr($pool,(rand()%(strlen ($pool))), 1);
        }
        return $captcha;
    }

    Dann sieht mein Script so aus :


    Jetzt fehlt nur noch die passende Captcha.php ^^
    Und diese schaut zB so aus :

  • Und so siehts bei mir aus:
    Captcha.php

    PHP
    <img src="captcha/captcha.php" border="0" title="Sicherheitscode">
    <input name="Sicherheitscode" type="text" maxlength="5" />

    dazu die abfrage noch:

    PHP
    if($_POST['Sicherheitscode'] != $_SESSION['captcha_spam']){
    $error = "bblabla code falsch blabla";
    }


    fertig.

    [COLOR=#000000][COLOR=#FF8000][CENTER]
    [/CENTER]
    [/COLOR][/COLOR]

  • Zitat von Dancex3;280639

    Und so siehts bei mir aus:
    Captcha.php

    PHP
    <img src="captcha/captcha.php" border="0" title="Sicherheitscode">
    <input name="Sicherheitscode" type="text" maxlength="5" />

    dazu die abfrage noch:

    PHP
    if($_POST['Sicherheitscode'] != $_SESSION['captcha_spam']){
    $error = "bblabla code falsch blabla";
    }


    fertig.

    Du hast schon gemerkt das dem sein Ausschnitt bereits included wird nur? Somit ist es zumindest an dieser Stelle nicht mehr möglich eine Session zu starten ;-)

    Also muss das session_start(); in die index.php oder welche Datei die Hauptdatei auch immer ist ganz oben herein. Sonst kann keine Session im Script abgerufen werden.

    Und wirklich sinnig ist es auch nicht hier an der Stelle mit Session zu arbeiten. Extra dafür eine Session starten wenn man ohne arbeitet? Dann lieber über POST. Da kann auch keiner rein fuschen.

  • Antwort ob und wie es Funktioniert, sind immer Herzlich Willkommen @ Themen Starter

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!