Avatar billede paviuz Nybegynder
10. august 2002 - 01:25 Der er 13 kommentarer og
1 løsning

Eksempel på et login system i MYSQL

Nogen der lige gider at poste et eksempel :)

Jeg er ret ny til php,  men gad godt vide hvordan sådan et ser ud!

Der er sikkert nogen som har et liggende...
Der må gerne være meget forklaret i det.!

Det skal være lavet af PHP og MySQL! håber i kan hjælp ! ?!? :D
__________________
PaviuZ - Its to simple\
Avatar billede ztyxx Nybegynder
10. august 2002 - 01:31 #1
her er noget jeg lige har bakset sammen for kort tid siden, det kører med sessions, skal nok rettes lidt til, men det virker

<?php
session_start();
mysql_connect("localhost", "user", "*******") or die (mysql_error());
mysql_select_db("db") or die (mysql_error());
$my_user = mysql_query("select nick from my_users where nick = '$nick' and pass = '$pass'") or die (mysql_error());
$check = mysql_num_rows($my_user);
    if ($check==1) {
    session_register(nick);
    echo "<meta http-equiv=\"Refresh\"
content=\"0;
URL= login2.php\">";
    } else {
        echo "forkert password og brugernavn";
    }
       
   
   

?>
<html>
<head>
<title>loginform</title>
</head>
<body>
    <form method=post action="<?php echo $PHP_SELF; ?>">
    Nick: <input type="text" name="nick"><br>
    Pass: <input type="password" name="pass"><br>
    <input type="submit" name="s1" value="Login">
    </form>   
</body>
</html>

<?

mysql_close();
?>
Avatar billede paviuz Nybegynder
10. august 2002 - 01:33 #2
du har åbent bart fået besked på at holde øje med mig :D

Hvad har jeg nu gjort :)

Ej.. det er bare fordi du har svaret i min 2 eneste php spm.....! :D
Avatar billede ztyxx Nybegynder
10. august 2002 - 01:34 #3
hehe;-)
Avatar billede paviuz Nybegynder
10. august 2002 - 01:36 #4
Der mangler lige noget PHPmyadmin kode der :D
Avatar billede ztyxx Nybegynder
10. august 2002 - 01:36 #5
og så lige SQL delen:-)

CREATE TABLE my_users (
  id tinyint(4) NOT NULL auto_increment,
  nick varchar(10) NOT NULL default '',
  pass varchar(10) NOT NULL default '',
  PRIMARY KEY  (id),
  UNIQUE KEY nick (nick)
) TYPE=MyISAM;
Avatar billede spasserbent Nybegynder
10. august 2002 - 01:42 #6
paviuz -> Du bør tilføje disse linjer mellem linje 4 og 5, for at undgå at folk indtaster sjove brugernavne, som mixer rundt men din Query. (fx 1' OR 1 = '1 )

$nick = htmlentities($nick);
$pass = htmlentities($pass);
Avatar billede paviuz Nybegynder
10. august 2002 - 01:45 #7
fedt nick :P
__________________
PaviuZ - Its to simple\
Avatar billede tipsen Nybegynder
10. august 2002 - 02:00 #8
Avatar billede paviuz Nybegynder
10. august 2002 - 02:13 #9
Hvorfor skulle jeg ville lære noget? :D
__________________
PaviuZ - Its to simple\
Avatar billede paviuz Nybegynder
10. august 2002 - 02:58 #10
Glemte vist en ikke mellem jeg og ville

lol da :D


__________________
PaviuZ - Its to simple\
Avatar billede tipsen Nybegynder
10. august 2002 - 12:53 #11
Der er to typer medlemmer på eksperten - dem som vil lære noget og dem som vil have færdige løsninger...
Avatar billede paviuz Nybegynder
10. august 2002 - 13:31 #12
Jeg vil gerne lære noget :D men grunden til jeg vil se et ekspempel hva at jeg ku sætte mig ind i det... ikke fordi jeg ska bruge det...
__________________
PaviuZ - Its to simpel\
Avatar billede martin1000ben Nybegynder
10. august 2002 - 15:39 #13
Her er mit loginsystem (session baseret med mulighed for "auto"login)


<?php
// index.php
require($_SERVER["DOCUMENT_ROOT"]."/butik/include/functions.inc.php");

