koslibpro Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 καλησπερα το θεμα εχει ως εξης:εστω οτι εχω σε Localhost ενα site.και μπαινω σε αυτο οταν πληκτρολογω localhost/mpampis/index.php. εχει και μια φορμα χρηστων αυτο το σιτε,και ο καθε χρηστης για να κανει Log in περιηγειται(πατωντας το Link εννοειται),στο localhost/mpampis/?goto=user,οπου για αυτη την κληση υπαρχει ενα αρχειο user.php. αν γραψω καταλαθος localhost/mpampis/?goto=userwdf(δηλαδη μια ανυπαρκτη σελιδα),μου βγαζει error το εξης > [b]Warning[/b]: include userwdf(.php) [[url="http://localhost/mpampis/function.include"]function.include[/url]]: failed to open stream: No such file or directory in [b]/server_path/index.php[/b] on line [b]6[/b] η 6η γραμμη του index.php αρχειου μου ειναι η > include($_GET['goto'].(isset($_GET['do'])?"-".$_GET['do']:"").".php"); οποιοσδηποτε μπορει να με βοηθησει για να διορθωσω αυτη την ατελεια,θα του ημουν ευγνωμον! υποψιαζομαι πως με το .htaccess file πρεπει να κανω την δουλεια..κανω λαθος?αν ναι,προτινετε μου αυτο που πιστευετε ως ορθοτερο. ευχαριστω πολυ!
prekageo Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 Δε γίνεται από το .htaccess. Πρέπει να ελέγχεις αν υπάρχει το αρχείο που θέλεις να κάνεις include. Υπάρχει σχετική php function.
PeLLaRaS Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 Θα πρέπει να κάνεις έλεγχο το αρχείο, αν υπάρχει πρώτα, και μετά να το κάνεις include, διαφορετικά να σερβίρεις 404 σφάλμα ή redirect εκεί που θες. Αν και για να είσαι πιο ασφαλής, καλύτερα να ελέγχεις αν οι παράμετροι στο link (πχ goto) είναι οι επιτρεπτοί και υπαρκτοί! Όλα αυτά στην php και όχι με .htaccess
x_maras Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 Θα μπορούσες να χρησιμοποιήσεις routing στην εφαρμογή σου και όταν κάποιος πληκτρολογεί ένα url που δεν υπάρχει (αντίστοιχος, controler, κλάσση, etc) μου εμφανίζει μία error page που έχω φτιάξει, με ένα μήνυμα και link στην αρχική. To router που χρησιμοποιώ είναι το glue.php
defacer Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 η 6η γραμμη του index.php αρχειου μου ειναι η >include($_GET['goto'].(isset($_GET['do'])?"-".$_GET['do']:"").".php"); οποιοσδηποτε μπορει να με βοηθησει για να διορθωσω αυτη την ατελεια,θα του ημουν ευγνωμον!υποψιαζομαι πως με το .htaccess file πρεπει να κανω την δουλεια..κανω λαθος?αν ναι,προτινετε μου αυτο που πιστευετε ως ορθοτερο.ευχαριστω πολυ! Το .htaccess δεν έχει να κάνει μ' αυτό. Το warning σου λέει ότι προσπαθείς να κάνεις include αρχείο που δεν υπάρχει, επομένως πρέπει να ελέγξεις αν υπάρχει και αν όχι να πράξεις ανάλογα. > $filename = $_GET['goto'].(isset($_GET['do'])?"-".$_GET['do']:"").".php"; if (!is_file($filename)) { // εδώ μπορείς να κάνεις διάφορα, π.χ. echo κάτι, include("error-page.php")... die("Cannot find controller for action."); } include($filename); Θα μπορούσες να χρησιμοποιήσεις routing στην εφαρμογή σου και όταν κάποιος πληκτρολογεί ένα url που δεν υπάρχει (αντίστοιχος, controler, κλάσση, etc) μου εμφανίζει μία error page που έχω φτιάξει, με ένα μήνυμα και link στην αρχική.To router που χρησιμοποιώ είναι το glue.php Κι αυτό που έχει τώρα routing είναι (σε πολύ πρώιμο στάδιο βέβαια). Μια χαρά μπορεί να εμφανίζει error page αν θέλει (απλά μέσα στο if παραπάνω μπαίνει ο σχετικός κώδικας).
koslibpro Δημοσ. 20 Απριλίου 2012 Μέλος Δημοσ. 20 Απριλίου 2012 Καλημερα σε ολους και συγνωμη για την καθυστερημενη απαντηση. Θα δοκιμασω τις λυσεις που μου προτινατε διεξοδικα και θα ενηνερωσω!
koslibpro Δημοσ. 20 Απριλίου 2012 Μέλος Δημοσ. 20 Απριλίου 2012 Λοιπον defacer χρησιμοποιησα αυτο που μου προτινες εσυ και προσαρμωζοντας το καταλληλα,παιζει μια χαραοποτε τωρα δεν εω αυτο το προβλημα.. σας ευχαριστω ολους!
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα