Εμφάνιση Πηγαίου Κώδικα σε Σελίδα

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

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

Απάντηση
prokopios
Δημοσιεύσεις: 155
Εγγραφή: 17 Φεβ 2006 15:47

Εμφάνιση Πηγαίου Κώδικα σε Σελίδα

Δημοσίευση από prokopios » 17 Σεπ 2008 17:51

Γεια σας,
θέλω να φτιάξω ένα εικονίδιο το οποίο όταν το πατάς να σου εμφανίζει τον πηγαίο κώδικα μιας συγκεκριμένης σελίδας.
Π.χ. της $url='www.freestuf.gr'

Ξέρει κανείς πως μπορώ να κάω κάτι τέτοιο ??


Ευχαριστώ πολύ


Υ.Γ. : Δεν ξέρω κατά πόσο μπορεί να γίνει πιο εύκολα και με javascript κάτι τέτοιο.
Τελευταία επεξεργασία από το μέλος prokopios την 19 Σεπ 2008 00:18, έχει επεξεργασθεί 2 φορές συνολικά.
ΑΥΤΑ!!!

Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

Εμφάνιση Πηγαίου Κώδικα σε Σελίδα

Δημοσίευση από Stadem » 17 Σεπ 2008 19:06

Μπορείς να του δίνεις μετά από Get ότι σύνδεσμο θέλεις.

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

<script language=JavaScript>
function ProvolPhgeoy&#40;&#41; &#123;
window.location = "view-source&#58;" + window.location.href &#125;
</script>


<a href=javascript&#58;ProvolPhgeoy&#40;&#41;>Πηγαίος κώδικας</a>

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Εμφάνιση Πηγαίου Κώδικα σε Σελίδα

Δημοσίευση από dva_dev » 17 Σεπ 2008 21:28

Μια διευκρίνηση μόνο: Πηγαίος κώδικας δεν είναι απαραίτητα αυτό που δείχνει ο browser, εκτός και αν η σελίδα είναι html.

prokopios
Δημοσιεύσεις: 155
Εγγραφή: 17 Φεβ 2006 15:47

Εμφάνιση Πηγαίου Κώδικα σε Σελίδα

Δημοσίευση από prokopios » 18 Σεπ 2008 21:22

Ευχαριστώ πάρα πολύ για τη βοήθεια!

Μόνο που έχω ακόμα ένα προβληματάκι...

<a href="javascript:ProvolPhgeoy()" target="_blank">Πηγαίος κώδικας</a>

Γιατί δεν δέχεται την ιδιότητα target ??

Ξέρει κανείς κανένα τρόπο για να εμφανιστεί σε νέο παράθυρο ?
ΑΥΤΑ!!!

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Εμφάνιση Πηγαίου Κώδικα σε Σελίδα

Δημοσίευση από cpulse » 19 Σεπ 2008 12:18

Το "view-source:" λειτουργεί μόνο σε FireFox, στο Chrome και στον IE6. Ο Safari κι ο IE7 δεν το αναγνωρίζουν. Και στον IE6 ανοίγει notepad, δεν το δείχνει μέσα στο browser.

Αν θες να το κάνεις με PHP μπορείς να φτιάξεις ένα ξεχωριστό αρχείο το οποίο να παίρνει το URL σαν παράμετρο. Εκεί βέβαια θα πρέπει να κόψεις την βάση του URL και να το αντικαταστήσεις από το εσωτερικό path.

Πχ.. αν το script σου είναι το
http://www.example.com/source.php
το script που θέλεις να δεί ο χρήστης είναι το
http://www.example.com/script.php
όλα αυτά μαζί θα πρέπει να τα εμφανίζεις σαν
http://www.example.com/source.php?url=h ... script.php

Όταν ανοίξει το script σου θα πρέπει να κόψεις το αρχικό http://www.example.com/ και να το αντικαταστήσεις με το εσωτερικό path το οποίο ανάλογα την περίπτωση μπορεί να είναι διαφορετικό. Ενδεικτικά μπορεί να μοιάζει με /var/www/example.com/htdocs/

Μετά η εμφάνιση γίνεται με μια γραμμή:

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

echo nl2br&#40;htmlspecialchars&#40;file_get_contents&#40;$filename&#41;&#41;&#41;;
Και βέβαια επειδή τέτοια πράγματα μπορούν να γίνουν ΠΑΡΑ πολυ επικίνδυνα καλό είναι να βάλεις και μια δικλείδα ασφαλείας για να μην μπορεί κανείς να δει εσωτερικά αρχεία. Οπότε πριν το echo βάλε

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

if &#40;strpos&#40;$_GET&#91;'url'&#93;, '..'&#41; !== false&#41; die&#40;'Invalid page'&#41;;

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Εμφάνιση Πηγαίου Κώδικα σε Σελίδα

Δημοσίευση από cpulse » 19 Σεπ 2008 12:31

Τώρα που το ξανασκέφτομαι μάλλον πολύ καλύτερα θα ήταν να το εμφανίζεις σαν text χωρίς html escapings

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

if &#40;strpos&#40;$_GET&#91;'url'&#93;, '..'&#41; !== false&#41; die&#40;'Invalid page'&#41;;

header&#40;'Content-type&#58; text/plain'&#41;;
echo file_get_contents&#40;$filename&#41;

Απάντηση

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

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

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