tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
288
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    xlanhackerx xlanhackerx ist offline Mitglied Silber
    Registriert seit
    Jun 2007
    Beiträge
    73
    Hallo liebe Communiy
    Ich bin es mal wieder mit ein paar neuen Sachen welche ich mir in den Kopf gesetzt habe, allerdings nicht hinbekomme
    Also ich möchte gerne ein Loginsystem haben für meine Website.
    Ich verwende das Loginsystem
    [PHP/mySQL] Login-System mit Sessions
    und eine index.php?section= Lösung
    Nun zu meinem Problem. Ich möchte gerne die einzelnen Bereiche per section= jeweils laden.
    Meine index.php
    PHP-Code:
    <?php session_start (); ?>

    <html>
    <head>
    <title>Money-Play-Login</title>
    <link rel="stylesheet" type="text/css" href="images/style.css">
    <style type="text/css">
    <!--
    .Stil1 {color: #FF0000}
    .Stil2 {
        color: #FF0000;
        font-weight: bold;
        font-size: 13px;
    }
    -->
    </style>
    </head>


    <body>

    <?php 
    if($_GET['section'] != ""){
        
    $filename "./content/".$_GET['section'].".php";
        if(
    file_exists($filename)){
            include(
    $filename);
        } else {
            echo 
    "Diese Seite ist nicht vorhanden oder es gibt Probleme";
        }
    }
    ?> 
    <?php 
    if (isset ($_REQUEST["fehler"])) 

      echo 
    "Die Zugangsdaten waren ungültig."

    ?> 
     
    <center>
    <form action="index.php?section=login" method="post">

      <table border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>LOGIN SYSTEM PLAY-MONEY</td>
          
        </tr>
      </table>
        <br>
        <table border="0" cellspacing="0" cellpadding="0" class="mainpage">
          <tr>
            <td align="center"><a href="index.php"><img src="imggen.php" border="0" height="60" width="270" alt="Grafik" align="center"></a></td>
          </tr>
          <tr>
            <td align="center"><span class="Stil1">Sicherheitscode</span></td>
            <td><input type="text" name="save" onbeforepaste="noPaste()" onpaste="noPaste()"></td>
          </tr>
          <tr>
            <td align="center">Benutzername</td>
            <td><input type="password" name="name" value=""></td>
          </tr>
          <tr>
            <td align="center">Kennwort</td>
            <td><input type="password" name="pwd" value=""></td>
          </tr>
          <tr>
            <td align="center"><input type="Submit" name="login" value="LOGIN"></td>
          </tr>
          <tr>
            <td align="center"><a href="index.php?section=register"><b>Neuen Account anlegen</b></a></td>
          </tr>
          <tr>
            <td align="center"><a href="index.php?section=lost"><b>Passwort vergessen?</b></a></td>
          </tr>
        </table>
        
    </form>
    </center>
    <center class="Stil2">Sollte die Grafik nicht zu lesen, klicke bitte auf die Sicherheitsgrafik um eine neue zu laden.</center>
    </body>

    </html>
    Entweder ich habe irgentwie Tomaten auf den Augen dass ich es nicht sehe wo der Code zum Content laden hin muss, oder ich bin einfach schon zu lange am Quellcode lesen !!
    Er läd mir immer wieder den jeweiligen Content über dem Login..
    Müsste ich dieses Loginscript auch extra holen also per ?section=start z.B und dann einfach nur weiterleiten
    Das zweite Problem ist die Session Übergabe.. Wenn ich mich anmelden möchte, bekomm ich die fehlermeldung
    HTML-Code:
    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w0093762/money-play/game/index.php:7) in /www/htdocs/w0093762/money-play/game/content/login.php on line 36
    Und nun leider zu meinem dritten Problem, wie könnte ich die Captcha Lösung realisieren Ich habe bereits hier im Forum etwas dazu gefunden, find es allerdings sehr schwer und ich brauche die ganzen Zufallsfonts nicht.. Es soll eine schlichte Grafik entstehen mit gutlesbaren Zahlen und Buchstaben auf einem fablich übergehenden Hintergrund welchen ich ja als jpeg machen kann und dann mit imagecreatefromjpeg laden werde.

    Hoffe ich habe mich verständlich ausgedrückt und hoffe auf hilfe.

    Mfg. Oliver
     

  2. #2
    hot_wax Tutorials.de Gastzugang
    Das zweite Problem:
    Das hier ganz oben erste Zeile:
    http://www.php.net/manual/de/function.ob-start.php
    und
    Letzte Zeile
    http://www.php.net/manual/de/function.ob-end-flush.php
     

  3. #3
    xlanhackerx xlanhackerx ist offline Mitglied Silber
    Registriert seit
    Jun 2007
    Beiträge
    73
    OK ich habe es zum Teil hinbekommen, habe jetzt einfach die index mit einem switch ausgestattet, welche dann automatisch als startseite die home läd also das Formular von oben zum einloggen. Es klappt auch alles wunderbar.
    Nun meine andere Frage, ich habe aus Testgründen zu viele leere Usereinträge die ich nun gelöscht habe, allerdings zählt er mir wenn ich mich neu regestriere jedes mal eine id über die alte, bin schon bei 16 obwohl ich alle gelöscht hatte. Wie kann man die Datenbank " resetten" also dass die id nicht weiterzählt sondern bei 1 anfängt
    Nun mein anderes Problem, wie könnte man verhindern dass sich ein User nocheinmal regestriert, also USER 1 (ICH) mit Oliver und PASSWORT und dann USER 2 (ein anderer) sich auch mit Oliver und nem Passwort regestriert, dann ist ja der gleiche Username vorhanden, allerdings nicht das Passwort was ich ja noch akzeptieren würde. Aber ich möchte einfach nicht dass man sich mit einem schon vorhandenen Benutzernamen anmelden kann, Wenn jemand Oliver90 oder oLiver schreibt ist mir das ja egal, aber die gleiche groß und Kleinschreibweise sowie schon vorhandenes Passwort sollen nicht akzeptiert werden..

    Danke schonnmal..

    Mfg. Oliver
     

  4. #4
    xlanhackerx xlanhackerx ist offline Mitglied Silber
    Registriert seit
    Jun 2007
    Beiträge
    73
    hmm also leute ich hab mir überlegt einfach eine ausgabe zu machen, bei der mittels inputfeld die username datenbank durchsucht wird, und somit gesagt wird ob der username schon vorhanden ist oder nicht.. aber ich denke dass man dazu bestimmt nicht ein extra input machen muss um da zu durchsuchen oder ich hoffe mal das direkt im regestriercode der mysql abfrage das zu regeln ist.. aber naja das ist jetzt auch erstmal nebensache..
    ich habe ein ganz anderes problem, ich verwende zum loggin ein captcha. aber irgentwie funktioniert das ganze nicht. Es ist immernoch das gleiche Loginsystem von oben !!
    PHP-Code:
    <?php session_start (); ?>

    <html>
    <head>

    <link rel="stylesheet" type="text/css" href="./images/style.css">
    <style type="text/css">
    <!--
    .Stil1 {color: #FF0000}
    .Stil2 {
        color: #FF0000;
        font-weight: bold;
        font-size: 13px;
    }
    -->
    </style>
    </head>

    <?php

      $fehler 
    '';

      
    $captcha_input_nr = (!empty($_POST['captcha_input_nr']) ? $_POST['captcha_input_nr'] : '');

      if (!empty(
    $_POST['captcha_code' $captcha_input_nr])) {

        
    // Aufbau der Datenbankverbindung 
    $connectionid  mysql_connect ("localhost""db""xxxxxx"); 
    if (!
    mysql_select_db ("db"$connectionid)) 

      die (
    "Keine Verbindung zur Datenbank"); 


        
    // Captcha Code anhand der Id aus der Datenbank lesen

        
    $sql 'SELECT code FROM captcha WHERE hash="' mysql_real_escape_string($_POST['captcha_hash']) . '"';

        
    $query mysql_query($sql);

        
    $row mysql_fetch_array($query);

        
    // Prüfen ob der Code mit der Benutzereingabe übereinstimmt

        
    if ($row['code'] == strtoupper($_POST['captcha_code' $captcha_input_nr])) {

          
    // Code aus DB löschen

          
    $sql 'DELETE FROM captcha WHERE hash="' mysql_real_escape_string($_POST['captcha_hash']) . '"';

          
    mysql_query($sql);



          
    // An dieser Stelle kann die normale Verarbeitung des Formulars stattfinden

          
    echo 'Richter Code wurde eingegeben.';

        } else {

          
    $fehler 'Bitte den richtigen Sicherheitscode eingeben!<br /><br />';

        }

      }



      if (empty(
    $_POST['captcha_code' $captcha_input_nr]) || !empty($fehler)) {

        
    // Captcha Id erzeugen

        
    $captcha_hash md5(time());

        
    // Zufallsnummer für das Eingabefeld erzeugen

        
    $input_nr rand (10009999);

    ?>

    <body>
    <?php 
    if (isset ($_REQUEST["fehler"])) 

      echo 
    "Die Zugangsdaten waren ungültig."

    ?> 
     
    <center>
    <form action="index.php?section=login" method="post">

      <table border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>LOGIN SYSTEM PLAY-MONEY</td>
          
        </tr>
      </table>
        <br>
        <table border="0" cellspacing="0" cellpadding="0" class="mainpage">
    <tr>
    <td align="center"><input type="hidden" name="captcha_hash" value="<?php echo $captcha_hash?>" /></td>
    </tr>
          <tr>
            <td align="center"><a href="index.php"><img src="captcha.php?h=<?php echo $captcha_hash?>" alt="Sicherheitsgrafik" border="0"/></a></td>
          </tr>
          <tr>
            <td align="center"><span class="Stil1">Sicherheitscode</span></td>
            <td><input type="text" name="captcha_code<?php echo $input_nr?>" /><input type="hidden" name="captcha_input_nr" value="<?php echo $input_nr?>" /></td>
          </tr>
          <tr>
            <td align="center">Benutzername</td>
            <td><input type="password" name="name" value="" size="20"></td>
          </tr>
          <tr>
            <td align="center">Kennwort</td>
            <td><input type="password" name="pwd" value="" size="20"></td>
          </tr>
          <tr>
            <td align="center"><input type="Submit" name="login" value="LOGIN"></td>
          </tr>
          <tr>
            <td align="center"><a href="index.php?section=register"><b>Neuen Account anlegen</b></a></td>
          </tr>
          <tr>
            <td align="center"><a href="index.php?section=lost"><b>Passwort vergessen?</b></a></td>
          </tr>
        </table>
        
    </form>
    <?php

      
    }

    ?>
    </center>
    <center class="Stil2">Sollte die Grafik nicht zu lesen sein, klicke bitte auf die Sicherheitsgrafik um eine neue zu laden.</center>
    </body>

    </html>
    die captcha.php sieht folgendermaßen aus:
    PHP-Code:
    <?php



    // Bild Id generieren

    $bg_id rand(13);



    // Schriftfarben setzen

    switch ($bg_id) {

      case 
    1:

      case 
    2$colors = array('100''010''110''011''101'); break;

      case 
    3$colors = array('100''001''110''011'); break;

    }



    // Zeichensatz setzen

    $chars = array('A''B''C''D''E''F''G''H''J''K''M''N''P''Q''R''T''U',

                   
    'V''W''X''Y''Z''2''3''4''5''6''7''9');



    // Bild erzeugen

    $img imagecreatefrompng('bg/bg' $bg_id '.png');



    $code '';

    $xpos rand(38);

    for (
    $i 1$i <= 4$i++) {

      
    // Code erzeugen

      
    $letter $chars[array_rand($chars)];

      
    $code .= $letter;



      
    // Schriftfarben erzeugen

      
    $c $colors[array_rand($colors)];

      
    $r = ($c[0] == 255);

      
    $g = ($c[1] == 255);

      
    $b = ($c[2] == 255);

      
    $col imagecolorallocate($img$r$g$b);



      
    // Code zeichnen

      
    imagettftext($img14rand(-55), $xposrand(2025), $col'ttf/actionjf'$letter);

      
    $xpos += 20;

    }



    // Header anpassen

    header('content-type: image/png');



    // Bild ausgeben

    imagepng($img);



    // Bild freigeben

    imagedestroy($img);


    // Aufbau der Datenbankverbindung 
    $connectionid  mysql_connect ("localhost""db""xxxxxxxxxx"); 
    if (!
    mysql_select_db ("db"$connectionid)) 

      die (
    "Keine Verbindung zur Datenbank"); 


    // Alte Codes löschen (älter als eine Stunde, oder IP des Users)

    $sql 'DELETE FROM captcha WHERE time < ' . (time() - 3600) . ' OR ip = "'

          
    $_SERVER['REMOTE_ADDR'] . '"';

    @
    mysql_query($sql);



    // Eindeutige Id des Codes aus dem Parameter auslesen

    $code_id $_GET['h'];



    // Neuen Code einfügen

    $sql 'INSERT INTO captcha (hash, code, ip, time) VALUES ("' mysql_real_escape_string($code_id)

         . 
    '", "' $code '", "' $_SERVER['REMOTE_ADDR'] . '", ' time() . ')';

    @
    mysql_query($sql); 

    ?>
    Ich kann mich einloggen ohne den captchacode einzugeben !!
    Ich hoffe ihr könnt mir dabei helfen !!

    Mfg. Oliver
     

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 02.12.09, 17:58
  2. Antworten: 10
    Letzter Beitrag: 27.01.09, 19:59
  3. Frage zu index.php?section=index
    Von funnyzocker im Forum PHP
    Antworten: 12
    Letzter Beitrag: 28.10.07, 11:10
  4. Antworten: 15
    Letzter Beitrag: 01.12.02, 20:16
  5. index.php?section=neu
    Von z0oL im Forum PHP
    Antworten: 2
    Letzter Beitrag: 21.09.02, 19:03