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

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

Δημοσ.

Εχω φαει τον κοσμο να βρω ενα βοηθημα μπας και λυσω αυτον εδω το προβλημα:

 

Εχω ενα php αρχειο και θελω να κανω ενα include μεσα σε αυτο.

Το θεμα ειναι πως θελω να ειναι dynamic η διαδικασια που να ακολουθει αυτη την λογικη:

 

α) να γινεται ευρεση ολων των αρχειων .html που θελω να γινουν include απο εναν συγκεκριμενο φακελο 

(στην προκειμενη περιπτωση εχω αυτο το relevant path   "../project-files/mobile"

 

β) με καποιο τροπο τα παραπανω filenames να μπουνε σε ενα dropnav , μια λιστα ή εστω σαν απλο array , μονο που πρεπει να μπορεις να κανεις κλικ πανω τους

 

γ) μολις κανεις κλικ σε ενα απο αυτα τα αρχεια, τοτε αυτο το αρχειο να γινεται αυτοματα include στη σελιδα. 

 

 

Mεχρι στιγμης χρησιμοποιω αυτο εδω:

	// Define the location where the .htm template is
	//foreach (glob("../project-files/mobile/*.htm") as $filename)
       //{
       //	include $filename;
       //}
       ?> 		

το οποιο κανει Include αυτοματα οτι αρχεια htm (με αυτα δουλευω) υπαρχουν στον συγκεκριμενο φακελο. Αυτο προυποθετει να εχω μονο ενα αρχειο την φορα αλλιως θα φορτωσουν ολα.

 

Πως θα γινει αμα ο φακελος-πηγη μου εχει μεσα πχ 10 αρχεια, να δινεται η επιλογη στον χρηστη να επιλεγει ενα απο αυτα να γινει include? 

 

Ολο αυτο πρεπει να γινει δυναμικα. Το μονο που μας ειναι γνωστο πρεπει να ειναι το path που θα ειναι τα αρχεια αυτα

Δημοσ.

Ε δεν υπάρχουν και πολλοί τρόποι να γίνει έτσι δεν είναι; Θα περάσεις μέσω $_GET ή $_POST ή ότι βολεύει το όνομα του αρχείου που έχει επιλέξει ο χρήστης, θα φτιάξεις μια μεταβλητή με βάση αυτό και θα κάνεις include με τη μεταβλητή όπως κάνεις τώρα.

 

Προφανώς εφόσον η επιλογή του χρήστη θα προέρχεται από κάποια σελίδα που ήδη έχει φορτώσει, το include για το οποίο μιλάμε θα πρέπει να γίνει σε page reload ή έμμεσα με AJAX.

  • Like 1
Δημοσ.

Αυτό που είπε ο defacer πρέπει να κάνεις για να κάνεις include τα αρχεία σου, πρώτα get ή post και μετά reload ή ajax.

 

Αυτό που δεν σου απάντησε είναι το πως θα γίνεται εύρεση των αρχείων και να δημιουργηθεί το menu (dropnav).

 

Μπορείς να χρησιμοποιήσεις την glob() όπως καλά κάνεις για να δημιουργήσεις το dropnav

 

Σε ένα πολύ απλό παράδειγμα με get στο file "to_file_pou_theleis_na_paei.php"

 

<ul class='dropnaav'>

<?php foreach (glob("../project-files/mobile/*.htm") as $filename) ?>

    <li><a href="to_file_pou_theleis_na_paei.php?file=<?= $filename ?>"><?= $filename ?></a></li>
<?php } ?>

</ul>

 

Στο file σου τσακώνεις με $_GET['file'] ή κάνεις Include ή κάνεις κάτι ajaxοειδές :)

  • Like 1
Δημοσ.

Υπόψιν πως όταν έρθει η ώρα να διαβάσεις τη μεταβλητή από $_GET κλπ πρέπει οπωσδήποτε να κάνεις έλεγχο (με realpath() και κατάλληλες functions για να βρεις το directory του include) ότι αυτό που σου έρχεται είναι ένα από τα "επιτρεπόμενα" αρχεία.

 

Διαφορετικά κανείς δε με εμποδίζει σε πρώτη φάση να αρχίσω να δίνω paths του στυλ ../../../etc/super_secret_file και ο ευγενικά συνεργάσιμος web server να μου δείχνει τα περιεχόμενα όποιου αρχείου του server μου αρέσει, οπότε παίρνω πληροφορίες για να περάσω σε δεύτερο στάδιο και να μη τα πολυλογώ owned.

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...