webprogrammering: Göra bilder privat på mitt webhotell

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av squiz3r »

Tjena.

Det jag vill göra är att ha en privat typ blogg som man bara kan se när man är inloggad. ASP har jag hållit på med ganska mycket, och inloggningssidor och sånt är ju inga problem, det fixar man ju lätt med sessions. Nu har jag ett annat webhotell också där jag kan köra PHP, så det håller jag också på att lära mig.

Men problemet jag har är hur ska jag göra för att bilderna inte ska gå att se om man inte loggar in på "bloggen"? Om jag bara laddar upp bilderna som vanligt på webhotellet så hittar ju google det, och man får ju fram det om man skriver in urlen...

Någon som kan förklara lite hur man kan göra, har länk till nån guide eller liknande? Eller bara tips på vad jag ska söka på?! :)

Mvh. Danne
Användarvisningsbild
AndLi
Inlägg: 18121
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av AndLi »

enklast är väll att lägga bilderna i en katalog man inte kan komma åt via webserven.
Låt sen php kolla att valid session finns och hämta bilden från katalogen...

Har du en publik länk pekandes på katalogen med bilderna och ingen defalt webpage i den katalogen? (och directory listning)

Har du ingen länk förutom på din sida med login och inte tillåter listning av bilderna har ju google inte en chans att hitta dem...
bos
Inlägg: 2308
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av bos »

AndLi skrev:Har du ingen länk förutom på din sida med login och inte tillåter listning av bilderna har ju google inte en chans att hitta dem...
Var inte så säker. För några år sen skickad Google toolbar alla länkar man skrev in i browsern till Google för indexering. Vet inte hur det är idag men jag blev mäkta förvånad och slängde möget direkt när jag upptäckte det.
Användarvisningsbild
AndLi
Inlägg: 18121
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av AndLi »

Åhh så kreativt av dem :) Men då borde ju en robot.txt (för det är väl så den ska heta?) hjälpa lite..

Men bäst är ju såklart med en riktig login och session. Man kanske skulle kunna tänka sig nån typ av .htaccess begränssning med?
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av squiz3r »

Några tips på vad jag kan söka på? Känner att jag saknar kunskap inom detta området...
Användarvisningsbild
kifkroker
Inlägg: 405
Blev medlem: 15 september 2006, 01:22:46
Ort: Oslo

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av kifkroker »

för att garantera att ingen annan än någon med en ok session kan komma åt bilderna kan du ju putta in dem i en databas, och sedan ha en phpsida som servar dom endast med valid session. Vilket hotell är deT?
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av Muppis »

att lägga bilderna i databasen är långsamt, osmidigt och är bara krångligt, sen så har man oftast mer webbutrymme än databasutrymme på webbhotell! Det enklaste och snabbaste är att lägga dem i en mapp utanför webbrooten och inkludera dem med tex readfile i php.
Användarvisningsbild
kifkroker
Inlägg: 405
Blev medlem: 15 september 2006, 01:22:46
Ort: Oslo

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av kifkroker »

det känns varken som att hastighet eller lagringsutrymme lär bli något problem i den här applikationen, och skriver du blogg-koden själv är det ju inte mångra rader från att putta in och hämta bilderna från DB:n också. Men känns det obekvämt har du ju ett umärkt förslag ovan! BTW THN FTW!
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av squiz3r »

kifkroker: Det är One.com jag har, så platsen i databasen är inga problem, jag har 3GB totalt och det kvittar om det är databasen eller webbutrymmet som tar platsen.

Jag hittade en guide som visar hur man gör det, och det verkar ju inte vara jättesvårt, och eftersom jag kommer ha lite trafik här så borde ju detta vara ett bra alternativ.

Muppis: Det verkar inte som om jag kan lägga något utanför roten här, när jag loggar in på ftp'n kommer jag in i root-mappen. :?:
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av Muppis »

Jag har också haft bilder i databasen, men man tröttnar ganska snabbt på det när man märker att man måste in i phpmyadmin eller koda någon sida bara för att se vilka sketna bilder man har liggandes där..

