webForumDet fria alternativet

Inloggingsrutor?

PHPur PHP

11 svar · 453 visningar · startad av Gaski

Medlem sedan juni 2000310 inlägg
Frågan#1

Hur gör man för att skicka information till inloggningsrutor. Om man t.ex. vill hämta information från en sida via PHP och på något sätt skriva in lösenordet och användarnamnet i scriptet så att man kan hämta sidan?

Medlem sedan mars 20007 896 inlägg
#2

Menar du vanliga input-fält?

// Hämta info från DB
echo "<input type=\"text\" name=\"frmUsername\" value=\"" . $usrUsername . "\"/>";

Menar du däremot authenticate-fält, så är jag 90% säker på att det inte går. :)

Medlem sedan jan. 20011 154 inlägg
#3

Om du är ute efter att tvinga fram en inloggningsruta och koppla den mot en databas med användare kan du göra såhär:

session_start();

// File Name: auth04.php
// Check to see if $PHP_AUTH_USER already contains info
if (!isset($PHP_AUTH_USER)) {

	// If empty, send header causing dialog box to appear
	header('WWW-Authenticate: Basic realm="eQn webadministration"');
	header('HTTP/1.0 401 Unauthorized');
	exit;

} else if (isset($PHP_AUTH_USER)) {

	// If non-empty, check the database for matches
	// connect to MySQL
	mysql_connect("localhost", "user", "") 
		or die ("Unable to connect to database.");

	// select database on MySQL server
	mysql_select_db("eqnAdmin") 
		or die ("Unable to select database.");

	// Formulate the query
	$sql = "SELECT *
               FROM tblUsers 
               WHERE username='$PHP_AUTH_USER' and pwd='$PHP_AUTH_PW'";

	// Execute the query and put results in $result
	$result = mysql_query($sql);

	// Get number of rows in $result. 0 if invalid, 1 if valid.
	$num = mysql_numrows($result);

	if ($num != "0") {
		session_register("sesLogin");
		$sesLogin = 1;
		if ($PHP_AUTH_USER == "information") {
			Header( "Location: index.php");
			exit;
		} else {
			Header( "Location: sysmsg.php?lang=swe");
			exit;
		}

	} else {	

		header('WWW-Authenticate: Basic realm="eQn webadministration"');
		header('HTTP/1.0 401 Unauthorized');
		echo 'Authorization Required.';
		exit;

	}

}
Medlem sedan jan. 20011 154 inlägg
#4

Tillhörande artikell finns här: http://hotwired.lycos.com/webmonkey/00/05/index2a.html?tw=programming

Medlem sedan juni 2000310 inlägg
#5

Jag tänkte om man kunde skicka $PHP_AUTH_USER till sidan men det verkar vara sessions och då går det ju inte... eller?

Medlem sedan juni 2000310 inlägg
#6

Testade en förenklad version av scriptet eftersom jag inte fick det att fungera. Med koden nedan visas Text to send if user... direkt utan någon loginruta.

<?php
  if (!isset($PHP_AUTH_USER)) {
    header("WWW-Authenticate: Basic realm=\"My Realm\"");
    header("HTTP/1.0 401 Unauthorized");
    echo "Text to send if user hits Cancel button\n";
    exit;
  } else {
    echo "<p>Hello $PHP_AUTH_USER.</p>";
    echo "<p>You entered $PHP_AUTH_PW as your password.</p>";
  }
?>

Måste man ställa in någonting i IIS först eller?

Medlem sedan mars 20007 896 inlägg
#7

Japp, klicka ur rutan "Tillåt anonym åtkomst" som finns under en webplats egenskaper.

Medlem sedan juni 20008 205 inlägg
#8

Det är tydligen lite problem med IIS, men det går... kolla kommentarerna på den här sidan.

Medlem sedan juni 2000310 inlägg
#9

Jag har kollat runt på den sidan men ser inget som skulle kunna vara till hjälp...

Medlem sedan juni 20008 205 inlägg
#10

Då kan du inte ha kollat särskilt noga...

sjeffrey@inquesis.com
29-Jan-2002 09:00
To get it to work with IIS try using this code before setting your
"$auth = 0" and the "if (isset($PHP_AUTH_USER) &&
isset($PHP_AUTH_PW))"

//////////////////////////////////////////

if ($PHP_AUTH_USER == "" && PHP_AUTH_PW == ""
&& ereg("^Basic ", $HTTP_AUTHORIZATION))
{
list($PHP_AUTH_USER, $PHP_AUTH_PW) =
explode(":", base64_decode(substr($HTTP_AUTHORIZATION, 6)));

}

//////////////////////////////////////////

It worked for me on IIS 5 and PHP 4 in ISAPI

Medlem sedan juni 2000310 inlägg
#11

Testade den innan men utan resultat...

Du kanske kan ge mig ett helt script så ska jag testa det...

Medlem sedan jan. 2002115 inlägg
#12

Det går tydligen inte att använda ovanstående metod för mig eftersom jag inte har php installerat som modul på Apache. Finns det ett modul alternativ för Windows? Ser inget på php.net's download sida, bara cgi alternativ.

En annan grej, funkar eller finns inte MCRYPT biblioteket för Windows????????????

139 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
136 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)