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

.htaccess redirection σε *.php files που δεν υπαρχουν


koslibpro

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

καλησπερα

 

το θεμα εχει ως εξης:εστω οτι εχω σε 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 πρεπει να κανω την δουλεια..κανω λαθος?αν ναι,προτινετε μου αυτο που πιστευετε ως ορθοτερο.

 

ευχαριστω πολυ!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα πρέπει να κάνεις έλεγχο το αρχείο, αν υπάρχει πρώτα, και μετά να το κάνεις include, διαφορετικά να σερβίρεις 404 σφάλμα ή redirect εκεί που θες.

 

Αν και για να είσαι πιο ασφαλής, καλύτερα να ελέγχεις αν οι παράμετροι στο link (πχ goto) είναι οι επιτρεπτοί και υπαρκτοί!

 

Όλα αυτά στην php και όχι με .htaccess

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα μπορούσες να χρησιμοποιήσεις routing στην εφαρμογή σου και όταν κάποιος πληκτρολογεί ένα url που δεν υπάρχει (αντίστοιχος, controler, κλάσση, etc) μου εμφανίζει μία error page που έχω φτιάξει, με ένα μήνυμα και link στην αρχική.

To router που χρησιμοποιώ είναι το glue.php

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

η 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 παραπάνω μπαίνει ο σχετικός κώδικας).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λοιπον defacer χρησιμοποιησα αυτο που μου προτινες εσυ και προσαρμωζοντας το καταλληλα,παιζει μια χαρα:)οποτε τωρα δεν εω αυτο το προβλημα..

 

σας ευχαριστω ολους!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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