Har du inte tillgång till mapp utanför webbrooten kan du skapa en mapp utan surfrättigheter med en .htaccess-fil, som lyder något liknande:

Kod: Markera allt

Order Deny,Allow
Deny from all
http://httpd.apache.org/docs/2.2/mod/mo ... html#order
http://httpd.apache.org/docs/2.2/mod/mo ... .html#deny
http://httpd.apache.org/docs/2.2/mod/mo ... html#allow
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av squiz3r »

Muppis: Nu har jag gjort som du sa, och det fungerar, då kan ingen komma åt bilden. (Tack!)

Men sen vill jag ju kunna lägga upp de bilderna på bloggen, ska jag då använda ReadFile? Som jag fattar det då så kan man inte dumpa bilden direkt i html'en då, utan man måste göra en egen sida som man länkar SRC'n till? Typ:

I bloggen:
<IMG SRC=view_private_picture.php?pic=filename>

och view_private_picture.php ska då se ut såhär:

Kod: Markera allt

<?php
$file = [argumentet i adressfältet];

[Kolla om användaren har en giltig session, annars echo felmedelande istället.]

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>
[Blev lite pseduokod, är inte så bra på PHP så jag får läsa på för det]

Edit: Men, $file är väll inte bara namnet, utan även adressen/sökvägen till bilden?
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av Muppis »

Det glömde jag skriva, men du bör nog skippa raden med Content-Disposition, annars tror webbläsaren att du vill "spara som".

$file är sökvägen till filen ja.

$file = [Sökvägg till bildmapp] / [filnamn från användare].

För att göra livet lätt och säkert kan jag även tipsa om funktioner som du antagligen vill ha :)

http://se2.php.net/manual/en/function.basename.php
http://se2.php.net/manual/en/function.file-exists.php
http://se2.php.net/manual/en/function.is-readable.php

Om du vill göra en egen bilduppladdningssida i framtiden kan jag redan nu tipsa om:
http://se2.php.net/manual/en/features.file-upload.php
http://se2.php.net/manual/en/function.m ... d-file.php
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av squiz3r »

Hehe, När man läser i de där länkarna så undrar man ju varför man har hållit på med ASP i ett helt år! :mrgreen:

Kom precis på att mitt bloggscript som jag har gjort (det jag använder nu) det är ju i ASP, så antingen får jag göra ett nytt i PHP, eller som det lutar åt nu, ladda ner ett gratis script. Jag vill bara ha en enkel liten blogg kod, den får gärna använda MySQL så att det är lätt att kopiera över till min befintliga blogg om jag vill det! Har ni några tips?

Hittade "Simple PHP blog", den verkar enkel o bra, dock är det inte MySql. Men det är väll ganska lätt att ändra misstänker jag.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av squiz3r »

Nu gjorde jag en php fil med detta inehållet:

Kod: Markera allt

<?php
$file = $_GET["pic"];

//[Kolla om användaren har en giltig session, annars echo felmedelande istället.]

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>
Men mycket väl så blev det som du sa Muppis att den ville "spara som" eller "öppna", så då tog jag bort denna raden:
header('Content-Disposition: attachment; filename='.basename($file));

men då kommer det också upp "spara som", fast den vill inte spara bilden utan den sparar min .php fil, fast med bara skrot i :S. Visst va det den raden du menade att jag skulle ta bort?

Mvh, Danne
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: webprogrammering: Göra bilder privat på mitt webhotell

Inlägg av squiz3r »

Nu löste jag det själv :)

Jag tog bort den raden du sa, men sen fick jag byta ut:
header('Content-Type: application/octet-stream');
mot:
header ('Content-type: image/jpeg');
Så nu fungerar den biten!

Nu ska jag laga midda, sen ska jag bara lista ut hur man gör en session kontroll i php samt modifiera den där gratisbloggen så ska allt fungera som jag vill :)

Tack för all hjälp än så länge i alla fall! Det är väldigt lärorikt :)
Skriv svar