[ NetMaster @ 23.04.2002. 23:35 ] @
Dakle ovako:

Hocu da napravim neki login za administraciju vijesti.
I u index.php stranicu ubaceno je:
<? require("auth.php"); ?>

auth.php se sastoji iz sledeceg:
----------------------------------------------------------------------
----------------------------------------------------------------------
Code:

<?php
      function access_denied() {
          echo "401 Unauthorized: The username / password combination you entered was $PHP_AUTH_USER invalid.\n";
      }
      function auth_headers($title) {
          Header("WWW-Authenticate: Basic realm=\"$title\"");
          Header("Status: 401 Unauthorized");
         # Header("HTTP/1.0 401 Unauthorized");
      }
      
      else {
          include ("mojabaza.php");
          $database = "imebaze";
          $username = "$PHP_AUTH_USER";
          $query = "select username,password from login where username='$PHP_AUTH_USER' and password=password('$PHP_AUTH_PW');";
          if (mysql_num_rows(mysql_db_query($database, $query)) == 0) {
              auth_headers("News Administration");
              access_denied();
              exit;
          }
    }
    $usernamei = mysql_query("select * from login where username='$PHP_AUTH_USER'");
    $cntrowun = mysql_fetch_array($usernamei);
    $username = $cntrowun[username] ;
    $userstatus = $cntrowun[status] ;
?>

----------------------------------------------------------------------
----------------------------------------------------------------------

mojabaza.php se sastoji iz sledeceg:
----------------------------------------------------------------------
----------------------------------------------------------------------
Code:

<?php
$dbcn = mysql_connect("localhost", "user", "pass");
#$dbcn = mysql_connect("localhost", "root", "hopkins12");
mysql_select_db("imebaze", $dbcn);
?>

----------------------------------------------------------------------
----------------------------------------------------------------------

Napravljena je i baza imebaze koja sadrzi sva potrebna polja.

Kada idem na index.php pojavi se popup i trazi username i password:
Ja ukucam neki koji sam unio u bazu on nece da ga prihvati i naravno,
tada ispisuje poruku:

The username / password combination you entered was invalid.

Napominjem da i svaki user ima i svoj status i kada se uloguje zna se
sta mu je dozvoljeno.

Ajde pomozite sto prije...
[ Mihailo @ 24.04.2002. 14:16 ] @
Koju verziju PHPa imaš instaliranu (CGI ili modul)?
Ako koristiš CGI verziju PHP bolje da radiš .htaccess nego da kombinuješ PHP i HTTP authenticate. Ili instaliraj PHP kao modul pa probaj kod. Ako ne bude radio kod razmotrićemo pitanje ponovo.

Evo ga jedan dobar primer:

Code:

if (!isset($PHP_AUTH_USER)) 
{
header('WWW-Authenticate: Basic realm="Privatni sektor"');
header('HTTP/1.0 401 Unauthorized');
echo 'Potrebna autorizacija.';
exit;


else if (isset($PHP_AUTH_USER)) 
{
if (($PHP_AUTH_USER != "admin") || ($PHP_AUTH_PW != "sifra")) 
{
header('WWW-Authenticate: Basic realm="Privatni sektor"');
header('HTTP/1.0 401 Unauthorized');
echo 'Potrebna autorizacija';
exit;
}

else
{
echo 'Ulogovani ste';
}
}
[ NetMaster @ 24.04.2002. 16:16 ] @
Ovaj tvoj primer znaci moze da se navede samo jedan pass i sifra jeli ?
A meni treba da podatke izvlazi iz baze. Jer kao sto sam rekao da izvuce i status korisnika da ne bi on mogao recimo da brise ostale poruke i slicno.

Zasto ovaj moj nece da prihvati nijedan pass ?

A sto se modula tice valjda je php :) nisam siguran
[ alex @ 24.04.2002. 16:53 ] @
Citat:
NetMaster:
Ovaj tvoj primer znaci moze da se navede samo jedan pass i sifra jeli ?


Pa onde gde se provera PHP_AUTH_USER i PHP_AUTH_PASS ubaci proveru sa bazom korisnika. Krajnje jednostavno.

Inace, bas ti je originalan signature.. Svaka cast..

