Avatar billede walker Nybegynder
07. juli 2003 - 13:47 Der er 6 kommentarer og
3 løsninger

apache auth login

Hej
Kan nogen fortælle mig om det er muligt at få php til at logge ind på en auth side? Altså, jeg har en apache-server til at køre, som er konfigureret med basic auth i et directory. Jeg har så et login script på en anden (ikke restricted) side, hvor man kan logge ind. Kan jeg tage f.eks med $_POST['uid'] og $_POST['pwd'] på en eller anden måde logge ind på den 'restricted' side, med de oplysninger?

Jeg har prøvet ved at forsøge at sætte $_SERVER['PHP_AUTH_USER'] variabler, men dem kan man ikke definere, da det kun er serveren som kan definere dem...

mvh
Walker
Avatar billede walker Nybegynder
07. juli 2003 - 13:48 #1
findes der f.eks en måde hvorpå jeg kan lave min egen login side istedet for at bruge den browseren automatisk bruge ved login?
Avatar billede andy Nybegynder
07. juli 2003 - 13:53 #2
http://dk.php.net/manual/en/function.fsockopen.php

function connectToURL($addr, $port, $path, $user="", $pass="", $timeout="30")
{
      $urlHandle = fsockopen($addr, $port, $errno, $errstr, $timeout);

      if ($urlHandle)
      {
              socket_set_timeout($urlHandle, $timeout);

              if ($path)
              {
                      $urlString = "GET $path HTTP/1.0\r\nHost: $addr\r\nConnection: Keep-Alive\r\nUser-Agent: MyURLGrabber\r\n";
                      if ($user)
                              $urlString .= "Authorization: Basic ".base64_encode("$user:$pass")."\r\n";
                      $urlString .= "\r\n";

                    fputs($urlHandle, $urlString);

                      $response = fgets($urlHandle);

                      if (substr_count($response, "200 OK") > 0)      // Check the status of the link
                      {
                              $endHeader = false;                    // Strip initial header information
                              while ( !$endHeader)
                              {
                                      if (fgets($urlHandle) == "\r\n")
                                              $endHeader = true;
                              }

                              return $urlHandle;                    // All OK, return the file handle
                      }
                      else if (strlen($response) < 15)                // Cope with wierd non standard responses
                      {
                              fclose($urlHandle);
                            return -1;
                      }
                      else                                            // Cope with a standard error response
                      {
                              fclose($urlHandle);
                              return substr($response,9,3);
                      }
              }

              return $urlHandle;
      }
      else
              return 0;
}

Sådan noget?
Avatar billede claude_x Nybegynder
07. juli 2003 - 13:56 #3
Hvis du bruger PHP, så tror jeg du bliver nød til at lave restriktionerne på siden/siderne og ikke på mappen - altså almindelig PHP.
Men hvad er der galt med den måde det fungere på nu ?
.htaccess-metoden er eller rimelig fornuftig, synes jeg, nok den bedste til at beskytte hele mappen.
Avatar billede walker Nybegynder
07. juli 2003 - 14:06 #4
andy< det du har postet der, er vist noget med noget socket connection... men det jeg egentlig gerne vil er bare en måde at lave min egen dialog box når jeg logger ind på en 'restricted' side, istedet for at bruge den standard browseren nu engang bruge... er det muligt?
Avatar billede walker Nybegynder
07. juli 2003 - 14:10 #5
det handler simpelthen om at få sat de to variabler $_SERVER['PHP_AUTH_USER'] og $_SERVER['PHP_AUTH_PW']...
Avatar billede walker Nybegynder
07. juli 2003 - 17:51 #6
claud x < det er også ok, men det er egentlig fordi jeg (bare for perfektionismens skyld) gerne vil have således man kun logger på én gang, og så kan den finde ud af resten selv. Selv om man farer rundt på forskellige restricted sider...
Avatar billede walker Nybegynder
07. juli 2003 - 17:52 #7
...har fundet en måde at gøre det på, simpelthen ved at ændre links til : uid:pwd@site men det afslører jo passwordet rimeligt nemt, og er ikke en særlig elegant måde mht. sikkerhed...
Avatar billede walker Nybegynder
08. juli 2003 - 11:07 #8
er der en måde at gøre det med noget putenv() eller sådan noget?
Avatar billede walker Nybegynder
08. juli 2003 - 12:21 #9
hmm, lukker. Takker aligevel...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester