IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 27, 2006, 4:57:39 PM (20 years ago)
Author:
eugene
Message:

adding login, cookie tables, database selection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippMonitor/raw/ipp.php

    r9009 r9016  
    1515}
    1616
    17 function dbconnect () {
     17function dbconnect ($database) {
    1818
    1919  // connect to the database
    2020  require_once('DB.php');
    21   // $db = DB::connect("mysql://ipp:ipp@localhost/ipp");
    22   $db = DB::connect("mysql://ipp:ipp@localhost/detrend");
     21  $db = DB::connect("mysql://ipp:ipp@alala/$database");
    2322  if (DB::iserror($db)) {
    2423    echo "<b>error accessing database</b><br>\n";
     
    4039  $password = $_POST[password];
    4140
     41  $db = dbconnect('ippadmin');
     42
    4243  // make this a DB lookup
    43   $success = (($username == "eugene") && ($password == "test"));
    44 
     44  $sql = "SELECT username FROM users WHERE username = '$username' AND password = '$password'";
     45
     46  $qry = $db->query($sql);
     47  if (DB::iserror($db)) {
     48    echo "<b>error reading users table</b><br>\n";
     49    echo "Login Failed, please try again<br>\n";
     50    loginform ();
     51    menu_end();
     52  }
     53 
     54  $success = $qry->fetchInto($row);
    4555  if (!$success) { 
    4656    menu ('ipp.menu.dat', 'Login', 'ipp.css', '');
     
    5363  // generate an random ephemeral ID
    5464  $ID['name'] = $username;
    55   $ID['pass'] = "foobar";
    5665  $ID['proj'] = "";
     66
     67  // generate a cookie for the user
     68  $sql = "SELECT username,cookie FROM cookies WHERE username = '$username'";
     69  $qry = $db->query($sql);
     70  if (DB::iserror($db)) {
     71    echo "Cookie Failed, please try again<br>\n";
     72    menu_end();
     73  }
     74
     75  if ($qry->fetchInto($row)) {
     76    $ID['pass'] = $row[1];
     77  } else {
     78    $cookie = rand(0,100000);
     79    $ID['pass'] = $cookie;
     80    $sql = "INSERT into cookies (username, cookie) values ('$username', '$cookie')";
     81    $qry = $db->query($sql);
     82    if (DB::iserror($db)) {
     83      echo "Cookie Failed, please try again<br>\n";
     84      menu_end();
     85    }
     86  }
    5787
    5888  // the link is attached to every nav link
     
    107137  }
    108138
    109   // user supplied an invalid pass
    110   if ($ID['pass'] != "foobar") {
     139  $db = dbconnect ('ippadmin');
     140
     141  // make this a DB lookup
     142  $pass = $ID['pass'];
     143  $sql = "SELECT username FROM cookies WHERE cookie = '$pass'";
     144  $qry = $db->query($sql);
     145  if (DB::iserror($db)) {
     146    echo "<b>error reading users table</b><br>\n";
     147    echo "Login Failed, please try again<br>\n";
     148    loginform ();
     149    menu_end();
     150  }
     151 
     152  # $success = (($username == "eugene") && ($password == "test"));
     153  $success = $qry->fetchInto($row);
     154  if (! $success) {
    111155    menu('ipp.menu.dat', 'Login', 'ipp.css', '');
    112156    echo "unknown user, please login again<br>\n";
     
    114158    menu_end ();
    115159  }
    116 
    117160  // use the pass value to find the corresponding user
    118   $ID['name'] = "eugene";
     161  $ID['name'] = $row[0];
    119162
    120163  // $link is attached to every nav link
    121164  $ID['link'] = "pass=" . $ID['pass'];
    122165  if ($ID['proj']) {
    123     $ID['link'] = $link . "&proj=" . $ID['proj'];
    124   }
    125 
     166    $ID['link'] = $ID['link'] . "&proj=" . $ID['proj'];
     167  }
     168 
    126169  return $ID;
    127170}
Note: See TracChangeset for help on using the changeset viewer.