Logo - MyWebsolution.de
User gesamt  :  2393964
User online  :  2
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Allgemeines » CAPTCHA

Seite: 1 Posts pro Seite: 5 10 20
Autor Thread
07.02.2010 18:14 Uhr CAPTCHA
Sascha_K1994
Forenuser
 
registriert 16.01.2010
wohnt in
Beiträge 21
Guten Abend allerseits,

ich habe ein Problem, ich habe mir jetzt nach langem quälen ein CAPTCHA-System gebaut, nun möchte ich das in das loginsystem reinpacken, also das man "Nickname" "Passwort" und "CAPTCHA" eingeben muss. Nur ich bekomme es irgendwie nicht hin, hier mal meine Scripts::

Meine captcha.php
PHP:
<?php

session_start
();


$CaptchaFehler FALSE;
$Fehlerfrei TRUE;

    if (
md5$_POST['sicherheitscode'] ) != $_SESSION['captcha_code'])
    {
        
$Fehlerfrei FALSE;
        
$CaptchaFehler TRUE;
    }
    

    if (
$Fehlerfrei)
    {
         echo 
"CAPTCHA richtig!">"; 
    }

?>
<!DOCTYPE html PUBLIC "
-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>CAPTCHA-System</title>
</
head>

<
body>
<
form id="CAPTCHA" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <
fieldset>
        <
legend>CAPTCHA-Abfrage</legend>
        <
img src="captcha_image.php" alt="Sicherheitscode" title="Sicherheitscode" width="80" height="25" />
        <
label for="sicherheitscode"><?php echo $CaptchaFehler '<span style="color: #000000;">Bitte Sicherheitscode eingeben:</span>' 'Bitte Sicherheitscode eingeben:'?></label>
            <input name="sicherheitscode" id="sicherheitscode" type="text" />
        <input name="senden" id="senden" type="submit" value="Absenden" class="button" />
    </fieldset>
</form>
</body>
</html>


Meine captcha_image.php
PHP:
<?php

session_start
();


unset( 
$_SESSION['captcha_code'] );


header"Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header"Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT" );
header"Cache-Control: no-store, no-cache, must-revalidate" );
header"Cache-Control: post-check=0, pre-check=0"false );
header"Pragma: no-cache" );
header'Content-type: image/jpeg' );

$AlphaNumerischerString "ABCDEFGH2345689";
$ZufallString1 substrstr_shuffle$AlphaNumerischerString ), 0);
$ZufallString2 substrstr_shuffle$AlphaNumerischerString ), 0);
$ZufallString3 substrstr_shuffle$AlphaNumerischerString ), 0);
$ZufallStringKomplett $ZufallString1.$ZufallString2.$ZufallString3;

$_SESSION['captcha_code'] = md5$ZufallStringKomplett );

$Schriftarten = array( "zachary.ttf""mtcorsva.ttf""gilligan.ttf");
$Bilddatei imagecreatefrompng"hintergrund.png" );
$TextFarbe1 imagecolorallocate$Bilddatei0125);
$TextFarbe2 imagecolorallocate$Bilddatei1307090 );
$TextFarbe3 imagecolorallocate$Bilddatei18090190 );
imagettftext$Bilddatei1215324$TextFarbe1$Schriftarten[0], $ZufallString1 );
imagettftext$Bilddatei1602615$TextFarbe2$Schriftarten[1], $ZufallString2 );
imagettftext$Bilddatei14, -205318$TextFarbe3$Schriftarten[2], $ZufallString3 );
imagejpeg$Bilddatei );

imagedestroy$Bilddatei );
?>

Ich glaube den Hintergrund.png sowie die drei Schriftarten muss ich hier nicht posten :D

Meine login.php (Ist diese aus dem Forum, nur ein bisschen überarbeitet...)
PHP:
<?php
    error_reporting
(E_ALL);

        include(
"config.php");

    
// liefert die Rechte eines Users ..
    
function getRights()
    {
        
$rights = array();
        
// .. indem die Rechte eines User aus der Datenbank ausgewählt werden..
        
if(isset($_SESSION['UserID'])){
            
$sql "SELECT
                            Recht
                    FROM
                            User_Rechte
                    WHERE
                            UserID = '"
.$_SESSION['UserID']."'
                   "
;
            
$result mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
            
$rights = array();
            
// .. und als array zurückgegeben werden
            
while($row mysql_fetch_assoc($result))
                    
$rights[] = $row['Recht'];
        }
        return 
$rights;
    }

    
// Loggt einen User ein, ..
    
function doLogin($ID$Autologin=false)
    {
        
// .. indem die aktuelle Session ID in der Datenbank gespeichert wird
        
$sql "UPDATE
                        User
                SET
                        SessionID = '"
.mysql_real_escape_string(session_id())."',
                        Autologin = NULL,
                        IP = '"
.$_SERVER['REMOTE_ADDR']."',
                        Letzte_Aktion = '"
.mysql_real_escape_string(time())."',
                        Letzter_Login = '"
.mysql_real_escape_string(time())."'
                WHERE
                        ID = '"
.$ID."'
                "
;
        
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
// Wenn 'eingeloggt bleiben' aktiviert wurde
        
if($Autologin){
            
// Zufallscode erzeugen
            
$part_one substr(time()-rand(100100000),5,10);
            
$part_two substr(time()-rand(100100000),-5);
            
$Login_ID md5($part_one.$part_two);
            
// Code im Cookie speichern, 10 Jahre dürfte genügen
            
setcookie("Autologin"$Login_IDtime()+60*60*24*365*10);
            
$sql "UPDATE
                            User
                    SET
                            Autologin = '"
.$Login_ID."'
                    WHERE
                            ID = '"
.$ID."'
                   "
;
            
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        }

        
// Daten des Users in der Session speichern

    
$sql "SELECT
                            Nickname,
                Vorname,
                Nachname
                    FROM
                            User
                    WHERE
                        ID = '"
.$ID."'
                   "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

        
$row mysql_fetch_assoc($result);
        
$_SESSION['UserID'] = $ID;
        
$_SESSION['Nickname'] = $row['Nickname'];
        
$_SESSION['Vorname'] = $row['Vorname'];
        
$_SESSION['Nachname'] = $row['Nachname'];
        
$_SESSION['Rechte'] = getRights();
    }

    
// Session starten
    
session_start();

    if(isset(
$_POST['submit']) AND $_POST['submit']=='Einloggen'){
        
// Falls der Nickname und das Passwort übereinstimmen..
        
$sql "SELECT
                        ID
                FROM
                        User
                WHERE
                        Nickname = '"
.mysql_real_escape_string(trim($_POST['Nickname']))."' AND
                        Passwort = '"
.md5(trim($_POST['Passwort']))."'
               "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
// wird die ID des Users geholt und der User damit eingeloggt
        
$row mysql_fetch_assoc($result);
        
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
        
if (mysql_num_rows($result)==1){
             
doLogin($row['ID'], isset($_POST['Autologin']));
            include(
"go_login.php");
        }
        else{
             echo 
"Sie konnten nicht eingeloggt werden.<br>\n".
                  
"Nickname oder Passwort fehlerhaft.<br>\n";
        }
    }
    else{
     include(
"nav_guest.php");
        echo 
"<table>";
        echo 
" <tr>\n";
        echo 
"  <td>\n"
        echo 
"<form ".
             
" name=\"Login\" ".
             
" action=\"".$_SERVER['PHP_SELF']."\" ".
             
" method=\"post\" ".
             
" accept-charset=\"ISO-8859-1\"\n";
        echo 
"  <td>\n";       
    echo 
"Nickname :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
"<input type=\"text\" name=\"Nickname\" maxlength=\"32\"\n";
        echo 
"  </td>\n";
    echo 
"  <td>\n";
        echo 
"Passwort :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
"<input type=\"password\" name=\"Passwort\"\n";
        echo 
"  <td>\n";
        echo 
"  <td>\n";
        echo 
"<input type=\"submit\" name=\"submit\" value=\"Einloggen\"\n";
        echo 
"  <td>\n";
        echo 
"</form>\n";
        echo 
" \n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
       echo 
"</table>";
    }
?><body background="_wskins_/background.png">


Ich hoffe ihr könnt mir helfen!?!

Mit freundlichen Grüßen

SASCHA_K1994
Profil ansehen Mail senden
Seite: 1 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik