Δημιουργία site με ελεγχόμενα downloads

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από elavd » 16 Σεπ 2004 00:19

Έχω δημιουργήσει ένα site στο οποίο ζητάω Authentication από τους χρήστες για να δουν καποιες "κρυφές" σελίδες. Σε μια από αυτές τις κρυφές θέλω να δίνω τη δυνατότητα στους χρήστες που έχουν προηγουμένως κάνει login να κατεβάζουν αρχεία (π.χ. σε μορφή rar ή zip). Όμως αν απλά βάλω τα links για αυτά τα αρχεία σε μια php σελίδα δεν αρκεί γιατί αν μπει κάποιος και δει μια φορά στη status bar το path για το αρχείο, την επόμενη φορά δε θα χρειάζεται να κάνει login μιας και γράφοντας μόνο το path θα μπορεί να κατεβάσει κατευθείαν το αρχείο.
Σκέφτηκα να βάλω τα αρχεία μου σε βάση MySQL αλλά δε ξέρω αν γίνεται αυτό και αν ναι,αν μπορώ να ανεβάσω στη βάση αρχεία όλων των τύπων (από zip/rar μεχρι και mp3).
Γνωρίζει κανείς κάτι σχετικά με αυτό?

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27616
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από cordis » 16 Σεπ 2004 13:00

μπορείς να το κάνεις με apache authentication και με το .htaccess file...

http://httpd.apache.org/docs/howto/auth.html
http://www.unixreview.com/documents/s=8989/ur0405d/
http://www.google.com.gr/search?hl=el&i ... tion&meta=
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από elavd » 16 Σεπ 2004 14:16

Γίνεται με αυτή τη μέθοδο όμως το .htpasswd να ενημερώνεται από τη βάση δεδομένων για τα passwords που έχουν οι χρήστες της σελίδας? Δηλαδή όταν κάποιος έχει ήδη κάνει login, πηγαίνοντας να κατεβάσει το αρχείο δε θα του ζητάει έτσι κάνει login για το .haccess ή μπορεί με κάποιο τρόπο η PHP να κάνει login στο .htacces?

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από Rapid-eraser » 16 Σεπ 2004 14:48

av exeis kavei login sto foloder tote pio to voima va sou ksavazitisei login ksava :P

ektos mod_ath pou sou kavei afto to auth pou diabases me to htaccess kai to password file
iparxei kai to mod_auth_mysql n kapos etsi
pou xrisimopiei table tis mysql gia to login.

Twra kai oi dio diadikasies mplokarouve sigkekrimeva arxeia/fakelous me to <limit>
av 8es kati pio sigikerimevo omos px va elegxeis
sigkekrimeva arxeia me level kai diafora alla kaloudia opos elegxo twv downloads statistika kai tetoia mia lisi se php sigoura 8a eivai pio
xrisimi.

H php episis 8a mporouse va sivergastei me to password file pou dimiourgeis gia va paikseis me to htaccess omos iparxouve kai pio kales ilipiiseis.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από elavd » 16 Σεπ 2004 14:57

av exeis kavei login sto foloder tote pio to voima va sou ksavazitisei login ksava
Εννοείται ότι δεν το θέλω αυτό... Εξακολουθώ όμως να μη καταλαβαίνω πώς θα μπορεί κάποιος να κάνει download ένα αρχείο που βρίσκεται σε φάκελο προστατευμένο από .htpasswd αφού με το που θα κάνει κλίκ πάνω στο link, το αρχείο .htaccess θα του ζητάει να γνωρίζει τον σχετικό κωδικό για να μπορέσει να αποκτήσει πρόσβαση.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από Rapid-eraser » 16 Σεπ 2004 15:25

afto dev eivai to voima ?
va klidoseis eva folder oste va zitaei kodiko priv
oste va apoktiseis eksousiodotisi sto arxeio
kai va mporeis va to katebaseis ?
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από elavd » 16 Σεπ 2004 15:41

Ναι, αλλά με αυτόν τρόπο ο χρήστης θα πρέπει να γνωρίζει:
username/password για το ίδιο το site και
username/password για το προστατευόμενο folder.
Εγώ θα ήθελα, από τη στιγμή που ο χρήστης κάνει login στο site να μπορεί να κάνει ότι θέλει στη σελίδα χωρίς να βγαίνει popup από το .htaccess που να του ζητάει κωδικό

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από Rapid-eraser » 16 Σεπ 2004 16:11

giati dev ta sivdiazeis :P
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
Tanaka
Δημοσιεύσεις: 174
Εγγραφή: 27 Απρ 2004 21:40
Τοποθεσία: Κορωπί

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από Tanaka » 17 Σεπ 2004 12:41

Αυτό που σκέφτηκα είναι το εξής.
Βάζεις την ονομασία των αρχείων σε κάποια βάση δεδομένων και αποθηκεύεις ένα μοναδικό id και το path το οποίο έχει κάθε αρχείο.
Χρησιμοποιείς κανονικά php και mysql για το authentication των χρηστών.
Κατόπιν εμφανίζεις τα αρχεία τα οποία μπορεί να κάνει download ένας χρήστης από την βάση.
Το link που έχουν τα αρχεία δεν περιέχουν το path του αρχείου αλλά περιέχουν κάποιο id και το sessionid. Όταν θέλει κάποιος χρήστης να κάνει download ένα αρχείο τότε θα πατάει σε αυτό το αρχείο και θα σε πηγαίνει σε κάποια σελίδα.
Στην σελίδα που θα σε πηγαίνει θα κάνει verify το sessionid και κατόπιν θα βρίσκει με το id του αρχείου το path του και με την php (με header information) θα λες στον browser ποιό αρχείο να κατεβάσει.
Έτσι ένα χρήστης αν δεν ξέρει το sessionid δεν θα μπορεί να κάνει τίποτα και φυσικά θα μπορείς να χρησιμοποίσεις και κάποιο cookie για να δεις αν είναι logged in ο χρήστης

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από elavd » 17 Σεπ 2004 12:53

Έξυπνη η ιδέα σου Tanaka :lol:
Θα ήθελα να σε ρωτήσω το εξής (μπορεί να είναι και λίγο χαζό): το sessionid που λες θα πρέπει να αποθηκεύεται στη βάση, ή είναι αυτό που δημιουργείται δυναμικά γράφοντας session_start(); Δηλαδή θα πρέπει να κάνω έλεγχο στην αρχή κάπως έτσι? :

Κώδικας: Επιλογή όλων

if&#40;!$_SESSION&#91;valid_user&#93;&#41; &#123; die &#40;"ERROR"&#41;; &#125;

Άβαταρ μέλους
Tanaka
Δημοσιεύσεις: 174
Εγγραφή: 27 Απρ 2004 21:40
Τοποθεσία: Κορωπί

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από Tanaka » 17 Σεπ 2004 16:41

Μιλάω για αυτό που παίρνεις με την εντολής session_id().
Αυτή την τιμή μπορείς να την προσαστήσεις στα links σου και κατόπιν να την συγκρίνεις.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από ThyClub » 23 Σεπ 2004 05:49

Ακόμη μπορείς να ζιπάρεις τα αρχεία on the fly και κάθε φορά το αρχείο που θα δημιουργείται να το στέλνεις με headers στο χρήστη. Έτσι ο χρήστης δεν θα καταλαβαίνει απο που του έρχεται το αρχείο αφού θα βλέπει οτι κατεβάζει το files.zip αλλά αν πάει να το δώσει το λίνκ (ΠΧ http://www.example.com/downloads/files.zip) σε κάποιο φίλο του ο φίλος του θα βλέπει ενα No File (404) error. :wink:

Έτσι αν ο χρήστης δεν έχει κάνει login και δεν μπορεί να δεί την σελίδα :
http://www.example.com/downloads/D.php?file=utils

δεν θα μπορεί να κατεβάσει τίποτα.

Αν θέλεις βοήθεια για το πώς να το κάνεις πέστο :wink:

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από ThyClub » 23 Σεπ 2004 05:50

Ακόμη μπορείς να ζιπάρεις τα αρχεία on the fly και κάθε φορά το αρχείο που θα δημιουργείται να το στέλνεις με headers στο χρήστη. Έτσι ο χρήστης δεν θα καταλαβαίνει απο που του έρχεται το αρχείο αφού θα βλέπει οτι κατεβάζει το files.zip αλλά αν πάει να το δώσει το λίνκ (ΠΧ http://www.example.com/downloads/files.zip) σε κάποιο φίλο του ο φίλος του θα βλέπει ενα No File (404) error. :wink:

Έτσι αν ο χρήστης δεν έχει κάνει login και δεν μπορεί να δεί την σελίδα :
http://www.example.com/downloads/D.php?file=utils

δεν θα μπορεί να κατεβάσει τίποτα.

Αν θέλεις βοήθεια για το πώς να το κάνεις πέστο :wink:

Άβαταρ μέλους
Tanaka
Δημοσιεύσεις: 174
Εγγραφή: 27 Απρ 2004 21:40
Τοποθεσία: Κορωπί

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από Tanaka » 23 Σεπ 2004 09:47

Να συμπληρώσω σε αυτό που είπα πριν λίγο ότι αφου πατήσει κάποιος το link και συγκρίνεις το session_id, θα τραβάς από την βάση το path του αρχείου και κατόπιν (όπως είπε και ο ThyClub) θα στέλνεις με headers το αρχείο στο οποίο μπορείς να δώσεις ότι ονομασία θάλεις.

Μία απλή μορφή θα μπορούσε να είναι η παρακάτω:

Κώδικας: Επιλογή όλων

	$id = $_GET&#91;'id'&#93;;
	
	include&#40;'../../includes/dbConnection.inc'&#41;;
	$connection = new dbConnection&#40;&#41;;
	$connection->connect&#40;&#41;;
	$query = "SELECT * FROM files WHERE id=\"$id\"";
	$result = $connection->executeQuery&#40;$query&#41;;
	$row = $connection->fetchArray&#40;$result&#41;;
	$connection->close&#40;&#41;;
	
	$contentLength = filesize&#40;$row&#91;'logoFileName'&#93;&#41;;

	header&#40;"Content-Type&#58; application/octetstream"&#41;; 
	header&#40;"Content-Type&#58; application/octet-stream"&#41;;
	header&#40;"Content-Length&#58; $contentLength"&#41;; 
	header&#40;"Content-Disposition&#58; attachment; filename=$row&#91;fileNametmp&#93;"&#41;;
	
	readfile&#40;$row&#91;'logoFileName'&#93;&#41;;

	header&#40;"status&#58; 204"&#41;;
	header&#40;"HTTP/1.0 204 No Response"&#41;;

Άβαταρ μέλους
elavd
Δημοσιεύσεις: 323
Εγγραφή: 16 Σεπ 2004 00:04
Τοποθεσία: Ιωάννινα

Δημιουργία site με ελεγχόμενα downloads

Δημοσίευση από elavd » 23 Σεπ 2004 10:06

Ευχαριστώ πολύ παιδιά για την πολύτιμη βοήθειά σας!! Τελικά εφάρμοσα την λύση που μου πρότεινε ο Tanaka, μιας και μου φάνηκε απλή και πρακτική.
:wink:

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες