kostenloser Webspace werbefrei: lima-city


Probleme mit Login-Skript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    hi ich habe folgende Porblem

    ich habe Login
    session_start();
        if(!isset($_SESSION['UserID'])) {
        require_once("system/autologout.php");
        if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
            $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());
            $row = mysql_fetch_assoc($result);
            if (mysql_num_rows($result)==1){
                 doLogin($row['ID'], isset($_POST['Autologin']));
            ?>
                <div id="fehler">
                    <?php echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n"; ?>
                    <p>
                        "Sie wurden erfolgreich eingeloggt.<br />
                        "Zur <a href="../?seite=log">Startseite</a>
                        <?php
                            header ("Refresh: 5; ../?seite=log"); 
                        ?>
                    </p>
                 </div>
            <?php
            }
            else{
            ?>
            <p id="fehler">
                "Sie konnten nicht eingeloggt werden.<br />
                "Nickname oder Passwort fehlerhaft.<br />
             
                "Zurück zum <a href="<?php $_SERVER['PHP_SELF']; ?>">Login-Formular</a>
                <?php
                            header ("Refresh: 5; ../?seite=start"); 
                ?>
             </p>
             <?php
            }
        }
        else{
        ?>
        <form  name="Login"  action="<?php $_SERVER['PHP_SELF'] ?>" method="post" accept-charset="ISO-8859-1">
            <table>
                <tr>
                    <td>
                        <fieldset id="dialog">
                            <p>Bitte geben Sie Zugangsdaten um Server anzumelden</p>
                        </fieldset>
                    </td>
                </tr>
                <tr>
                   <td>
                        <fieldset id="box">
                            <table>
                                <tr>
                                    <td>
                                        <p>UserName</p>
                                    </td>
                                    <td>
                                        <input type="text" name="Nickname" maxlength="32">
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <p>Passwort</p>
                                    </td>
                                    <td>
                                        <input type="password" name="Passwort">
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <p>Eingeloggt bleiben</p>
                                    </td>
                                    <td>
                                        <input type="checkbox" name="Autologin" value="1">
                                    </td>
                                </tr>
                                <tr>
                                    <td id="log">
                                        <input type="submit" name="submit" value="Einloggen">
                                    </td>
                                </tr>
                            </table>
                        </fieldset>
                   </td>
                </tr>
            </table>
        </form>
        <?php
        }
        }else {
                header('Location: ?seite=log');
        }
        
    ?>

    der Fuktionert wunderbar

    nur ich will bei einloggen "admin" oder ID "1" nicht in "header('Location: ?seite=log'); sonder in Ordner "admin/index.php"
    und restliche UserID soll "header('Location: ?seite=log');"

    Danke vorraus

    Beitrag zuletzt geändert: 17.2.2015 20:39:06 von youtvti
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hallo youtvti,


    dann mach doch einfach anstatt
    ?>
                <div id="fehler">
                    <?php echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n"; ?>
                    <p>
                        "Sie wurden erfolgreich eingeloggt.<br />
                        "Zur <a href="../?seite=log">Startseite</a>
                        <?php
                            header ("Refresh: 5; ../?seite=log"); 
                        ?>
                    </p>
                 </div>
            <?php
    dieses hier:
    ?>
                <div id="fehler">
                    <?php echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n"; ?>
                    <p>
                        "Sie wurden erfolgreich eingeloggt.<br />
    <?php
    if($row['ID']==1) {
                            header ("Refresh: 5; admin/index.php"); 
    }else {
    ?>
     "Zur <a href="../?seite=log">Startseite</a>
                        <?php
                            header ("Refresh: 5; ../?seite=log"); 
                        ?>
    <?php
    }
    ?>
                       
                    </p>
                 </div>
            <?php



    lg hechma
  4. Bei deinem Login verwendest Du MD5 als Passworthash, das ist prinzipiell keine so gute Idee (google einfach mal nach MD5 unsicher). Je nachdem wie groß dein Projekt ist wird das dich im Moment wahrscheinlich nicht so sehr interessieren, aber ich denke bei so etwas ist es gut von Anfang an sicherere Methoden zu verwenden (z.B. http://php.net/manual/en/function.password-hash.php).
    Desweiteren könnte das Setzen von Headern mittem im Quelltext zu Problemen führen ("Headers already sent"), da auf den Lima Servern soweit ich weiß kein output buffering aktiviert ist, bei XAMPP oder ähnlichen Paketen meistens aber schon (da kommen dann immer wieder Fragen warum das denn auf dem dummen Lima Server nicht funktioniere ;)).
    Am besten setzt Du die header ganz am Anfang von der Datei oder verwendest HTML meta Weiterleitungen (http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung).
  5. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    was ist mit dieser php

    if(!isset($_SESSION['UserID'])) {
    
        }else {
                header('Location: ?seite=log');
        }

    sonst kann man urladress von id in andere id springen
  6. m***3

    statt md5
    $string = 'Benutzerpasswort';
    $salt = 'PasswortSalz';
    hash('sha512',$string.$salt)


    im Script
    md5(trim($_POST['Passwort']))
    zu
    hash( 'sha512', trim( $_POST['Passwort'] ).$salt )

    und in der Datenbank-Spalte "Passwort" auf varchar(128) setzen

    $salt (Salz):wink: dann in deinem Script ändern!!!

    Beitrag zuletzt geändert: 29.4.2015 10:39:48 von mg123
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!