webForumDet fria alternativet

Inloggingsrutor?

11 svar · 453 visningar · startad av Gaski

GaskiMedlem sedan juni 2000310 inlägg
#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?

SPiNMedlem 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. :)

jonneMedlem 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;

	}

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

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

GaskiMedlem 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?

GaskiMedlem 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?

SPiNMedlem sedan mars 20007 896 inlägg
#7

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

spangoMedlem 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.

GaskiMedlem sedan juni 2000310 inlägg
#9

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

spangoMedlem 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

GaskiMedlem 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...

TimMedlem 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????????????

251 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
122 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)