/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn 

Kodeord  


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
htacess password beskyttet folder
Fra : henrik2008
Vist : 1430 gange
40 point
Dato : 18-04-11 17:51

Hej, længe siden jeg har været på kandu. (det nye login og opret system på Kandu er ikke så godt, hvor besværlig!, både email og sms, jeg er hammer nærsynet, kunne IKKE se koden på min mobil, så det tog sin tid, før jeg var oprettet på Kandu, anyway, let os ikke besvære med bagteller!).

jeg har nogle spørgsmål, omkring PHP og mysql.

Har lavet et rigtig godt login system i php og mysql, virker 100%, med opret bruger og alt hvad der tilhøre! (det er jeg rigtig stolt af!).

nu mangler jeg bare 3 ting og disse ting har det med at besvære og drille mig voldsomt, nej hvor det er iterende, når jeg er kommet så langt (glæder mig at til at uploade til min host/webhotel).

jeg bruger Xampp på en windows vista maskine. (til test og udvikle php osv).
indrømmer jeg er ikke hardcore koder i php, har ikke så meget erfaring med php og mysql endnu (kommer, me har dog en del års erfaring med andet programmeringssprog, ok bla,bla, det gide i ikke at høre på, så lad os komme tid det/de egentlige problemer, sorry).

1. jeg skal have et billed mappe på serveren og den skal indholde brugerne`s billeder (dem der opretter og logger ind), folderen skal være password beskyttet, så almenlig bruger der IKKE er logget har adgang!.

har prøvet med .HTACESS filen som jeg har oprettet til min xampp htdocs folderen.
Når jeg så laver en folder, lad os kalde den, members, og putter .HTACESS filen i, virker det udmidelbart, for hver gang jeg prøver at få adgang via et hmtl link (altså bare for at teste det!), kommer den med en box med bruger og password. (der er ikke sat nogle password eller andet i .HTACESS endnu!), men efter login kommer den med en fejl-meddelse som her: "
he server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script. ".

Jeg har konfiguret apatche serveren konfig til alle steder med linen (som før var. ALLOW OVERIDE=NONE), til " ALLOW OVERIDE=ALL", intet hjælper. jeg har også prøvet med andre HTACESS script med mysql adgang og prøvet at lave et php script til at beskytte folderen (aner ikke hvordan man gør, men jeg prøvet med reqiure!).
her er koden til htacess filen.
(der skulle være problemer med htcasess filen under windows, tror jeg nok ?,det er vist nok
bedre at jeg prøver den på unix serveren?).


AuthUserFile /opt/C:/xampp/htdocs/members/.htpasswd
AuthType Basic
AuthName "Member Page"
require valid-user

og til mysql herunder.
ps. har ikke prøve denne her, men for sikkert samme fejl som nævnt øverst!.
AuthName "MySQL authenticated zone"
AuthType Basic
AuthMySQLEnable on
AuthMySQLUser username_for_mysql_database
AuthMySQLPassword password_for_mysql_database
AuthMySQLDB auth
AuthMySQLUserTable users
AuthMySQLNameField user_name
AuthMySQLPasswordField user_passwd
AuthMySQLUserCondition "ip_address = '%a'"
require valid-user


1. hvordan skal jeg lave det, sådan at jeg password beskytter folderen på serveren (har næsten opgivet!). ?.

2. jeg har desværre lavet en fejl i login systems login del (filen hedder loginphp, tjkekker om bruger har indtastet korrekt password/brugernavn og tjekker det med mysql databasen), hvor jeg sætter en cookie, hvis bruger har sat flueben ved huskmig boxen (så brugeren ikke behøves at logge ind, cookie udløber om vistnok 2 dage, derefter har jeg sat en header til selve (jeg kalder den productpage,php) hvis brugerlogin er sucessfull, headeren smiden så brugeren til productpage,, men her opstår der en fejl forså der kommer en fejl-meddelse,om at "header output allready set", tror nok fejlmed var, altså kan headeren ikke lider at der bliver sat cookies før headeren selv (sker kun med headeren, men session variabler brokkker den sig ikke over!), hvad har jeg gjort gjaldt ?.

her er et udsnit af koden, herunder.

if (isset($_REQUEST['huskmig']))

{

$huskmig=1;

setcookie("huskmig",$huskmig,time()+60);

setcookie("huskmigbrugernavn",$brugernavn1,time()+86400);

setcookie("huskmigpassword",$password1,time()+86400);

}

$_SESSION['loget_in'] = 1;

$_SESSION['$brugernavn1'] = $brugernavn1;
$_SESSION['$password1'] = $password1;   

echo '<meta http-equiv="refresh" content="0;http://localhost/productpage.php" />';

}

3. det sidste jeg mangler er et php script der tjekker, om hvis ikke bruger har registreret via email link (har lavet den, alså email link til aktivering!) inden 48 timer, så bliver bruger slette automatisk fra mysql databasen.

i min mysqldatabase har jeg lavet et felt med navnet expiration (datetime) hvor udløbs datoen bliver gemt via insert now()+antal minutter der går på 2 dage!.


jeg har selv prøvet at lave et php script herunder.

udløns datoen er sat til 2 minnuter fra aktuel tid!. (kun for at teste!).
dette script er kun et test scirpt!.

mysql_query("INSERT INTO bruger (brugernavn,aktiveret,dato,expiration)/
VALUES ('test','0',NOW(),NOW()+120)");

$result=mysql_query("SELECT * FROM bruger where aktiveret='0'");

$count=mysql_num_rows($result);

if($count==1)

{

while ($row=mysql_fetch_array($result) or die(mysql_error()))

{

$expiration= strtotime($row['expiration']);

// tjek tid.

if ($today>$expiration)

{

echo "tiden er for gammel i din post!";

//mysql_query("DELETE FROM bruger WHERE aktiveret='0'") or die(mysql_error());
}

else

{

echo "ok!";
}

//slut paa tjek tid.
}

det virker ikke, hvis der er flere poster med aktiveret=0, fordi så skal scriptet tjekke flere tider der bliver pløjet sammen.
hvordan laver man et 48 timers, hvis bruger ikke er aktiveret inden den tid ?.
scriptet skal vel køre 24 timer dægnet rundt for at tjekkke om brugerne ikke er aktiveret eller ej ?., og scriptet skal vel ikke være i opretbruger filen ?. (har tænk tænk mig at puttet den i opret bruger, så den sætter dette srcipt igang, så bruger har 48 timer til at aktivere!.
jeg modtog fra en ven et lille script, hvordan man tjekker om bruger aktiveret iden visrnok 24 timer, men der virker ikke!??.

ps. har også prøvet med et array til $today, men virker ikke!?.

SELECT * FROM bruger WHERE unix_timestamp(NOW()) < bruger.expiration AND aktiveret='0'");

og til udløbs datoen med mysqlquery INSERT unix_timestamp(NOW())+180. (180 sek.).

kan det virkelig være så besværelig ?.
hjælp mig!.














 
 
Kommentar
Fra : henrik2008


Dato : 18-04-11 18:01

jeg glemte variablene today, den ser sådan her ud.

$today = strtotime(date("Y-m-d H:i:s"));

Kommentar
Fra : stone47


Dato : 19-04-11 08:39

Hej Henrik
Jeg vil læse lidt mere på dit PHP.
Men tænkte jeg havde lige noget gammel hjemmeside, liggende bagved på min server.
Her er et par link til noget forklaring om Htaccess, som jeg selv bruger andre steder.
Jeg mener Htaccess hører sammen med Linux, så for at teste det rigtigt skal du bruge en linux server. Her på maskinen ligger en wampserver. Det var lige en pakke jeg fandt der laver en linux server på et hjørne af din lokale maskine, fint til at teste hjemmesider og Htaccess.
hilsen Steen


Kommentar
Fra : henrik2008


Dato : 19-04-11 12:28

ja,det er rigtig der er problmer med htacess under windows, har prøvet på linux/unix server, virkerl lidt bedre, får ikke den samme error meddelse, men en error som "error, konfiguration wrong, bla, bla!", så det skyldes nok at jeg ikke er bekendt med cgi og pearl og general advanceret apacthe konfiguration, men det kan simpelhen ikke passe, at jeg skal lære endnu flere programmerings sprog, ok lidt cgi skader ikke, da htacees filer nettop er cgi script.
det var derfor jeg installerede xampp, for at blive fri for komplekse setup på apatche, og istedet for koncentrere mig om php mysql osv. (jegt har lavet mange konfiguationer på xampp, og de virker, og koden /login systemet osv, virker som før jeg pillede ved xampp serveren og også efter, det ved jeg 100%).
sendmail, eller mail i php under windows virker hellere ikke, kun på linux osv, derfor bruger pear php email funktioner på windows , virker, men på det endelig og færdig script login osv, har jeg brugt simpel mail funktioner i php under linux, det virker bare skønt.
forbandede windows (forleden, da jeg uheldigvis kom til at fjerne htaxess filne til xampp foldren, meldte norton antivirus at der var forsøgt angreb på xammpp og norton selv, men angrebene bleve blokeret (snakker vi her om, at jeg har dummet mig, altså at men bare ikike skal installere xammpp på windows?), har puttet htacess, tilbage i xampp foldren, og xampp serveren er bruger og password plus norton antivirus 2011 er password beskyttet, ha,ha, dumme hacker.



Kommentar
Fra : stone47


Dato : 19-04-11 12:50

jeg ved intet om det kan bruges på en windows server.
Jeg husker ikke der er blandet noget cgi eller perl ind i dette. Men der er mange html skriw der automatisk opretter noget adgangskontrol og det bruger Htaccess. Men i sin nøgne udførelse laver du en tekst fil i den folder du vil protekte. Denne bruger så en anden tekst fil et andet sted på serveren hvor userne der har adgang står listet, resten tager apache sig af, mener ikke det er nødvendig med speciel opsæt af dette. Apache er jo verdens mest brugte webserver og hører til i linux miljøet.
hilsen Steen

Kommentar
Fra : henrik2008


Dato : 19-04-11 14:21

ok, jeg fik bare at vide at det det der htacess var cgi script fra nettet.
nu har jeg prøvet med chmod file permission som 711, eller lign på folderen med ftp pgoram, for at beskytte folderen, virker (acess denied), men så skal jeg lave det sådan at hver bruger har hvert chmod til hver folder, isig selv har dette idiotisk, og meget besværeligt, så jeg burde vælge htacess script istedet, hvis jeg bare kunne finde ud af hvordan!......

Kommentar
Fra : stone47


Dato : 19-04-11 17:07

Hej Henrik
Det er file permission der gør det. Lav et par manuelle forsøg. log dig på som root og find filen.
den er .htaccess. det biblotek du vil beskytte. log dig på med putty. editer den med vim editor.
Læs eks. i de link fra min side. Der hører med du kan få andre programmer til at lave tingene.
Bla. kan webmin som jeg har megen fornøjelse af lave filerne for dig.
hilsen Steen

Kommentar
Fra : henrik2008


Dato : 19-04-11 19:54

jeg bruger bare notepad, men jeg har haft linux ubnutu før på min pc før, men min harddisk
er ikike så stor, så måske skulle jeg smide en linux distro på maskinen?!
og hvordan er xampp på linux, hvis xampp kanb fås til linux?.(besværligt at opsætte ?). (ikke noget med at opsætte en apatche server, det er simpelhen så besværlig, specialt hvis man ikke rigtig er kender alle afkroge i linux, og jeg er kun let øvede på linux.



Kommentar
Fra : stone47


Dato : 19-04-11 21:39

hej Henrik
jeg skrev det er filepermisions der gør det. Det er forkert, omvendt. Det er ikke file permisions der gør det. Notepad er noget der sker på din PC. Du skal have fat i serveren,og ned på den og editere i filerne. Selvfølgelig kan du lave filerne med notepad på windows PCen og oploade dem, men det er mere forståeligt at gøre omvendt. Hjemmesiden ligger: var/www/xxxetellerandet og her ligger .Htaccess filen. Her står så hvor den fil der indeholder User og password ligger på serveren.
hilsen Steen

Kommentar
Fra : henrik2008


Dato : 19-04-11 22:30

ja, jeg ved godt hvor htacess ligger på min webhotel server på clihe webhosting, den ligger i
priavte_html og den e iike offentlig adgang, men på cliche server ligger der også en mappe der hedder public_html til offtentlig adgang hvor jeg og min storesøster (hendes firam) har sin hjemmeside. der kan jeg ligge en htacess fil altså (lad os kalde mappen ,der kun har adgang for bruger der logger sig in MEMBERS) i mappen sådan her: public_html/members/.htacess
Jeg kan ikke rode med ciches egen htacess fil, da den er konfiguret til at holde password beskyttet adgang til private_html. JA MAN KAN GODT HAVE FLERE HTACESS FILER PÅ SERVEREN, HVIS DE IKKE KAN SES AF HIHANDEN, DVS. AT MAN SKAL PUTTE HVER HTACESS FIL I HVER FOLDER MAN VIL BESKYTTE, SÅ DER ER IKKE DET DER ER PROBLEMET, DER ER FEJL-MEDDELSERNE DER KOMMER, FORDI JEG IKKE HAR PROGRAMMERET HTACESS FILEN RIGTIG, ENDNU, SÅ ALT DET DU FORTÆLLER MIG VED JEG I FORVEJEN, OG KAN IKKE BRIGE DET TIL NOGET SÆRLIG, SORRY. JEG HAR BRUG FOR ET SCRIPT DER DUER.


Kommentar
Fra : stone47


Dato : 20-04-11 09:03

hej Henrik
Så her da Hej Hej :
dette er filen .htaccesss:

AuthUserFile "/usr/local/httpd/.htpasswd"
AuthType Basic
AuthName "ByPassword"
require valid-user

og så filen .htpasswd:

steen:anaI3HwxglBoE
martin:FGA4YXG/0WuNA
Jorgen:CU5LYczq9GucU
poul:UXbs/3sIPzghw

hilsen Steen

Kommentar
Fra : JegErHer


Dato : 20-04-11 09:04

Hvis du flytter filer mellem Windows & Unix(Linux) anbefaler jeg at bruge forskellige HTACCESS filer
så brug eksempel htaccess.txt lokalt og .htaccess på serveren
http://www.opencodez.com/apache/htaccess-in-xampp-windows.htm

Hedder din MySQL database auth ?, for det er hvad du linker til 'AuthMySQLDB auth'

http://www.apachefriends.org/f/viewtopic.php?p=85095

Kommentar
Fra : henrik2008


Dato : 20-04-11 09:30

du må undskylde stone47, min lidt dårlig opførelse, men jeg har siddet med den forbannede møg htacess fil, og prøvet og provet og....., grrrrr., jeg kunne trampe på pc,èn , nej selvfølgelig ikke, jeg plejer normalt ikke at løbe ind i så kompliceret problemer, men htacess filen og det der aktivating link møg er noget af en udfordring, alt gik jo som smurt, hele login siden virker sku, der er sat strips_tags og mysql injextions ovs, så den er sikret, der er sat advanceret regulær udstryk til validation ved alle felter, når bruger skal registrere inden login, for at sikre, hacker mod alt deres pjat, hele siden og loginèn er prøvet utallige på webhotel, det virker bare, nu mangler jeg bare den møg dumme htacess fil.unskyld.
jeg kunne huske, engang da jeg skulle sætte lydkort op i linux og kompilere, nej hvor der var besværligt, dengang var der ikke rmp instalation pakker, man skal virkelig være hammer stærk i linux shell komandoer, før man bliver god til det, bare for at konfiguere boot opsætningen, til at linux skal starte først og windows nummer 2, skal man konfiugere boot filen og bootloaderen til linux lidt specialt og loggge sig in som root, det fandt jeg aldrig ud af, men jeg har hellere ikke rigtig taget mig tid til at lære linux og unix rigtig helt igennem!. (det kommer, linux er så fedt).


Kommentar
Fra : stone47


Dato : 20-04-11 09:40

ja men ok.
jeg har ikke rigtigt læst hvad du laver endnu. Men bare fokuseret på systemet htaccess.
brug det du kan til dit projekt, men lav lige en tester efter linket jeg gav.
Jeg bruger det jo bare her til lidt pjat og serveren har jeg i kælderen.
Jeg logger jo bare på den som root så kan jeg hvad jeg vil også komme galt afsted.

http://stoneplace.dk

hilsen Steen



Kommentar
Fra : henrik2008


Dato : 20-04-11 09:47

til: JegErHer

min mysql database hedder portraetogphoto_dk

og tabellen hedder bruger.

til aktiverings linket, piller jeg koderne fra hihanden, og laver et stykke kode, der laver hver sin opgave, så det virker igen, altså først bede comnputern om den nøjagtig tid i unix time stamp med år, måned,dage, timer,min,sek.
dernæst konvertere jeg stringen til tid med strtotime (eller kan den ikke tjekkes med en if sætning!).

der næst tjekker om bruger ikker aktivret, ved at tjekke aktiveret=0 i mysql databasen.
dernæst tjekker og udtrækkers alle felter med expiration med mysql fetch, row['expiration'], om den tid på serveren nu i realtid med now) er den samme som tiden som udløbs datoen som der står i expiration feltet i mysqlbasen. tiden tikker jo på serveren og den tæller op indtil den rammer og bliver større end udløbs-datoen (kan være 24 til 48 timer, er sat med now()+antal min. på et døgn eks.), er den det, så er udløbs datoen overskredet og der udføres en mysql query (delete from bla,bla for at fjerne denne bruger fra mysqldatabasen).
har prøvet hele scriptet, det virker perfekt, men kun med et felt/post der er for gammelt, så jeg skal bare programmere den til at læse en post afgangen og tjekke den og evt, slette den, dernæst tager den, den næste felt, indtil alle felter er tjekket.




Kommentar
Fra : henrik2008


Dato : 20-04-11 09:51

øhh, bruges der md5 enryption til htacess filen, eller skal der en anden logritme til encryption, kan jeg bruge md5 til at cryptere password til htacess ?.

Kommentar
Fra : henrik2008


Dato : 20-04-11 10:03

tak til: JegErHer.

jeg skal også bruge xampp, men til det endelig færdig login skal jeg bruge ægte unix server og en rigtig apatche server, det har min webhotel udbyder.

jeg kan jo hurtig teste htacess filer i mapper på min webhotel server ved at uploade dem via ftp program.

ja, det er rigtig man skal være varsom med at editere filen htacess, de den ikke rigtig genkendes ordentlig af windows systemet, det er derfor at man pludselig ikke kan se filenavnet på filen kun ikonet, når man har downloader den til eks, desktoppen, så mon windows laver om på typefilen, efter at jeg har editeret den i notepad?, ja jeg skal bruge en editor som vim editor.

Kommentar
Fra : henrik2008


Dato : 20-04-11 12:14

hmmmm, har prøvet det hele, ja jeg har prøvet med allowoveride=all som nævnt for, og de artikler som henvises fra JegErHer, HJÆLPER IKKE, jeg har jo i forvejen konfigureret http apatche konfig filen, der er hellere ingen acessfilename som nævnt i artiklen.!

stadigvæk samme fejl

har brugt wip editor og huskes at save med .htacess og lavede en password fil, ved siden af.
har også direkte editeret dem på serveren altså unix serveren, så jeg undgår at downloade dem på windows og får dem ødlagt hvis jeg renamer, eller bare saver.
htacess filen virker dog, fordi der kommer en dialog box med password og brugernavn fra htacess filen på unix serveren, men så kommer error fejlmeddelsen herunder. (noget virker sku!).

på unix serveren.

The server encountered an internal error or misconfiguration and was unable to complete your request.

på xamppp windows.

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.


har fulgt de artikler du henviste, og sat/konfiguret htacess filen nøjagtig som beskrevet, intet hjælper!. (tjaa, jeg er ikke den eneste, masser af bruger på xampp og om det så er linux/unix, løber nogle bruger ind i disse problemer, jeg tør væde med, at der er glemt et eller andet i htacess filen eller password filen. ?

på web hotellet er adr. http://portraetogphoto.dk/ og html og php filerne er gemt i public_html folderen, så hvad skal stien være i htacess, filen hvis man vil gemme htacess filen i eks, members mappen i public_html.

eks, AuthUserFile "http://portraetogphoto.dk/public_html/members/.htpasswd" ??.

DET GØR IKKE NOGET HVIS DET IKKE LYKKES FOR MIG AT FÅ DET TIL AT FUNGERE PÅ XAMPPP, MEN JEG HÅBER DET LYKKES PÅ LINUX/UNIX SERVEREN, PÅ MIT WEBHOTEL, ALTSÅ HTACESS OG PASSWORD FILEN, DER ER JO DER MIN HJEMMESIDER ER.

XAMPP ER FOR MIG BARE EN TEST SERVER.


Kommentar
Fra : henrik2008


Dato : 20-04-11 14:58

har prøvet

C:\xampp\apache\bin\htpasswd

C:\xampp\apache\bin\htdigest


C:\xampp\apache\bin\htdigest [-c] minpass.txt

virker hellere ikke.

nu kigger jeg på webmin!

Kommentar
Fra : henrik2008


Dato : 20-04-11 15:37

har prøvet webmin, de flesste features understøttes kun med unix/linux og ikke windows, desuden er det for overskueligt at installere (har gjort det, ok!).
det egner sig ikke til min opgave.
jeg kan da bruge det til mine unix maskiner som sparc osv, jeg har nogle stykke stående, her kan webmin fint gå i samabejde med windows og unix, da jeg har prøved at konfugere windows til tale over netwærket sammen, det var et helvede, jeg tror aldirg jeg fik det til at virke, min unix , maskiner (ja de skal da nok have kostede et par 100.000 kr?), stå bare og samler støv.
så lidt uheld i held jeg kunne ikke rigtig bruge lige ti htacess filerne (jeg ved de godt webmin har nettop et tools till dette formål, men der er formeget med alt den installation, jeg bliver nødt til at koncentere mig om login system og hjemmesiden), men tilgænggæld fik jeg et rigtig fedt program til at kumminere med unix, har dog ikke prøvet det endnu men prøver det i nærmere fremtid. (har insatllerede activestate pearl, ok lidt pearl skader vel ikke at lære, men ikke for meget). puha nu blvier jeg rundttosset, hvad har jeg dog viklede ind i?, ha, ha.

Kommentar
Fra : JegErHer


Dato : 20-04-11 19:36


1. phpinfo() kan du se at mod_auth_mysql kører ?

2. tit er problemet på windows at det er svært at styre ".xxxx" filer altså filer som kun har en extention
så prøv at kalde ".htaccess" for "htaccess.txt" på windows og ret det i httpd.conf filen for XAMPP (se http://www.opencodez.com/apache/htaccess-in-xampp-windows.htm igen)

3. nu passer din felt / tabel mapping vel

AuthName "MySQL Secured Place"
AuthType Basic
require valid-user
AuthMySQLHost localhost
AuthMySQLDB portraetogphoto_dk
AuthMySQLUser testuser
AuthMySQLPassword authmysql
AuthMySQLUserTable bruger
AuthMySQLNameField name
AuthMySQLPasswordField pass
AuthMySQLCryptedPasswords Off

4. nu kører du vil NTFS på det drev hvor XAMPP er installeret ikke ?, for FAT32 vil ikke virke

Kommentar
Fra : JegErHer


Dato : 20-04-11 20:06

her et eks. på opsætning og meget vigtigt en "simpel" database oprettelse til brugere (bare til test)

http://www.yolinux.com/TUTORIALS/LinuxTutorialApacheAddingLoginSiteProtection.html

gå ned til -> Using a MySQL database for Apache Authentication:


Personligt bruger jeg altid 7zip eller ZIP versionen -> http://www.apachefriends.org/en/xampp-windows.html
i et nyt test bibliotek eks C:\xampp_1
Så kan jeg altid lave et nyt til og check de ændringer jeg er kommet frem til også virker i et nyt setup, og jeg har den rigtige forståelse.

Kommentar
Fra : henrik2008


Dato : 20-04-11 22:26

bruger ntfs, vista med servicepack. (trot ikke der er firewall eller norton 2010 der gør det!).
jeg har forstået ,at de ops man angiver i htacess filen og password filen, er dem man skal bruger til at logge ind til members folderen hvor, htacess filen ligger. jeg har eks, lavet et link i html filen som eks, hreff http://localhost/members/script.php, hvor linket til filen ligger i members folderen, når jeg så klikker på linket , fremkommer der en pasword og brugernavn agtig dialogbox, eller hvad det hedder, når jeg så indtaster ops, som password 123456789 og brugernavn henrik som nettop er angivet i htacess filen og password filen fremkommer fejlmeddelsen stadigvæk ?.
også på unix serveren!.
jeg har forståede det således at alle de ops, man angiver i htacess filen til mysql databasen, er dem brugerne der logger sig ind på memebers, htacess filen modtager ?.
man skjal vel ikke bruge en password fil til htacess filen, når man bruger htacess filen til mysql databasen ?. (bej jeg har ikke krypteret passwordèt i password filen, eller password filen).
det der med at editere htacess filen til txt og tilbage, har jeg også prøvede, hvis filen ikke var rigtig , vil der jo ikke komme ne brugernavn og passowrd dialogbox, for så virker htacess filen jo?.
ja jeg har slåt alle modulerne til, herunder.

core mod_win32 mpm_winnt http_core mod_so mod_actions mod_alias mod_asis mod_auth_basic mod_auth_digest mod_authn_default mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_cgi mod_dav mod_dav_fs mod_dav_lock mod_dir mod_env mod_headers mod_include mod_info mod_isapi mod_log_config mod_mime mod_negotiation mod_proxy mod_proxy_ajp mod_proxy_balancer mod_proxy_connect mod_proxy_ftp mod_proxy_http mod_rewrite mod_setenvif mod_ssl mod_status mod_autoindex_color mod_php5 mod_perl mod_apreq2.

jeg skal lege lidt mere med det, for at forstå htacess virkemåden!.

jeg prøver at læse dine angivet link.





Kommentar
Fra : henrik2008


Dato : 20-04-11 22:29

ja, alle felterne skulle passe, min database hedder portraetogphoto_dk, og tabellen hedder bruger.
password feltet hedder password
og brugernavn feltet hedder brugernavn.
username til mysql passer også.
password til mysqldatabasen passser også (dem som jeg har modtaget fra min webhosting.



Kommentar
Fra : henrik2008


Dato : 21-04-11 12:16

ok, fede links, de forklare virkelig hele baggrunden og fundamentet, så man forstår det meget bedre, har kun smugkigget, men hart lært en del. (læser alle artiker igennem).
takker, 1000, i har været mere en behjælpelig, i behøver ikike at give mere af jeres tid.
hvis jeg et srcipt der er godt som jeg kunne evt, dele, kan jeg jo bare smide det på kandu, det kan være i nogel af jer kunne bruge det (jeg har masser paf pregmatch og regex (regulære udtryk, til validation af mange felter der er færdig skreve i php code, så hvis nogler af jer , står og mangler, så kan je da smide det på kandu?.
jeg er hel sikker på at fejlen ligger i at jeg ikke har brugt md5 digest kryptering og heller ikke har angivet hele den korekte sti i htacess filen, desuden er acess modulet (eller havd det hedder IKKE aktiveret på min xampp server).
det kunne også være at ciche har lagt en blokering på deres server med mensyn til http auhthorzation, der gør nogle webhoteller, de fjerner enda selve den fil , htacess man selv modificere, ligeså snart man har uploadet den (ikke på cliche).
jeg skal nok få det til at fungere.
tak,tak,tak...................
det kunne være sjovt at pille med virtualhost og bruge xampp til en rigtig server med et næsten rigtig domain-navn (her kan jeg selv sætte mig i en stor risiko, pga. af uerfaring med srver, er der bare nogle hakcer der kan deres kra, skal de nok hacke ind på min pc, og på en windows maskine, hmmm?), jeg tror jeg køre apache på linux, jeg håber der en xampp agtig ting til linux, det er et helvede at upsætte en apache på linux, hvis man ikke er voldsom god til linux/unix?!.






Kommentar
Fra : JegErHer


Dato : 21-04-11 14:58

Man bruger normalt ikke AuthUserFile linien hvis man aktive AuthMySQL, da der så er 2 steder til udføre Autorisation hvilket tit går galt.

prøv at tilføje deres Tabel eksempel til din database og test med dette, du kan altid slette records og tabelen senere.

mysql> use portraetogphoto_dk
mysql> create table mysql_auth ( user_name char(30) NOT NULL,user_passwd char(60) NOT NULL,user_group char(25),primary key (user_name) );
mysql> insert into mysql_auth values('Fred','supersecret','worker');

Kommentar
Fra : henrik2008


Dato : 21-04-11 20:16

ok. prøver det imorgen..

Kommentar
Fra : JegErHer


Dato : 23-04-11 08:27

Det viser sig at efter MySQL har skiftet ejer er der kommet ny licens model, hvorfor mod_auth_mysql ikke er standard på en Apache / MySQL platform mere. Den kan dog tilføjes men det må du checke med din udbyder.

Her er den nye måde som også er med i XAMPP 1.7.4-VC6

http://www.psychoticwolf.net/2008/07/apache-and-mysql-authentication/

Skal ind i C:\xampp\apache\conf\httpd.conf
Kode
<IfModule authn_dbd_module>
   #Use the MySQL driver
   DBDriver mysql

   #DB Driver Params (host, port, user, pass, dbname, sock)
   DBDParams "host=127.0.0.1 user=testuser pass=authmysql dbname=portraetogphoto_dk"

   #Parameters for Connection Pool Management
   DBDMin 1
   DBDKeep 2
   DBDMax 10
   DBDExptime 60

   <Directory "C:/xampp/htdocs/members">
      #mod_auth configuration for authn_dbd
      AuthType Basic
      AuthName "Test MySQL Authentication Area"
      AuthBasicProvider dbd
   
      #authz configuration
      Require valid-user
   
      #SQL query to verify a user
      #(note: DBD drivers recognise both stdio-like %s and native syntax)
      AuthDBDUserPWQuery "SELECT `password` FROM `bruger` WHERE `brugernavn` = %s"
   </Directory>
</IfModule>



Fjern også # foran fra nedestående linie i samme fil
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule dbd_module modules/mod_dbd.so


-----------------
Personligt har jeg ikke fået det til at virke, men sikkert bare en formaterings fejl. Det største problem er at alt dette den ind i HTTPD.CONF og ikke i .htaccess !!
HTTPD.CONF har man jo normalt ikke adgang til hos sin udbyder :(

Man kan også tilføje den "gamle" måde igen -> mod_auth_mysql men så skal driverne/modules tages fra eks. XAMPP 1.6.6a og samme med linierne i HTTPD.CONF til indlæsning af disse

PS. beklager dette først kom på i dag, men kandu var nede igen igen...

Kommentar
Fra : JegErHer


Dato : 23-04-11 12:09

med XAMPP 1.6.6a & mod_auth_mysql er det super nemt.
http://www.oldapps.com/xampp.php?old_xampp=40
pakket ud i C:\XAMPP

1. fjern # foran LoadModule mysql_auth_module modules/mod_auth_mysql.so
i C:\xampp\apache\conf\httpd.conf

2. kør C:\xampp\setup_xampp.bat

3. kør C:\xampp\xampp-control.exe & start Apache & MySQL

4. opret en standart/sample database til brugernavn/kodeord via MySQL Kommando Prompt
Start en normal Kommando Prompt ( CMD.EXE ) og paste nedeståene ind på engang
Kode
c:
cd \xampp\mysql\bin
mysql -h localhost -u root

CREATE USER 'db_user'@'%' IDENTIFIED BY 'db_password';

GRANT USAGE ON * . * TO 'db_user'@'%' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE DATABASE IF NOT EXISTS `http_auth` ;

GRANT ALL PRIVILEGES ON `http_auth` . * TO 'db_user'@'%';


USE http_auth;

create table mysql_auth ( user_name char(60) NOT NULL,user_password char(60) NOT NULL,user_group char(60),primary key (user_name) );

insert into mysql_auth values('Fred','supersecret','worker');

exit

Exit/Luk vinduet når du har set alt er udført uden fejl.

5. opret en .htaccess file i det biblotek du vil beskytte (eks, C:\xampp\htdocs\members )
Indsæt nedenstående tekst i filen
Kode
AuthType Basic
AuthName "FORBIDDEN AREA"
AuthMySQLHost localhost
AuthMySQLUser db_user
AuthMySQLPassword db_password
AuthMySQLDB http_auth
AuthMysqlUserTable mysql_auth
AuthMySQLPwEncryption none
AuthMySQLEnable on
require valid-user

#Done


4. Åben HTTP://localhost/members hvis der er hvad biblioteket hedder og login med user:Fred & password:supersecret


Kommentar
Fra : henrik2008


Dato : 24-04-11 14:10

har prøvet med " AuthType Basic
AuthName "FORBIDDEN AREA"
AuthMySQLHost localhost
AuthMySQLUser db_user
AuthMySQLPassword db_password
AuthMySQLDB http_auth
AuthMysqlUserTable mysql_auth
AuthMySQLPwEncryption none
AuthMySQLEnable on
require valid-user " på xampp og cliche, virker ikke, skal lige prøve igen, MEN
HAR OGSÅ PRØVET DENNE HERUNDER,


AuthUserFile "/usr/local/httpd/.htpasswd"
AuthType Basic
AuthName "ByPassword"
require valid-user

og så filen .htpasswd:

steen:anaI3HwxglBoE
martin:FGA4YXG/0WuNA
Jorgen:CU5LYczq9GucU
poul:UXbs/3sIPzghw,
VIRKER IKKE, INDTIL JEG PRØVET AT UDSKIFTE STIEN MED/.htpasswd" til xampp/htdosc/members/.htpasswd, NU VIRKER DET MED ALMENLIG HTACESS OG PASSWORD, MEN ALTSÅ IKKE MED MYSQL.
HAR OGSÅ RPØVET MED CLICHE WEBSERVER, VIRKER NÆSTEN, FORDI JEG HAR UDSKIFTET STIEN MED AuthUserFile"usr/local/httpd TIL AuthUserFile" /home/virtual/portraetogphoto.dk/public_html/members/.htpasswd.
men den vil ikke aceptere passwordet, også selvom jeg har angivet det korekt, altså almenlig authoriation htacess filen uden mysql adgang, på cliche serveren.
men det ser ud til at, det vsnart virker.
har ikke prøvet alt du nu, lige har skrevet men prøvet det idag. (påske og for mange øller!).
måske skulle jeg lryptere med md5 og putte det i .htpasswd filen. ? . (jeg kan bare lave en hurtig php script der omdanner almenlig koder til md5, det er da nemt, sådan her. ).


<html>

<head>

</head>

<body>

kryptering af koder til md5.

<br></br>
<br></br>

<form action="http://locahost/md5krypt2.php" method="POST">

kode: <input name="kryptkode" type="text" /> <br> </br>

<input type="submit" value="krypter" />

</form>

</body>

</html>


og ph script.

<?php

$kryptkode=$_request["kryptkode"];

$kryptkode=md5($kryptkode);

echo "<br><br>";

echo "koden, er i md5 kryptering= ",$kryptkode;

?>

dette lille script er ikke til JegErHer, eller stone47 eller mig selv, det var bare til nogle af jer andre der lige har startet på php, da det er lidt nybgynder agtig.



Kommentar
Fra : JegErHer


Dato : 24-04-11 20:43

Altså XAMPP op til version 1.6.6.a kommer med "indbygget" MySQL Auth
prøv det lige selv i et andet bibliotek (Stop din ny værerende Apache & MySQL)

Hent XAMPP 1.6.6a fra http://www.oldapps.com/xampp.php?old_xampp=40
pak ud i C:\XAMPP166a

1. fjern # foran LoadModule mysql_auth_module modules/mod_auth_mysql.so
i C:\XAMPP166a\apache\conf\httpd.conf

2. kør C:\XAMPP166a\setup_xampp.bat

3. kør C:\XAMPP166a\xampp-control.exe & start Apache & MySQL

4. i en browser åben http://localhost/restricted/

5. indtast det indbygget Username: xampp og Password: wampp
(ligger i den indbygget webauth MySQL database, hvilket ses i C:\XAMPP166a\apache\conf\extra\httpd-xampp.conf

MEN lige meget hvordan vi får det til at virke lokalt, skal du ha en snak med udbyderen hvor du får dit site hostet for at få at vide hvordan MySQL Auth bruges hos dem.



Kommentar
Fra : JegErHer


Dato : 24-04-11 20:51

eller prøve at ligge dette i xampp\htdocs\members\.htpasswd
(hvis password er ren tekst i databasen)

AuthMySQLEnable On
AuthName "MySQL Secured Place"
AuthType Basic
require valid-user
AuthMySQLHost localhost
AuthMySQLUser root
# AuthMySQLPassword
AuthMySQLDB portraetogphoto_dk
AuthMySQLUserTable bruger
AuthMySQLNameField brugernavn
AuthMySQLPasswordField password
AuthMySQLPwEncryption none



Kommentar
Fra : henrik2008


Dato : 24-04-11 22:12

jeg skriver en email imorgen til cliche omkring problemet. (har skrevet tidligere, de var ikke specialt behjælplig, men det skal de, jeg skal nok få det til at virke!).
takker 100 gange.



Kommentar
Fra : henrik2008


Dato : 25-04-11 11:37

HAR PRØVET DET HELE, VIRKER IKKE, HAR IKKE PRØVET AT INSTALLERE GAMMEL VERSION AF
XAMPP, HVIS DET IKKE LØSER PROBLEMET SKAL JEG TIL AT, GENINSTALLERE DEN NYE XAMPP DA JEG GODT VIL HAVE DEN NYE XAMPP OG MYSQL.
DET LØSER HELLERE IKKE PROBLEMET MED CLICHE, MEN JEG DA GIVET DEM EN EMAIL, SÅ EFTER PÅSKE,SKRIVER DE SIKKERT TILBAGE.
JEG FORSÆTTER ALLIGEVEL PÅ RESTEN AF LOGIN SYSTEM, UDEN HTACESS FILEN.
DER MANGLER PÆN GRAFIK, SÅ ER JEG FÆRDIGT MED LOGIN SYSTEMET.



Kommentar
Fra : JegErHer


Dato : 26-04-11 09:24

Hvis mit forslag - Dato : 24-04-11 20:43 heller ikke virker hos dig, så har du et Firewall / Sikkerheds problem på din maskine.

Og jeg anbefaler dig ikke at bruge Installations udgaverne men i stedet for at brug ZIP / 7zip udgaverne, da disse giver mulighed for flere versioner/setups samtidigt
C:\XAMPP174
C:\XAMPP166a
C:\XAMPP166aTest
C:\XAMPPBeta
osv.


PS. flere gode links om emnet
http://modauthmysql.sourceforge.net/CONFIGURE
http://www.calculate-linux.org/packages/www-apache/mod-auth-mysql/files/12_mod_auth_mysql.conf


Kommentar
Fra : henrik2008


Dato : 26-04-11 14:27

nej, nej, jeg haqr prøvet med firelwall deaktivering hjælper, MEN HAR FÅET EMAIL FRA CLICHE DE UNDERSTØTTER IKKE AUTH MODULE OG HTACESS GENE HJEMMELAVET FILER PÅ DERES SERVER, OVERHOVEDET, SÅP DET ER DERFOR, DERFOR VIL JEG IKKE SPILLE MIN TID PÅ HTACESS FILER, NÅR CLICHE SLET IKKE UNDERSTØTTER DET (JA DET SKULLE JEG HAVE VIST NOGET FØR, SÅ I ANDRE IKKE SKULLE SÆTTES I FORLEGENHED, UNSKYLD, JAAA MEN SÅDAN KAN DET JO GÅ!.

MEN TIL GÆNGGÆLD ER DER EN SNEDIG METODE TIL AT FÅ PASSWORD BESKYTTE FOLDERN I PHP UDEN OVERHOVEDET A BRUGE HATCESS FILER, MEN STADIGVÆK MED EN SLAGS HTTP AUTH, HAR FUNDET ET LINK TIL DISSE SCRIPT.
MAN BRUGER ISTEDET HEADER ("HTTP AUTH"), AGTIG, SKAL LIGE LÆSE DET.
DISSE HAVLDÅRLIG TUTORIALS, FORKLARE AT MAN KAN BRUGER VARIABELERNE SOM, SERVER_ARRAYS VIST NOK, OG JEG ER OGSÅ 100% SIKKER PÅ AT MAN KAN TILDELE DISSE HEADER OG SERVER HTTP VARIABLER (SOM SKAL GEMME BRUGERNAVN OG PASSWORD, DER ER VISTNOK 2 EKSTRA VARIABLER SOM USER_SERVER OG PASSWD_SERVER VARIABLER ITL AT NETTOP GEMMME BRUGER OPS I, DET SER NEMT UD, HÅBER OGSÅ DET ER NEMT, HELLERE DET END HTACESS FILERNE, JEG HADER DEM, DE GIVER FOR MEGET FRUSTATION, SLET MED HTACESS FILER!).

HER ER ET LILLE SCRIPT FRA SIDEN OG ET LINKS, HVIS NOGLE SKULLE VÆRE INTERESERET OG ER LØBET IND I STORE PROBLEMER MED HATCESS FILER.

DETTE ER FR SIDEN PHP NET, OG IKKE MIT SCRIPT (SÅ BLIVER DE IKKE SURE!).

<?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>";
}
?>

DET SER JO NEMT UD, HÅBER VIRKELIG DER ER, JA DER STÅR OGSÅ AT DET GÆLDER FOLDER, DET HÅBER JEG?!.

LINK: http://php.net/manual/en/features.http-auth.php

TAK, FOR HJÆLPEN.

HENRIK HOLMEN.


Kommentar
Fra : henrik2008


Dato : 26-04-11 14:31

unskyld, der opsod vist nogle stavefejl, de er rettet her.

nej, nej, jeg har prøvet med firelwall deaktivering hjælper, (ikke).

HJÆLPER IKKE

OG HTACESS GENE( egne) HJEMMELAVET FILER

EGNE HJEMMELAVET HTACESS FILER



Kommentar
Fra : henrik2008


Dato : 26-04-11 14:43

$_SERVER['PHP_AUTH_PW'], denne kan sikkert tildeles evt, sådan her,

$mypassword=$_SERVER['PHP_AUTH_PW']

og dertil tjekkes imod mysql databasen, omtrend sådan her vistnok!.

mysql_query=("select id from mintabel where password='$mypassword'")

det burde da virke, der er måske snedet sig nogle fejl ind, ved det ikke, har ikke prøvet det endnu!.

men det betyder også at jeg mister knotrollen, for at styre hvem SOM ER LOGGET IND, uheldvis kan se de folder som de måtte ønske, med mindre man kan sætte en parametre til folderen og http auth til header og variablerne som $_SERVER['PHP_AUTH_PW'.
nu prøver jeg i det mindste at få skidtet til at virke!.



Kommentar
Fra : henrik2008


Dato : 27-04-11 21:00

nej, det virker slet, man kan ikke bruge filbaseret http auth til at beskytte folder, MEN JEG
HAR NU FUNDET LØSNINGEN OG DET VIRKER, VEDLÆGGER LIDT NYTTIG SCRIPT.
(FOR AT FÅ HTACESS OG HTPASSWD TIL AT VIRKE SKAL MAN BRUGE BASE64 KRYPTERING OG IKKE MD5, SÅ VIRKER DET OG SELVEFØLGELIG OGSÅ DEN RIGTIG STI TIL HTPASSWD).
løsningen.

her er en demo af htacess filen, og htpasswd filen.

htacessfil

AuthName "indtast venligst bruger ops."
AuthType Basic
AuthUserFile /home/din sti stil webhotel/billedmappe/.htpasswd
require user ditbrugernavn


htpasswd

henrik:bGKTAwnYBk3/2

script kryptering med krypt og base64 kryptering.



hmtl formen der modtager tekst og sender til php filen, krypter.php

inputkode.html

<html>

<head>

</head>

<body>

kryptering af koder til base64 krypt.

<br></br>
<br></br>

<form action="http://localhost/krypter.php" method="POST">

kode: <input name="kryptkode" type="text" /> <br> </br>

<input type="submit" value="krypter" />


</form>

</body>

</html>




krypter.php

php filen der kryptere til base64.

<?php

$kryptkode=$_REQUEST["kryptkode"];

$kryptkode = -->
crypt($_REQUEST["kryptkode"],base64_encode($_REQUEST["kryptkode"]));

$almenligkode=$_REQUEST["kryptkode"];
echo "<br><br>";

echo "du skrev koden: ",$almenligkode;

echo "<br><br>";

echo "koden, i base64 krypt format = ",$kryptkode;

?>
her er et lille script til at konvertere tekst/tal til base64 kryptering som kan bruges direkte i htacess filen.

VIRKER 1000000000000000000000000000000000%.

takker.

Kommentar
Fra : henrik2008


Dato : 27-04-11 21:01

ALTSÅ DET VIKRE PÅ BÅDE CLICHE OG XAMPP SERVER OG ALT ANDET MAN MÅTTE SMIDE DET PÅ.


Kommentar
Fra : JegErHer


Dato : 28-04-11 09:42

Citat
MEN HAR FÅET EMAIL FRA CLICHE DE UNDERSTØTTER IKKE AUTH MODULE OG HTACESS GENE HJEMMELAVET FILER PÅ DERES SERVER

Så med andre ord er Cliche Support fuld af løgn !!

Og du behøver ikke noget PHP kode til at opdatere user passwords, htpasswd følger med XAMPP

http://httpd.apache.org/docs/2.0/mod/mod_auth.html#authuserfile
Citat
Create a password file Filename with username as the initial ID. It will prompt for the password:

htpasswd -c Filename username

Add or modify username2 in the password file Filename:

htpasswd Filename username2


Kommentar
Fra : henrik2008


Dato : 28-04-11 10:13

det har jeg aldrig sagt, men skal ikke udlægge det til at, jeg har sagt at cliche ikke er fuld af løgn, de er bare otrolig dårlig til at forklare problemet vdr. htacess osv.

jeg læste bare den email fra, cliche og sendte udskrift i ermail med htacess /mysql tilgang, og spurgte om de understøeer mysql auth, og det sagde de at, det gjorde de ikke, det er ikk min skyld at cliche ikke kan forklare tingene ordentligt.
jeg sendte dem denne htacess fil, herunder.


AuthUserFile /opt/C:/xampp/htdocs/members/.htpasswd
AuthType Basic
AuthName "Member Page"
require valid-user

og til mysql herunder.
ps. har ikke prøve denne her, men for sikkert samme fejl som nævnt øverst!.
AuthName "MySQL authenticated zone"
AuthType Basic
AuthMySQLEnable on
AuthMySQLUser username_for_mysql_database
AuthMySQLPassword password_for_mysql_database
AuthMySQLDB auth
AuthMySQLUserTable users
AuthMySQLNameField user_name
AuthMySQLPasswordField user_passwd
AuthMySQLUserCondition "ip_address = '%a'"
require valid-user


HER ER BREVET FRA CLICHE.

Fra:
"Clichehosting Denmark" <support@cliche.dk>
Føj afsender til Kontakter
Til:
henrik email
Lige præcis den måde du ønsker at gøre det på understøtter serveren ikke da.

Men normalt filebased password beskytted mapper understøtter vi.


se her http://www.clichehosting.com/dk/tools/

under adgangskontrol.





Med venlig hilsen

Henrik / Teknisk Support
---------------------------
Cliche Webhosting Denmark
http://www.clichehosting.com/dk/support/


JO, JO jeh har skam tjek på hvad jeg går og siger!, og laver.



Kommentar
Fra : henrik2008


Dato : 28-04-11 10:16

årrhh, stavefejl igen, altså, jeg har ALDRIG SAGT AT CLICHE ER FULD AF LØGN, MEN DET ER OGSÅ LIGEMEGET NU, ER ALT GODT IGEN, SÅ LAD OS IKKE BESKÆFTE OS MED BAGTELLER.
HAV EN GOD DAG.

HENRIK.


Du har følgende muligheder
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
Søg
Reklame
Statistik
Spørgsmål : 177407
Tips : 31962
Nyheder : 719565
Indlæg : 6407762
Brugere : 218874

Månedens bedste
Årets bedste
Sidste års bedste