php http authenticatie + mysql + timer

Pagina: 1
Acties:
  • 45 views sinds 30-01-2008

  • jeroen_t
  • Registratie: Februari 2003
  • Laatst online: 09-09-2023
Ik heb onderstaande inloggen.php die ik in elke pagina die ik wil beveiligen include. Doet het goed alleen moet ik, als ik voor de eerste keer aanlog, telkens 2x mijn userid/password opgeven voordat hij echt door loopt.
Vreemd eigenlijk. Globals heb ik uit staan in m'n php.ini maar ook als ik die aan zet geeft het hetzelfde 'feature'.
Scriptje komt overigens van www.php.net

Wie helpt mij? Ik zoek al zo lang en wordt er wanhopig van.... 8)7

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
function auth () {
   Header('WWW-Authenticate: Basic realm="phppgb"');
   Header("HTTP/1.0 401 Unauthorized");
   echo "
   <HTML><BODY BGCOLOR='#DDDDDD'><FONT SIZE='3' COLOR='#0000CC'>
   <P><DIV ALIGN='left'>U dient een geldig userid en password in te voeren \n
   <p>Mocht u uw password vergeten zijn of een userid aan willen vragen, neem dan contact met ons op
   via <A HREF='http://www.zorgmatch.org' TARGET='_top'>zorgmatch.org</A>
   </DIV></FONT></BODY></HTML>";
   exit;
}

$sec_user=mysql_connect("_server_","_user_","_password_") or die("Unable to connect to SQL server");
mysql_select_db("pgb") or die( "Unable to select database");
if(!isset($_SERVER['PHP_AUTH_USER'])) {
   $timeout = mktime(date(G),date(i)+10,0,date("m"),date("d"),date("Y"));
   mysql_query("update users set login='$timeout' where id='$user' and pasw=PASSWORD('$pass')") or die("k");
   auth();
} else {
   $pass = $_SERVER['PHP_AUTH_PW'];
   $user = $_SERVER['PHP_AUTH_USER'];
   $nowtime = mktime(date(G),date(i),0,date("m"),date("d"),date("Y"));
   $quer2 = mysql_query("select * from users where id='$user' and pasw=PASSWORD('$pass') and login > '$nowtime'") or die("kuk2");
   if (mysql_num_rows($quer2) == 0) {
      $timeout = mktime(date(G),date(i)+10,0,date("m"),date("d"),date("Y"));
      mysql_query("update users set login='$timeout' where id='$user' and pasw=PASSWORD('$pass')") or die("k");
      auth();
   }
}
mysql_close($sec_user);

?>

[ Voor 18% gewijzigd door jeroen_t op 05-05-2004 19:32 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:00

gorgi_19

Kruimeltjes zijn weer op :9

Doet het goed alleen moet ik, als ik voor de eerste keer aanlog, telkens 2x mijn userid/password opgeven voordat hij echt door loopt.
En dan komt nu het feitelijke probleem. Waar gaat het fout, op welke regel? Welke waarden heb je op welk moment wel, en op welk moment niet.
Dit heet debuggen en is iets wat iedere programmeur zelf moet doen. :)

P&W FAQ - Leer **** debuggen!!

Neem deze eens door. Je ziet dan zelf waar het fout gaat en de oplossing zie je dan waarschijnlijk zelf ook. PW is niet bedoeld om een ander jouw debugprobleem te laten oplossen door een lap code neer te zetten met grofweg de opmerking: het werkt niet. :)

Let trouwens de volgende keer ook op je topictitle en neem de quickstart eens door :)
*!*!* Over topictitels in P&W - Updated 25 feb 04 *!*!*
P&W FAQ - De "quickstart"

Succes met je applicatie :)

[ Voor 98% gewijzigd door gorgi_19 op 05-05-2004 19:45 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Dit topic is gesloten.