Avatar billede spike. Nybegynder
24. august 2002 - 16:08 Der er 27 kommentarer og
1 løsning

Login Script?

Jeg har 4 tabeller i min database kaldt User og Pass og Dato og Limit

Når man går ind på
check.php?User=$user&Pass=$pass
skal den checke om user og pass passer med det der står i databasen, og om Dato er Limit dage gammel, hvis dato er over Limit dage gammel skal den ikke give adgang.
hvordan?
Avatar billede limemedia Nybegynder
24. august 2002 - 16:15 #1
Prøv evt

$sql = mysql_query("SELECT user FROM table WHERE User='".$_GET["User"]."' && Pass='".$_GET["Pass"]."' && (TO_DAYS(NOW())-TO_DAYS(Dato)) <= Limit");
if(!mysql_num_rows($sql)) {
    die ("Du burde ikke være her !!!");
}

echo "hej og velkommen på mit hemmelige område


jeg går ud fra limit er en integer der indeholder et antal dage
Avatar billede spike. Nybegynder
24. august 2002 - 16:20 #2
ja men hvad skal jeg kalde dato?

hvis den er oprtettet 1/1-2002 skal jeg skrive hvad?
Avatar billede spike. Nybegynder
24. august 2002 - 16:22 #3
altså sådan så at den er ok indtil den 16/1-2002 hvis limit = 15
Avatar billede limemedia Nybegynder
24. august 2002 - 16:23 #4
Dato skal være af typen "date"... formatet er yyyy-mm-dd
Avatar billede spike. Nybegynder
24. august 2002 - 16:25 #5
hvordan får jeg den værdi?

$dato = date(); ?
Avatar billede limemedia Nybegynder
24. august 2002 - 16:27 #6
hvis du laver din db som

CREATE TABLE `login` (
`user` VARCHAR( 32 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL ,
`dato` DATE NOT NULL ,
`dage` TINYINT UNSIGNED NOT NULL ,
PRIMARY KEY ( `user` )
);

og PHP'en dertil ala
$sql = mysql_query("SELECT user FROM table WHERE user='".$_GET["User"]."' && pass='".$_GET["Pass"]."' && (TO_DAYS(NOW())-TO_DAYS(dato)) <= dage");
if(!mysql_num_rows($sql)) {
    die ("Du burde ikke være her !!!");
}


jeg har omdøbt limit til dage da limit er et beskyttet ord i mysql
Avatar billede limemedia Nybegynder
24. august 2002 - 16:28 #7
$dato = date(Y-m-d);
Avatar billede limemedia Nybegynder
24. august 2002 - 16:28 #8
FROM table
er selvfølgelig
FROM login
Avatar billede spike. Nybegynder
24. august 2002 - 16:32 #9
<?
if($mpass == 'password')
{
    $dato = date("Y-m-d");
    echo "User Added" . "<BR>";
    echo '<a href="index.php">Back</a>' . "<BR>";
    echo '<a href="add.php">Refresh</a>';
    $db = mysql_connect('mysql.mannedk.dk', 'root', 'password');
    mysql_select_db('mannedk', $db);
    mysql_query("INSERT INTO login (user, pass, dato, limit) VALUES ('$user', '$pass', '$dato', '$limit')");
} else {
?>
</font>
<form name="form1" method="post" action="">
  <font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Master Pass:<br>
  <input type="password" name="mpass">
  <br>
  User Name:<br>
  <input type="text" name="user">
  <br>
  User Password:<br>
  <input type="text" name="pass">
  <br>
  Day Limit:<br>
  <input type="text" name="limit">
  <br>
  <input type="submit" name="submit" value="submit">
  <br>
  <br>
  <a href="index.php">Back</a> </font>
</form>
<font color="#000000" face="Verdana, Arial, Helvetica, sans-serif">
<?php
}
?>


med det der sker der intet
Avatar billede spike. Nybegynder
24. august 2002 - 16:34 #10
når jeg prøver at indsætte
Avatar billede spike. Nybegynder
24. august 2002 - 16:36 #11
nu virker det at lave nye usere
Avatar billede limemedia Nybegynder
24. august 2002 - 16:38 #12
prøv at udskifte
mysql_query("INSERT INTO login (user, pass, dato, limit) VALUES ('$user', '$pass', '$dato', '$limit')");

med
mysql_query("INSERT INTO login (user, pass, dato, limit) VALUES ('".$_GET["user"]."', '".$_GET["pass"]."', '$dato', '".$_GET["limit"]."')") or die(mysql_error());

koden  or die(mysql_error()) gør at vi får en fejlbesked ud hvis det feljer
Avatar billede spike. Nybegynder
24. august 2002 - 16:40 #13
Jeg har nu lavet en bruger med det du sagde:
Ret  Slet  bruger  pass  2002-08-24  15

så får at logge ind bruger jeg din kode
auth.php?User=bruger&pass=pass

men så får jeg:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /check/auth.php on line 11
0

og det er er linie:
if(!mysql_num_rows($sql)) {
Avatar billede spike. Nybegynder
24. august 2002 - 16:42 #14
<?php
$db = mysql_connect('mysql.manne.dk', 'local', '');
$sql = mysql_query("SELECT user FROM login WHERE user='".$_GET["User"]."' && pass='".$_GET["Pass"]."' && (TO_DAYS(NOW())-TO_DAYS(dato)) <= dage");
if(!mysql_num_rows($sql)) {
    die ("0");
} else {
    die("1");
}
?>

jeg vil gerne have den til at returnere 0 hvis useren er falsk eller over limit dage gammel eller 1 hvis brugeren er ok og under limit dage gammel
Avatar billede limemedia Nybegynder
24. august 2002 - 16:45 #15
to sek, tester lige på min server
Avatar billede spike. Nybegynder
24. august 2002 - 16:46 #16
k
Avatar billede limemedia Nybegynder
24. august 2002 - 16:57 #17
SELECT user
FROM login
WHERE user='benni' && pass='benni' && TO_DAYS(NOW())-TO_DAYS(dato) < dage

for mig virker (har oprettet brugeren benni)

derfor må

<?php
$db = mysql_connect('mysql.manne.dk', 'local', '');
$sql = mysql_query("
  SELECT user
  FROM login
  WHERE user='".$_GET["user"]."' && pass='".$_GET["pass"]."' && TO_DAYS(NOW())-TO_DAYS(dato) < dage
") or die(mysql_error());
if(!mysql_num_rows($sql)) {
    die ("0");
} else {
    die("1");
}
?>

også virke, right ?
Avatar billede spike. Nybegynder
24. august 2002 - 16:59 #18
så skal jeg så bruge

.php?user=benni&pass=benni ikke?
Avatar billede spike. Nybegynder
24. august 2002 - 17:01 #19
benni benni eksistere men jeg får stadig 0
Avatar billede spike. Nybegynder
24. august 2002 - 17:02 #20
Ret  Slet  benni  benni  2002-08-24  15

<?php
$db = mysql_connect('mysql.manne.dk', '', '');
mysql_select_db('mannedk', $db);
$sql = mysql_query("
  SELECT user
  FROM login
  WHERE user='".$_GET["user"]."' && pass='".$_GET["pass"]."' && TO_DAYS(NOW())-TO_DAYS(dato) < dage
") or die(mysql_error());
if(!mysql_num_rows($sql)) {
    die ("0");
} else {
    die("1");
}
?>


giver 0
Avatar billede spike. Nybegynder
24. august 2002 - 17:03 #21
men da benni eksistere og er under de 15 dage så burde det da være 1?
Avatar billede limemedia Nybegynder
24. august 2002 - 17:06 #22
prøv at lave en
echo "<br>User : ".$_GET["user"];
echo "<br>Pass : ".$_GET["pass"];

et sted i koden, indeholder de dine variabler ?
Avatar billede spike. Nybegynder
24. august 2002 - 17:09 #23
nej den siger

User :
Pass : benni0
Avatar billede spike. Nybegynder
24. august 2002 - 17:11 #24
ah jeg fandt ud af det jeg havde skrevet User og ikke user
Avatar billede spike. Nybegynder
24. august 2002 - 17:12 #25
virker fint nu ;)
Avatar billede limemedia Nybegynder
24. august 2002 - 17:12 #26
tænkte nok det var i den stil :)
Avatar billede spike. Nybegynder
24. august 2002 - 17:13 #27
kan du ikke lge hurtig sige hvordan jeg finder hvor mange dage brugeren har tilbage og har været indtil videre?

Du er på din xx dag af yy ?
Avatar billede limemedia Nybegynder
24. august 2002 - 17:18 #28
utestet

  SELECT user, TO_DAYS(NOW())-TO_DAYS(dato) AS datetilbage, dage-
TO_DAYS(NOW())-TO_DAYS(dato) AS dagebrugt
  FROM login
  WHERE user='".$_GET["user"]."' && pass='".$_GET["pass"]."' && TO_DAYS(NOW())-TO_DAYS(dato) < dage
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
Computerworld tilbyder specialiserede kurser i database-management

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