Avatar billede ronay Nybegynder
28. januar 2009 - 16:09 Der er 1 kommentar

PHP OOP Login system

Hej.
Jeg er igang med et projekt hvor vi koder Objekt-orienteret PHP.
Dog er jeg ikke den bedste, men jeg kan se det smarte i det.
Mit login system driller..
enten kan man ikke Logge ind "for di man har givet forkerte oplysninger" eller fordi den ikke gider begynde at checke formen ;S

men her er det

login.php :

<?php include "_inc/top.php"; ?>
<?php include "_class/login.php"; ?>
<?php include "_class/settings.php"; ?>
<div style="width: 40%;">
<div class="box">
    <h2><a href="">Login</a></h2>
        <div class="content relative">
                <?php
                    $Login = new Con;
                    $Login->login();
                    $User = new User;

                    if(!isset($_SESSION['umail']))
                        {
                            $Pass = md5(sha1(sha1(sha1(sha1($_POST["Pass"])))));
                        if($User -> CheckForm($_POST["Mail"], $_POST["Pass"]))
                            {
                                $user ->CheckForm();
                            }
       
                        echo $User->ShowForm($Umail);
                        }
?>
        </div>

</div>
<?php include "_inc/bund.php"; ?>



_class/settings.php :

<?php

class Con {
    var $host = "localhost";
    var $user = "root";
    var $pass = "";
    var $db = "hbm";
   
    function login(){
        mysql_connect($this->host, $this->user, $this->pass) or die(mysql_erro());
        mysql_select_db($this->db);
    }
}

?>



_class/login.php :

<?php

    class User {
       
        function ShowForm($Umail = '')
        {
            return "<table>
                <form name=\"Login\" method=\"post\" action=\"\">
                      <tr><td>Brugernavn:</td>
                      <td><input type=\"text\" name=\"Mail\" value=\"". $Umail ."\"></td></tr><br>
                      <tr><td>Kodeord:</td>
                      <td><input type=\"password\" name=\"Pass\"></td></tr><br>
                      <tr><td rowspan=\"2\"><center><input type=\"submit\" name=\"Send\" value=\"Log ind\"></center></td></tr>         
                </form></table>
        ";
        }
       
        function CheckForm($Umail, $Pass)
        {
            $Umail = preg_replace("#[^a-zA-Z0-9-_\.]#", "", $Umail);
           
            $sql = mysql_query("SELECT *
FROM  `user`
WHERE  `email` =  '". $Umail ."'
AND  `pass` =  '". $Pass ."'
LIMIT 1");
            $row = mysql_fetch_array($sql);
           
            if(!empty($row) && $row->pass == $Pass && $row->email == $Umail){
                $_SESSION["umail"] = $Umail;
                $_SESSION["uid"] = $row[id];
                $_SESSION["ulevel"] = $row[level];
                $_SESSION["user"] = $row[username];
            }else{
                return "<table><tr><td rowspan=\2\">Email eller Password er forkert, prøv igen.</td></tr>
                <form name=\"Login\" method=\"post\" action=\"\">
                      <tr><td>Brugernavn:</td>
                      <td><input type=\"text\" name=\"Mail\" value=\"". $Umail ."\"></td></tr><br>
                      <tr><td>Kodeord:</td>
                      <td><input type=\"password\" name=\"Pass\"></td></tr><br>
                      <tr><td rowspan=\"2\"><center><input type=\"submit\" name=\"Send\" value=\"Log ind\"></center></td></tr>         
                </form></table>
        ";
            }
        }
       
    }
   
    class register {
        function CheckForm()
        {
           
        }
       
        function ShowForm()
        {
           
        }
    }
?>
Avatar billede jakobdo Ekspert
28. januar 2009 - 22:29 #1
Kan du ikke tilføje lidt debug ?

F.eks.:

$sql = mysql_query("SELECT *
FROM  `user`
WHERE  `email` =  '". $Umail ."'
AND  `pass` =  '". $Pass ."'
LIMIT 1") or die(mysql_error());

Og ellers prøv med lidt debug ellers.

echo 'DEBUG: Jeg er nu her...';
igennem din kode, så kan du hele tiden se hvor langt du er nået på et givent tidspunkt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester