Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: $_SERVER["REMOTE_USER"] ei toimi

novari [22.02.2016 13:15:29]

#

Palvelijan vaihduttua on ollut hieman ongelmia kotisivun kanssa. Edellisen ongelman ratkettua tuli toinen käyttäjän tunnistamisessa. Käytän HTPASSWD kirjautumisessa ja ennen sain käyttäjän nimen $kayttaja=$_SERVER["REMOTE_USER"]. Nyt uudessa paikassa tuo ei enää toimi, php v.5.1 vaihtui v.5.5, voisiko se aiheuttaa tuon ongelman?

groovyb [22.02.2016 13:39:06]

#

Tarkista onko kyseinen serverimuuttuja käytettävissä.

<?php
phpinfo();
?>

novari [22.02.2016 14:12:17]

#

Tällainen lötyi: _SERVER["USER"] - joka palauttaa tunnuksen. Tämä taas palautta nimen: _SERVER["REDIRECT_REMOTE_USER"]. Voisiko tätä käyttää? Tämäkin näyttää palauttavan nimen: _ENV["REDIRECT_REMOTE_USER"]. Tuota $_SERVER["REMOTE_USER"] ei löytynyt listalta.

Metabolix [22.02.2016 16:23:53]

#

USER on melko varmasti se käyttäjätunnus, jolla PHP toimii. Siis täysin väärä.

Jos REMOTE_USER puuttuu, REDIRECT_REMOTE_USER on todennäköisesti oikea, sillä tietyissä tilanteissa Apache-palvelin voi lisätä ympäristömuuttujiin näitä REDIRECT_-etuliitteitä. Kannattaa kuitenkin skriptissä tarkastaa molemmat:

# PHP 7 ja uudemmat:
$user = $_SERVER["REMOTE_USER"] ?? $_SERVER["REDIRECT_REMOTE_USER"] ?? null;
# PHP 5.6 ja vanhemmat:
$user = @$_SERVER["REMOTE_USER"] ?: @$_SERVER["REDIRECT_REMOTE_USER"];

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta