Προς το περιεχόμενο

PHP kai input parameters tou typou test.php/XXXXXXX


bigbrother

Προτεινόμενες αναρτήσεις

Δημοσ.

Kalhmera,

 

8elw na ftiaxw mia selida sthn opoia to php arxeio na pairnei thn parametro meso tou backslash kai oxi me "?". Prospa8hsa sto google alla den xerw kan ti query string na balw gia auto kai etsi egkateleipsa thn prospa8eia.

 

 

Exw ftiaxei ena arxeio

 

test.php

 

pou pairnei parametro meso "?"

 

dhladh

 

http://localhost/test.php?q=filename'>http://localhost/test.php?q=filename

 

 

8elw na to kanw na dexetai thn parametro me "/" opws:

 

http://localhost/test.php/filename'>http://localhost/test.php/filename

 

 

Auto to kanw gia ena scriptaki pou sou epitrepei na katebazeis arxeia apo ton webserver mou. Etsi pws to exw ylopoihsei twra to php script, otan ektelw http://localhost/test.php?q=filename

 

kai paw na to soso sto disko, to onoma pou emfanizetai einai

"test.php"

 

asxetos me to onoma tou arxeiou pou antistoixei (p.x. to filename)

 

 

enw an to kataferw na to kanw na dexetai parametro meso "/" kai etsi einai

 

http://localhost/test.php/filename

 

tote to arxeio an paw na to soso ston topiko disko 8a exei to onoma

 

somevalue

 

[to opoio einai kai to sosto]

 

 

Sas euxaristw ek ton protervn

Δημοσ.

Φίλε μου νομίζω ότι ψάχνεις λάθος τρόπο για να λύσεις το πρόβλημα αυτό, που λύνεται με διαφορετικούς τρόπους. Έτσι πως το λες, θα έχεις προβλήματα με τον apache, διότι το / σημαίνει folder, μην το ξεχνάμε. Σου προτείνω δυο λύσεις, διαλέγεις και παίρνεις, φυσιολογικά δουλεύουν και οι δυο το ίδιο:

 

1. Χρησιμοποιείς header ως εξής:

 

>header("Content-Disposition: attachment; f=$filename");

 

το οποίο θα προτείνει στον browser να σώσει το αρχείο με το όνομα που του λες εσύ στη μεταβλητή

 

2. Ένας άλλος τρόπος είναι μέσω του configuration του apache, είτε μέσω του httpd.conf είτε μέσω κάποιου .htaccess και χρησιμοποιώντας την mod_rewrite ώστε πρώτα να σχηματίζεται το τελικό URL και μετά να πασάρεται σε σένα χωρίς να το καταλάβεις εσύ και o browser. Αυτό μπορεί να γίνει ως εξής:

 

>
RewriteEngine On
RewriteRule    ^/downloads/(.*)    /getFile.php?f=$filename

 

Ελπίζω να σε βοήθησα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...