Poz, alex.
[ NetMaster @ 24.04.2002. 16:59 ] @
Citat:
alex:
Citat:
NetMaster:
Ovaj tvoj primer znaci moze da se navede samo jedan pass i sifra jeli ?


Pa onde gde se provera PHP_AUTH_USER i PHP_AUTH_PASS ubaci proveru sa bazom korisnika. Krajnje jednostavno.

Inace, bas ti je originalan signature.. Svaka cast..

Poz, alex.


OK, cim dodjem kuci probacu.

A sto se tice potpisa znam da je kao tvoj ali sta cu kad se i meni svidja :)
Ako ti smeta promjenicu.

Ocekujem odgovor...
[ NetMaster @ 24.04.2002. 18:16 ] @
Mihailo: instaliraj PHP kao modul ?

A jeli to u toku instalacije me pita ?
I mogu li sad to kako promjeniti ?
[ Mihailo @ 24.04.2002. 19:32 ] @
Najverovatnije imaš CGI. Izvrši ovaj kod za proveru:
Code:

<?php
echo phpinfo();
?>

U tom slučaju (CGI) savetujem da napraviš HTML formu koja će da šalje skripti USER/PASS umesto HTTP autorizacije. Imaj u vidu koja se verzija PHP koristi na mašini na kojoj će taj kod da radi (ISP web server ili gde već) pa prema tome se odnosi. Da li koristiš Apache ili IIS?
[ NetMaster @ 24.04.2002. 21:36 ] @
Hm u pravu si :) u pitanju je CGI.

To je sigurno linija: Server API - CGI
http://localhost/phpinfo.php - Pogledaj i ti ako ne vjerujes :)

E sad znaci forma. Pa jeli moze primer da napises.
Znajuci prethodne podatke sa poljem znaci kao sto rece username i password.
[ NetMaster @ 24.04.2002. 21:38 ] @
E da Apache koristim.
[ Mihailo @ 25.04.2002. 17:01 ] @
Tvoja skripta login.php prima $username i $password iz forme

Code:

<FORM ACTION="login.php" METHOD=GET>
Username:<input type=text name=username>
Password:<input type=text name=password>
<INPUT TYPE=SUBMIT NAME="LOGIN" VALUE="YES">
</FORM>


tj. poziva se ovaj link:
http://localhost/login.php?use...mp;password=pass&LOGIN=YES

Ako nećeš da se vide username i password u URL-u umesto METHOD=GET stavi METHOD=POST.
[ NetMaster @ 25.04.2002. 18:46 ] @
Ok, a posto mi je insaliran php kao CGI kako da namjestim kao MODUL ?

Jeli samo da ubacim u httpd.cong :

LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php .phtml

Pozdrav
[ Zoran Rašković @ 25.04.2002. 20:11 ] @
Samo da kazem da Apache kao modul je MNOGO bolje nego cgi...

btw. php_auth nece da ti radi na cgi php-u tako da moras da ga stavis kao apache modul

Sto se tice ovog tvog problema, i uopste prosledjivanja parametara po principu index.php?foo=bar, ako ti to slucajno ne radi, onda u php.ini setuj da ti register_globals bude on. Ovo je u najnovijoj verziji php-ja po DEFAULTU setovano na off zbog security razloga i tako ce biti u buducim verzijama php-ja.
[ NetMaster @ 25.04.2002. 21:51 ] @
Problem je sto ne znam kako da namjestim Apache kao modul.
Dodao sam one dvije linije koda ali opet nece!
Javlja mi se popup koji nece da primi nijedan podatak iz baze iako su tabele sa poljima username i password OK.

Jeli treba jos nesto da uradim da bi proradio Apache kao modul.
I recite mi jos nesto.
Imam hosting na veratu.
Kako da namjestim na njemu baze ?
Jeli sa MySQL Front ?
Ili ima neki jednostavniji program.
Ili moze sa phpmyadmin-om ? I kako ?
[ Mihailo @ 26.04.2002. 12:35 ] @
Za instalaciju:
http://www.onlamp.com/pub/a/php/2000/12/14/php_admin.html (O'Reilly)

Pošto si početnik, predlažem da pročitaš Kevin Yank tutorial o PHP & MySQL-u
http://www.mysql.com/articles/ddws/