if(CheckLogin($_COOKIE["ButikkensAutoLogin"],$_COOKIE["ButikkensAutoPass"])) {
    header("location: checklogin.php?login=$_COOKIE[ButikkensAutoLogin]&pass=$_COOKIE[ButikkensAutoPass]");
}

Common_admin_header("Admin Login");
?>
<h2>Administrator Login</h2>
<form action="checklogin.php" method="post">
<table>
    <tr>
        <td>Login</td>
        <td><?php print makeinput("text","login");?></td>
    </tr>
    <tr>
        <td>Password</td>
        <td><?php print makeinput("password","pass");?></td>
    </tr>
    <tr>
        <td>Automatisk login<br>Må virke i</td>
        <td><?php print makeinput("checkbox","autologin","ja");?><br>
        <?php
        $things = array(
                            "1",
                            "7",
                            "14",
                            "30",
                            "90",
                            "365"
                        );
        print "<select name='cookietime'>";
        for($i=0; $i<sizeof($things); $i++) {
            print "<option value='".$things[$i]."'>".$things[$i]." dage</option>";
        }
        print "</select>";
        ?>       
        </td>
    </tr>
    <tr>
      <td colspan='2' align='center'><?php print makeinput("submit","","Login -->");?></td>
    </tr>
</table>
</form>
<?php

Common_admin_footer();
?>


<?php
// checklogin.php
session_start();
require($_SERVER["DOCUMENT_ROOT"]."/butik/include/functions.inc.php");

if(!OpenLogin($_REQUEST["login"],$_REQUEST["pass"])) {
    Common_admin_header("Login | Fejl");
    $fejl = get_var("userpassfejl");
    print printFejl($fejl);
    Common_admin_footer();
    exit;
} else {
    if($_POST["autologin"] == "ja") {
        setcookie ("ButikkensAutoLogin", $_POST["login"],time()+3600*$_POST["cookietime"]);       
        setcookie ("ButikkensAutoPass", $_POST["pass"],time()+3600*$_POST["cookietime"]);
    }
    $ses_login = $_REQUEST["login"];
    $ses_pass = $_REQUEST["pass"];
    session_register("ses_login");
    session_register("ses_pass");
    $admin_id = get_admin_id($ses_login,$ses_pass);
    openconn();
    $sql = sql("SELECT COUNT(*) as tal FROM logins WHERE admin_id = '$admin_id'");
    list($tal) = mysql_fetch_row($sql);
    if($tal == 0) {     $sql = sql("INSERT INTO logins VALUES(NULL,NOW(),'$admin_id')"); }
    else { $sql = sql("UPDATE logins SET LoginsDato = NOW() WHERE admin_id = '$admin_id'"); }
    closeconn();
    header("location: start.php");
    exit;
}
?>

Dog er der mange funktioner i det hele, men her kommer lige det væsentligste til loginsystemet.

<?php
// functions.inc.php
function OpenLogin($login,$pass) {
    $passmd5 = strtolower(md5($pass));
    $strLogin = strtolower($login);
    openconn();
    $sql = sql("SELECT AdminLogin, AdminPass FROM admin WHERE AdminLogin = '$strLogin'");
    closeconn();
    if(mysql_num_rows($sql) != 1) { Return false; }
    else {
        list($login,$pass) = mysql_fetch_row($sql);
        if($pass != $passmd5) { Return false; }
        else { Return true; }
    }
}

function CheckLogin($login,$pass) {
    $passmd5 = strtolower(md5($pass));
    $strLogin = strtolower($login);
    openconn();
    $sql = sql("SELECT COUNT(*) as tal FROM admin WHERE AdminLogin = '$strLogin' AND AdminPass = '$passmd5'");
    closeconn();
    list($tal) = mysql_fetch_row($sql);
    if($tal == 1) { Return true; } else { Return false; }
}
?>

Det smarte med dette system er at "ejeren" af databasen IKKE kan komme ind på andre brugers navne etc. da passwordet er MD5'et (envejs kodning) - Så i databasen står der bare fx 0944msdf033nlef33rcctg slevom koden fx er 2456...
Det andet er jo cookie autologin tingen, dejlig ting når man er administrator selv :)
Avatar billede flashers Nybegynder
01. februar 2005 - 21:22 #14
har lige et spørgsmål til denne tråd håber i er der, sql delen kan jeg ikke få til at virke
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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