Avatar billede smits Nybegynder
18. december 2004 - 19:55 Der er 9 kommentarer

Problemer med login

Jeg har prøvet at lave login med php/mysql, men når åbner siden skal jeg skrive domain i boksen (www.lastrecon.dk/test.php)
min kode er som følger:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header("WWW-Authenticate: Basic realm='Last Recon'");
header("HTTP/1.0 401 Unauthorized");
echo "Password required.";
exit;
}
$host = "*****";
$user = "*****";
$pass = "*****";
$db = "*****";
mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);
$result = mysql_query("SELECT * FROM phpbb_users") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
if ($_SERVER['PHP_AUTH_USER'] == $row['username'] && $_SERVER['PHP_AUTH_PW'] == $row['user_password']) {
}
else {
header("WWW-Authenticate: Basic realm=\"members only\"");
header("HTTP/1.0 401 Unauthorized");
echo "Invalid member.";
exit;
}
}
mysql_close();

?>

hvad er forkert og hvordan kan jeg lave det?

mvh
smits
Avatar billede morteeart Nybegynder
18. december 2004 - 19:59 #1
måske at phpbb bruge md5 til password :P

jeg bruge selv dette her:

<?php

@include('config.php');

function validate_user($username, $password) {
  $username=myaddslash($username);
  $password=md5(myaddslash($password));
  $res = @mysql_query("SELECT * FROM brugere WHERE username='$username' AND `password`='$password' LIMIT 1");
  return( @mysql_num_rows($res) == 1 );
}

function myaddslash($s){
  return get_magic_quotes_gpc()?$s:addslashes($s);
}
  function authenticate_user()
  {
    $is_logged_in = false;
    if (isset($_SERVER['PHP_AUTH_USER'])) {
      $is_logged_in = validate_user($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
    }
    if (!$is_logged_in) {
      header('WWW-Authenticate: Basic realm="ShadowWeb Adminsystem"');
      header('HTTP/1.0 401 Unauthorized');
      exit("Ingen adgang uden login");
    }
  }
  authenticate_user();

?>

Hvor @include('config.php'); indeholder mit database connect.
Avatar billede smits Nybegynder
18. december 2004 - 20:23 #2
hej

jeg får stadig denne box op:
http://www.lastrecon.dk/billeder/fejl2.gif

jeg ved ikke lige hvad jeg skal skrive i domæne, eller hvordan jeg får den væk...
Avatar billede morteeart Nybegynder
18. december 2004 - 21:04 #3
jamen..

det loginsystem her laver netop den popup box, og det er kun i de oldnodisk version af windows (win9x serien) at domæne boxen kommer.

du skal bare igonrer den.
Avatar billede smits Nybegynder
18. december 2004 - 22:24 #4
gør det noget at mit password er krypteret?
Avatar billede morteeart Nybegynder
18. december 2004 - 22:44 #5
Hvis du bruger info fra phpbb tabellerne, så skal du også hashe dit input.
som det f.eks. sker i det jeg postede først.

Og ellers har det ingen betydning,nej. :)
Avatar billede smits Nybegynder
18. december 2004 - 22:46 #6
jeg har kobieret dit script og det ser nu sådan her ud:
<?php

$host = "localhost";
$user = "****";
$pass = "****";
$db = "****";
mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);


function validate_user($username, $password) {
  $username=myaddslash($username);
  $password=md5(myaddslash($password));
  $res = @mysql_query("SELECT * FROM phpbb_users WHERE username='$username' AND `user_password`='$password' LIMIT 1");
  return( @mysql_num_rows($res) == 1 );
}

function myaddslash($s){
  return get_magic_quotes_gpc()?$s:addslashes($s);
}
  function authenticate_user()
  {
    $is_logged_in = false;
    if (isset($_SERVER['PHP_AUTH_USER'])) {
      $is_logged_in = validate_user($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
    }
    if (!$is_logged_in) {
      header('WWW-Authenticate: Basic realm="Last Recon"');
      header('HTTP/1.0 401 Unauthorized');
      exit("Ingen adgang uden login");
    }
  }
  authenticate_user();

?>

og det virker ikke
Avatar billede smits Nybegynder
19. december 2004 - 13:56 #7
er der virkelig ingen som kan hjælpe mig
Avatar billede morteeart Nybegynder
21. december 2004 - 18:17 #8
prøv dette, skriv dit username/password én gang, og så tryk annuler:

<?php

$host = "localhost";
$user = "****";
$pass = "****";
$db = "****";
mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);


function validate_user($username, $password) {
  $username=myaddslash($username);
  $password=md5(myaddslash($password));
  $res = @mysql_query("SELECT * FROM phpbb_users WHERE username='$username' AND `user_password`='$password' LIMIT 1");
  return( @mysql_num_rows($res) == 1 );
}

function myaddslash($s){
  return get_magic_quotes_gpc()?$s:addslashes($s);
}
  function authenticate_user()
  {
    $is_logged_in = false;
    if (isset($_SERVER['PHP_AUTH_USER'])) {
      $is_logged_in = validate_user($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
    }
    if (!$is_logged_in) {
      header('WWW-Authenticate: Basic realm="Last Recon"');
      header('HTTP/1.0 401 Unauthorized');
      $res = @mysql_query("SELECT * FROM phpbb_users WHERE username='$username' AND  `user_password`='$password' LIMIT 1") or die("Fejl: ".mysql_error());
      exit("Ingen adgang uden login");
    }
  }
  authenticate_user();

?>

Hvis der så kommer en fejlmeddelse, så returner denne.
Avatar billede smits Nybegynder
22. december 2004 - 17:07 #9
HTTP 401.5 - Unauthorized: Authorization by ISAPI or CGI application failed
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