::: FORUM ManuFrog :::: HTTP authentication funkar ej - ::: FORUM ManuFrog :::

Hoppa till innehåll

Sida 1 av 1
  • Du kan inte skapa ett nytt ämne
  • Du kan inte svara i detta ämne

HTTP authentication funkar ej

#1 Medlemmen är offline   laxen 

  • Advanced Member
  • PipPipPipPip
  • Grupp: Members
  • Inlägg: 10
  • Gick med: 22-augusti 06

Postad 23 augusti 2006 - 00:42

Hur får jag detta scriptet att funka på era servrar ??
<?php
  if (!isset($_SERVER['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';
   exit;
  } else {
   echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
   echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
  }
?>

http://se2.php.net/features.http-auth
Kör php 5.14
http://adahlgren.com/upload/test.php
0

#2 Medlemmen är offline   laxen 

  • Advanced Member
  • PipPipPipPip
  • Grupp: Members
  • Inlägg: 10
  • Gick med: 22-augusti 06

Postad 23 augusti 2006 - 01:50

Under nattens gång så hittade jag lösningen själv:
Andledning att det inte funkar är att manufrog kör apache via cgi-bin och inte som modul (?).
Lösningen var att lägga till lite i .htaccess:
http://se2.php.net/m...-auth.php#68464

Nya koden blir alltså:
.htacess
# PHP (CGI mode) HTTP Authorization with ModRewrite:
# most right example with header check for non empty:
RewriteEngine on
RewriteCond %{HTTP:Authorization}  !^$
RewriteRule ^test.php$ test.php?login=%{HTTP:Authorization}

PHP:
<?php
if (isset($_GET['login'])) {
   $d = base64_decode( substr($_GET['login'],6) );
   list($name, $password) = explode(':', $d);
   echo 'Name:' . $name . "<br>\n";
   echo 'Password:' . $password . "<br>\n";
} else {
   header('WWW-Authenticate: Basic realm="My Realm"');
   header('HTTP/1.0 401 Unauthorized');
   echo 'You are not authorized. Bad user, bad!';
   exit;
}
?>

0

#3 Medlemmen är offline   laxen 

  • Advanced Member
  • PipPipPipPip
  • Grupp: Members
  • Inlägg: 10
  • Gick med: 22-augusti 06

Postad 23 augusti 2006 - 14:09

Hmm.. Faktum är att det funkar ganska dåligt. Vet inte riktigt varför.
Ingen annan som har något förslag på hur man kan köra HTTP Auth med PHP som körs via CGI ??
Testade detta men det funkade inte.
0

#4 Medlemmen är offline   Erik 

  • Administrator
  • PipPipPipPipPipPip
  • Grupp: Admin
  • Inlägg: 7 585
  • Gick med: 13-juli 03

Postad 23 augusti 2006 - 18:10

Hej, innan jag sätter mig in i koden undrar jag om Du inte vill välja den enkla vägen att använda Lösenordsskydda mappar i Din Cpanel istället?
Då slipper man krångla med .htaccess filen själv - då fixar Cpanel koden som behövs och lägger in den i .htaccess filen.

Det är riktigt att alla våra servrar inte kör Apache som en modul utan istället som CGI. Mer om phpsuexec finns här:
http://forum.psychof...p?showtopic=728

Jag får be att återkomma i denna tråd senare om ingen annan hinner före. Är tyvärr dålig på manuell kodning för authentification. :)
::: Have great day! //Erik at psychofrog.se and Webbhotell ManuFrog :::
0

#5 Medlemmen är offline   laxen 

  • Advanced Member
  • PipPipPipPip
  • Grupp: Members
  • Inlägg: 10
  • Gick med: 22-augusti 06

Postad 23 augusti 2006 - 19:00

Visa inläggErik på 23 August, 2006, 19:10 sade:

Hej, innan jag sätter mig in i koden undrar jag om Du inte vill välja den enkla vägen att använda Lösenordsskydda mappar i Din Cpanel istället?
Då slipper man krångla med .htaccess filen själv - då fixar Cpanel koden som behövs och lägger in den i .htaccess filen.

Det är riktigt att alla våra servrar inte kör Apache som en modul utan istället som CGI. Mer om phpsuexec finns här:
http://forum.psychof...p?showtopic=728

Jag får be att återkomma i denna tråd senare om ingen annan hinner före. Är tyvärr dålig på manuell kodning för authentification. :)

Det är ett uploadscript, som använder sig av http auth för att verierfiera att man är admin. Hade jag gjort scriptet själv så hade inte gjort på detta sättet, utan kört med vanlig form och POST. Meningen var att jag skulle ändra lite snabbt för att få scriptet att fungera fullt ut, men nu har jag lagt ner så mycket tid att jag börjar bli trött.
Jag trodde jag hade hittat den perfekta lösningen: Verkar som en hel del andra har stött på problemet tidigare. Tyvärr så fungerade inte den lösningen alls. Vet inte var det beror på exakt.. men jag forskar vidare. Tillsvidare kör jag på med lösningen som jag skrev i andra inlägget. Det fungerar men när man har loggat in kan man inte ladda upp filer..
Länken till upploadscriptet:
http://labs.beffa.org/w2box/
in action: http://labs.beffa.org/w2box/demo/
Detta är ett av de bästa enkla färdiga uploadscript jag sett. Tyvärr fungerar det inte 100% på manufrogs servrar. Jag har kontaktat utvecklaren men har ej fått svar ännu.
Skriv gärna mer i tråden om ni vet något om detta.

/Laxen
0

#6 Medlemmen är offline   laxen 

  • Advanced Member
  • PipPipPipPip
  • Grupp: Members
  • Inlägg: 10
  • Gick med: 22-augusti 06

Postad 23 augusti 2006 - 19:30

UPDATE!!
Fick svar från utvecklaren nu. Han hade redan löst problemet, och bifogade en betaversion! Och den fungerade finfint!! :)
Fan.. där spendera man den natten ionödan :P
Om det är någon som vill få det att fungera så är det bara att vänta till nästa release.. (eller skicka pm till mig så skickar jag ut den)
Ha det bra!
0

#7 Medlemmen är offline   diwic 

  • Advanced Member
  • PipPipPipPip
  • Grupp: Members
  • Inlägg: 11
  • Gick med: 30-augusti 07

Postad 31 augusti 2007 - 20:29

http://www.sslcatacombnetworking.com/artic...on-php-cgi.html
föreslår de följande (och det verkar funka för mig) ...

.htaccess:

<IfModule mod_rewrite.c>
	 RewriteEngine on
	 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>


i php-skriptet:

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

0

Dela med dig av detta ämne:


Sida 1 av 1
  • Du kan inte skapa ett nytt ämne
  • Du kan inte svara i detta ämne


1 användare läser detta ämne
0 medlemmar, 1 gäster, 0 anonyma medlemmar