Posiadam autoryzację http opartą na pobieraniu loginu i hasła z bazy mysql. U mnie na localhoscie wszystko ładnie śmiga,ale jak wgrywam na wirtualny serwer to nie chce się zalogować. Oczywiście nie muszę pisać, że baza jest odpowiednio przeniesiona i wygląda indetycznie...
Plik autoryzacja.php
<?php
$authorized = FALSE;
// Sprawdzanie, czy zostały wprowadzone dane wymagane do autoryzacji.
if ( (isset($_SERVER['PHP_AUTH_USER']) || isset($_SERVER['PHP_AUTH_PW'])) ) {
//ustawienie jako stałych parametrów udzielających dostepu do bazy danych.
DEFINE ('DB_PASSWORD', '***');
//Wysyłanie zapytania do bazy danych
$query="SELECT first_name FROM admin WHERE username='{$_SERVER['PHP_AUTH_USER']}' AND password=PASSWORD('{$_SERVER['PHP_AUTH_PW']}')";
if($row) { //jeśli rekord zostanie zwrócony...
$authorized = TRUE;
} else {
}
}
//gdy nie zostanie przeprowadzona autoryzacja,zostanie wyświetlone odpowiednie okn
if ($authorized==FALSE) {
header('WWW-Authenticate: Basic realm="Moja strona internetowa"'); header('HTTP/1.0 401 Unauthorized'); //Używane gdy zostanie kliknięty przycisk Cancel }
?>
do każdego pliku do którego ma być dostęp dołączam:
<?php
//Wymagane jest przeprowadzenie autoryzacji
require_once('autoryzacja.php');
?>
oraz w sekcji <head></head>
<?php
//Wyświetla komunikat w zależności od tego, czy została przeprowadzona autoryzacja
if(!$authorized)
{
echo '<p>Proszę podać poprawną nazwę konta i hasło! Aby spróbować ponownie, należy kl knąć odnośnik <a href="admin.php"><b>tutaj!</b></a></p>';
} else {
echo "<h3>Panel administracyjny</h3>"; echo 'Autoryzacja została przeprowadzona prawidłowo!</br>'; echo 'Witaj<b> '.$user.'</b>!!!</br></br>'; ?>
czy to coś związane z serwerem, a może plikiem .htaccess. Googlowałem,ale niestety nie znalazłem podobnych zagadnień z pobieraniem danych do autoryzacji z bazy mysql. Czuje, że to proste do rozwiązania, a ja nie wiem jakiejś bardzo istotnej/podstawowej sprawy
Ten post edytował jigsaw 30.11.2007, 04:42:09