Avatar billede noob2003 Nybegynder
03. februar 2004 - 00:23 Der er 8 kommentarer og
1 løsning

login script med aktiv /inaktiv

Jeg skal til og lave et script php/mysql hvor jeg skal kunne sætte brugeren
til inaktiv hvis konto er lukket, hvordan kan jeg nemmest gøre dette ???

Mvh.
noob2003
Avatar billede sukos Juniormester
03. februar 2004 - 00:25 #1
bruger selv et felt i mysql'en "status" med 1 eller 0
Avatar billede noob2003 Nybegynder
03. februar 2004 - 00:31 #2
Hvordan sætter jeg det ind i dette script, så den giver besked om konto er lukket ??

<?php
session_start();

$db = mysql_connect("localhost", "root", "password") or die (mysql_error());
mysql_select_db("password", $db) or die (mysql_error());

$dotjek = mysql_query("SELECT brugernavn, password, admin FROM tester WHERE brugernavn='$_POST[brugernavn]'") or die (mysql_error());

if(isset($_POST['brugernavn'], $_POST['password'])) {

$brugertjek = mysql_fetch_object($dotjek);

if($brugertjek->brugernavn != $_POST['brugernavn']) {
$_SESSION['navne_fejl'] = 1;
header("Location:logind.php");
exit;
}

$_SESSION['brugernavn'] = $_POST['brugernavn'];

    if($brugertjek->password != md5($_POST['password'])) {
    $_SESSION['password_fejl'] = 1;
    header("Location:logind.php");
exit;
    }else{
    $_SESSION['admin'] = $brugertjek->admin;
    header("Location:side1.php");
exit;
    }

mysql_free_result($dotjek);

}
?>
Avatar billede fragze Juniormester
03. februar 2004 - 10:51 #3
gimme din side1.php =?)
Avatar billede sukos Juniormester
03. februar 2004 - 12:11 #4
Du laver et nyt felt i DB'en, ("status" f.eks.) som et felt af typen enum med værdien 0 og 1

Din query bliver så:
$dotjek = mysql_query("SELECT brugernavn, password, admin, status FROM tester WHERE brugernavn='$_POST[brugernavn]'") or die (mysql_error());

Ved tjek:
if($brugertjek->brugernavn != $_POST['brugernavn']) {
$_SESSION['navne_fejl'] = 1;
header("Location:logind.php");
exit();
}

if($brugertjek->status != 1) {
$_SESSION['status_fejl'] = 1; // status_fejl skal jo defineres
header("Location:logind.php");
exit();
}

Ligner iøvrigt noget (ged)kode jeg engang baksede sammen?
Kan godt prøve at lave noget nyt, men først engang i aften.
Avatar billede noob2003 Nybegynder
03. februar 2004 - 15:02 #5
sukos >> det vil jeg da ta imod med kyshånd :-)
Avatar billede sukos Juniormester
04. februar 2004 - 12:16 #6
hmm,

login.php

<?php session_start(); ?>
<html><head></head>
<body>
<form action="submit.php" method="post">
Bruger<br>
<input type="text" name="brugernavn"><br>
Password<br>
<input type="password" name="password"><br>
<input type="submit">
</form>

<?php
if(isset($_SESSION["error"])) {
echo $_SESSION["error"];
unset($_SESSION["error"]);
}
?>

</body></html>

submit.php:

<?php
session_start();


if(isset($_POST["brugernavn"], $_POST["password"])) {

$db = mysql_connect("localhost", "bruger", "password") or die (mysql_error());
mysql_select_db("dbnavn", $db) or die (mysql_error());

$dotjek = mysql_query("SELECT * FROM `460341` WHERE `brugernavn` = '". $_POST["brugernavn"] ."'") or die (mysql_error());

if(mysql_num_rows($dotjek) !== 1) {
$_SESSION["error"] = "Brugernavnet findes ikke";
header("Location:login.php");
exit();
}else{

$brugertjek = mysql_fetch_object($dotjek);

if($brugertjek->password != md5($_POST["password"])) {
$_SESSION["error"] = "Forkert password!";
header("Location:login.php");
exit();
}

if($brugertjek->status != 1) {
$_SESSION["error"] = "Kontoen er ikke aktiv";
header("Location:login.php");
exit();
}

$_SESSION["brugernavn"] = $brugertjek->brugernavn;
$_SESSION["admin"] = $brugertjek->admin;

}
header("Location:side1.php");
exit();
}
?>

side1.php
<?php
session_start();

if(isset($_SESSION["brugernavn"])) {
echo"Hej ". $_SESSION["brugernavn"];
}else{
echo"Du er ikke logget ind";
}
?>

dump af tabellen 460341:

CREATE TABLE `460341` (
  `brugernavn` varchar(16) NOT NULL default '',
  `password` varchar(32) NOT NULL default '',
  `admin` enum('0','1','2') NOT NULL default '0',
  `status` enum('0','1') NOT NULL default '0',
  UNIQUE KEY `brugernavn` (`brugernavn`)
) TYPE=MyISAM;

#
# Data dump for tabellen `460341`
#

INSERT INTO `460341` VALUES ('sukos', '231a48019c390f2b40d1b6956bedc1fd', '2', '1');
INSERT INTO `460341` VALUES ('test', '098f6bcd4621d373cade4e832627b4f6', '0', '0');
INSERT INTO `460341` VALUES ('nix', '393b7e38038f12c5fb4c92e81a1b5a01', '2', '0');
Avatar billede avminarm Juniormester
04. februar 2004 - 12:50 #7
sukos>> stadigvæk gld for sessions va? ;o)
Avatar billede noob2003 Nybegynder
04. februar 2004 - 12:52 #8
sukos >> smid lige et svar
Avatar billede sukos Juniormester
04. februar 2004 - 12:55 #9
Jahh, jeg er STOR tilhænger af sessions! :O)
Bl.a. fordi en session kan nemt ændres under load af siden, uden at siden skal reloades
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