Avatar billede jokerper Nybegynder
25. maj 2008 - 15:49 Der er 28 kommentarer og
1 løsning

Redirect med .htaccess ved brug user og group

Hej

Kan man bruge Redirect med .htaccess ved brug user og group.

Altså når en gruppe logger ind så bliver det på en side og når en bruger logger ind så kommer man til en anden side.

Hvis ikke hvordan klarer jeg den så?

Ved brug af htaccess
Avatar billede showsource Seniormester
26. maj 2008 - 13:34 #1
Jeg tror ikke du kan med Apache alene, tror at gruppe/user er noget a'la "www(80)/80" i apache, uanset hvem som logger ind.

Med php kan du få $_SERVER["REMOTE_USER"] og, ( hvis php IKKE kører i safe_mode ) $_SERVER["PHP_AUTH_PW"], men kan ikke lige se nogen "gruppe" defineret med php
Avatar billede jokerper Nybegynder
01. juni 2008 - 00:42 #2
Men når jeg bruger .htaccess, så har jeg to sider som jeg gerne ville kunne tilgå med/via login.

Hvis vi siger at når jeg aktiverer .htaccess login-boksen. Så hvis jeg skriver et brugernavn så kommer jeg til side 1.html og ved et andet brugernavn kommer jeg til side 2.html, vil det kunne lade sig gøre?

-
Avatar billede showsource Seniormester
01. juni 2008 - 07:00 #3
Med php:

<?php
if(isset($_SERVER["REMOTE_USER"]) || isset($_SERVER["PHP_AUTH_USER"])) {

// har oplevet at den ene er sat, men ikke den anden...
$bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);

$sendto = array(1 => "jokerper", 2 => "showsource");

    if(false != ($page = array_search($bruger, $sendto))) {
    header("Location:side".$page.".html");
    }else{
    echo"Ingen side at gå til!";
    }

exit;

}
?>
Avatar billede jokerper Nybegynder
01. juni 2008 - 12:08 #4
Nå nu har jeg prøvet et par modeller, ingen af dem gav noget resultat andet end "Ingen side at gå til!".

Jeg har uploaded 2 filer jokerper.html og showsource.html

Samt en side unti.php med koden ovenfor.

Jeg forstår sikkert ikke princippet i den kode.

Jeg forstår heller ikke præcis hvad du mener med "// har oplevet at den ene er sat, men ikke den anden..." ???

Kan du venligst give en forklaring, så jeg kan afprøve det.

1. er det med brug af .htaccess eller er det ren php?

2. Hvis det er php er der jo ingen loginform?

Håber du forstår mine fustrationer.
Avatar billede showsource Seniormester
04. juni 2008 - 21:18 #5
I nogle tilfælde er $_SERVER["REMOTE_USER"] og andre ikke.
Og ja, den sættes ved at bruge .htaccess til login.

Og det er vel egentlig bedre blot at include filen.

<?php
if(isset($_SERVER["REMOTE_USER"]) || isset($_SERVER["PHP_AUTH_USER"])) {

// har oplevet at den ene er sat, men ikke den anden...
$bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);

$users = array("jokerper", "showsource");

    if(in_array($bruger, $users)) {
    include($bruger.".html");
    }else{
    echo"Ingen side til dit brugernavn!";
    }

}
?>
Avatar billede jokerper Nybegynder
30. juni 2008 - 08:10 #6
Jeg prøver lige igen - showsource...




Nå nu har jeg prøvet et par modeller, ingen af dem gav noget resultat andet end "Ingen side at gå til!".

Jeg har uploaded 2 filer jokerper.html og showsource.html

Samt en side unti.php med koden ovenfor.

Jeg forstår sikkert ikke princippet i den kode.

Jeg forstår heller ikke præcis hvad du mener med "// har oplevet at den ene er sat, men ikke den anden..." ???

Kan du venligst give en forklaring, så jeg kan afprøve det.

1. er det med brug af .htaccess eller er det ren php?

2. Hvis det er php er der jo ingen loginform?

Håber du forstår mine fustrationer.
Avatar billede showsource Seniormester
30. juni 2008 - 22:36 #7
Det er meningen at det er med .htaccess
Denne linie:
$bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);

På servere med safe_mode On, plejer man kun at få fat i $_SERVER["REMOTE_USER"]


<?php
// Er der logget ind med .htaccess ?????
if(isset($_SERVER["REMOTE_USER"]) || isset($_SERVER["PHP_AUTH_USER"])) {


//Brugernavnet er $_SERVER["REMOTE_USER"] eller $_SERVER["PHP_AUTH_USER"]
$bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);

// Array med brugernavne
$users = array("jokerper", "showsource");

    // Findes $bruger i arrayet ?
    if(in_array($bruger, $users)) {
    // Så include filen
    include($bruger.".html");
    }else{
    echo"Ingen side til dit brugernavn!";
    }

}
?>

Men hvorfor en fil til hver bruger?
Jeg kunne jo evt. skrive domain/jokerper.html og få vist den fil.

Og du skal bare spørge, hvis der er noget du ikke lige er med på ! :O)
Avatar billede jokerper Nybegynder
30. juni 2008 - 23:57 #8
Jeg vil oprette en ønskeliste til hver af mine børn. (Lukket område med billeder osv.)

Så hvis man logger ind på bruger1 kommer man til den ene og ved bruger2 kommer man til den anden.

Jeg kunne sikkert godt skralle et eller andet script for at opnå det, men vil helst benytte .htaccess - hvis det kan lade sig gøre.
Avatar billede showsource Seniormester
01. juli 2008 - 08:22 #9
Hvad med en DB?
Altså gemme ønskelister i DB, som der så hentes fra ved login?
Avatar billede jokerper Nybegynder
01. juli 2008 - 09:14 #10
ja, men det kommer vel først når jeg har fået de to forskellige bruger login til at virke.

Eller du har måske en anden løsning på mit spørgsmål?

Det jeg ønsker er på mit domæne, skal der være et seperat sted med et privat login til hver af mine børn 2 stk. - hvor familien kan logge sig ind til hver sin ønskeliste samt billeder mv. (opvækst).

Jeg kommer pludselig til at tænke på om jeg kan lave 2 link.
navn1 - navn1.html - .htaccess bruger1 password
navn2 - navn2.html - .htaccess bruger2 password

Kan man bruge htaccess 2 gange på samme side, ved hver sit link?

Eller en anden løsning?
Avatar billede showsource Seniormester
01. juli 2008 - 12:23 #11
Du kan sagtens ha' flere logins gemt i samme passwordfil.
Men har du overhovedet fået lavet login med .htaccess ?
Ellers er det jo det første du skal.
Og helt ville jeg vælge at bruge DB, og på den måde kun ha' en fil som håndterer brugere
Avatar billede jokerper Nybegynder
01. juli 2008 - 13:00 #12
Ja, jeg har et link med htaccess til navn1.html, men kan ikke hitte ud af hvordan jeg får lavet et mere til navn2.html

Jo, jeg ved godt at jeg kan have flere brugere i password-filen, men hvordan kan jeg få forskellige sider til at åbne ved hjælp af brugernavnet.
Avatar billede showsource Seniormester
01. juli 2008 - 17:18 #13
Så lav hellere din .htaccess om, så den tager et dir i stedet for en fil.
I det dir, har du så en index.php som kan tjekke hvilket brugernavn som er indtastet, og ud fra det kan der hentes info fra DB.
Så skal du ikke til at "lege" med flere forskellige filer.
Avatar billede jokerper Nybegynder
01. juli 2008 - 21:52 #14
Okay det lyder som om du har check opgaven, men er det noget du gider hjælpe med hvis jeg evt. forhøjer point.

Hvordan/hvor starter jeg?

Hvis du forestiller dig, jeg har mit domæne hvor jeg har en hjemmeside med andet indhold, hvor jeg blot ved et link til "privat login" vil kunne dirigere min familie videre til disse to børne områder.

Så min server rod:

home/www/Domænenavn
sub.domæne - "børn" = boern.domæne

Mappe = "boern" indhold - .htaccess - index.php - navn1.php - navn2.php

Database = boern
Hvordan konstruere jeg denne så den både kan holde styr på login og 2 ønskelister.

-
Du skriver "I det dir, har du så en index.php som kan tjekke hvilket brugernavn som er indtastet, og ud fra det kan der hentes info fra DB." Den her er jeg ikke sikker på hvordan virker - jeg har ihvertfald brug for hjælp til index.php.
-
Avatar billede jokerper Nybegynder
01. juli 2008 - 22:48 #15
Har fundet noget ala det jeg skal bruge her http://www.eksperten.dk/spm/88516 . Men der kom ingen løsning.
Avatar billede showsource Seniormester
02. juli 2008 - 12:03 #16
Du har styr på det med login ved hjælp af .htaccess, right ?

I mappen "boern", har du en index.php

I den fil kan du til en start blot prøve:

<?php
// Er der logget ind med .htaccess ?????
if(isset($_SERVER["REMOTE_USER"]) || isset($_SERVER["PHP_AUTH_USER"])) {


//Brugernavnet er $_SERVER["REMOTE_USER"] eller $_SERVER["PHP_AUTH_USER"]
$bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);

echo $bruger;

}

?>

Hvis du prøver at logge ind med forskellige brugernavne, vil du se at scriptet finder ud af hvilken bruger det er.
Ud fra det, kan man jo lave opslag i DB for at brugeren får vist sin egen ønskeliste.

Hmm, db

tabel "oensker", af type MyIsam

tabellen har kolonnerne "id, user, oenske, pris, sted, sortering"

id er int, autoincrement og primary
user er varchar, med en længde på 16 tegn.
oenske er varchar med en længde på 255 tegn.
pris er int med en længde på 6 tegn.
sted er text med en længde på f.eks. 240 tegn.
sortering er int med en længde på 3 tegn.

Sted er hvor det kan købes
sortering er "rangliste"

VEd, kunne laves anderledes. men til en ønskeliste er det vist fint nok.
Avatar billede jokerper Nybegynder
04. juli 2008 - 21:42 #17
Så har jeg fået oprettet db phpadmin mysql.

Har også "set" fidusen med at vise hvem der er logget ind - men hvad nu?
Avatar billede jokerper Nybegynder
04. juli 2008 - 22:00 #18
Nu skal jeg vel til at lave et layout med tabeller eller sådan noget, ik´.
Avatar billede showsource Seniormester
05. juli 2008 - 22:22 #19
Jahhh, det er jo så det du skal arbejde videre på :O)
Avatar billede jokerper Nybegynder
05. juli 2008 - 23:17 #20
Jeg har forsøgt med nogle udtræk, men hvordan får jeg det til at blive efter brugernavn. Er det noget som jeg har set, der ligner dette - get[user]. from oenskeliste.

fx.
if ( isset($_GET['id']) ) { // Godt, der er et id på en spiller med i adresselinien!
    $sql = "SELECT * FROM spiller WHERE spiller_id = {$_GET['id']}";
    $result = mysql_query( $sql ) or die( mysql_error() );
    if ( mysql_num_rows( $result ) == 1 ) { // Yes, vi fandt en spiller
        $data = mysql_fetch_assoc( $result );
?>


taget fra dette spm: http://www.eksperten.dk/spm/468589

Kan du guide mig lidt, på vej.
Avatar billede showsource Seniormester
06. juli 2008 - 10:35 #21
Hvis du har lavet tabellen som jeg foreslog:

<?php
// Er der logget ind med .htaccess ?????
if(isset($_SERVER["REMOTE_USER"]) || isset($_SERVER["PHP_AUTH_USER"])) {


//Brugernavnet er $_SERVER["REMOTE_USER"] eller $_SERVER["PHP_AUTH_USER"]
$bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);

$sql = "SELECT * FROM `oensker` WHERE `user` = '".$bruger."' ORDER BY `sortering` DESC";

$rows = mysql_query($sql) or die (mysql_error());

if(mysql_num_rows($rows)) > 0) {

    while($vis = mysql_fetch_object($rows)) {
    echo $vis->id." ".$vis->oenske."<br />\r\n";
    }
}

mysql_free_result($rows);


}

?>


Utestet! :O)
Avatar billede showsource Seniormester
08. juli 2008 - 19:40 #22
Har du gang i det eller hvad? :O)
Avatar billede jokerper Nybegynder
09. juli 2008 - 19:37 #23
Sorry, jeg var lige et hurtigt smut til polen. Men er til bage igen. Fik ikke lige formuleret det ind i min sidste kommentar.
Avatar billede jokerper Nybegynder
09. juli 2008 - 19:46 #24
Den laver en parse error:

Parse error: syntax error, unexpected '>' in  XXXXXXXXXXXXXXXX line 13
Avatar billede jokerper Nybegynder
09. juli 2008 - 22:16 #25
Kunne det konstrueres som:

<?php
// Er der logget ind med .htaccess ?????
if(isset($_SERVER["REMOTE_USER"]) || isset($_SERVER["PHP_AUTH_USER"])) {


//Brugernavnet er $_SERVER["REMOTE_USER"] eller $_SERVER["PHP_AUTH_USER"]
$bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);

echo $bruger;

mysql_connect("localhost", "brugernavn", "password") or die(mysql_error());
echo "Connected to MySQL<br />";

mysql_select_db("oenskeliste") or die(mysql_error());
echo "Connected to Database";

$sql = "SELECT * FROM `oensker` WHERE `user` = '".$bruger."' ORDER BY `sortering` DESC";

$rows = mysql_query($sql) or die (mysql_error());

if(mysql_num_rows($rows)) > 0) {

    while($vis = mysql_fetch_object($rows)) {
    echo $vis->id." ".$vis->oenske."<br />\r\n";
    }
}

mysql_free_result($rows);


}

?>


Den bliver dog, ved med at lave den der parse error, indtil jeg fjerner det som skal hentes fra databasen.
-
Avatar billede jokerper Nybegynder
09. juli 2008 - 22:21 #26
databasen hedder oenskeliste og tabellen hedder oensker
Avatar billede showsource Seniormester
10. juli 2008 - 06:13 #27
mysql_num_rows($rows)
og IKKE
mysql_num_rows($rows))
Avatar billede jokerper Nybegynder
10. juli 2008 - 22:30 #28
Okay, showsource. Så mangler jeg bare lidt design.

Kunne det hjælpe at slå lidt mønt af på det?

jokerper at gmail . com

Lægger du et svar så lukker vi her, tak for hjælpen.
Avatar billede showsource Seniormester
10. juli 2008 - 23:07 #29
Du får et svar, og jeg har lige sendt dig en mail
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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