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?
Inloggingsrutor?
11 svar · 453 visningar · startad av Gaski
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. :)
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;
}
}
Tillhörande artikell finns här: http://hotwired.lycos.com/webmonkey/00/05/index2a.html?tw=programming
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?
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?
Japp, klicka ur rutan "Tillåt anonym åtkomst" som finns under en webplats egenskaper.
Jag har kollat runt på den sidan men ser inget som skulle kunna vara till hjälp...
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
Testade den innan men utan resultat...
Du kanske kan ge mig ett helt script så ska jag testa det...
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????????????