19 Apr 2006, 06:59  ·  Topic 311  ·  Post 1031
Στελιο, Κωστα, Καλησπερα,

Κοιταξα λιγο τη φορμα cavereport. Ο λογοι που δεν παιζει η live forma ειναι οι εξης:

1) Eιναι φτιαγμενη για να δουlευει με front page server extensions και μετα την εγκατασταση τoυ joonla μαλλον δεν βλεπει τα default "vti" paths των fpse.
2) Aκομα ομως και να τα βλεπει, δεν θα παιξει διοτι ο default wrapper του joomla δεν χαμπαριαζει απο ... παραμετρους οπως αυτες που "παιρνανε" μολις η χρηστης πατησει την "αποστολη". Συνηθως στις φορμες , και μετα την αποστολη, ενα δευτερο script, αναλαμβανει να επεξεργαστει καταληλα οτι "περασε" ο χρηστης (π.χ. αποστολη σε email). Ο default wrapper του joomla δεν χαμπαριαζει απο το δευτερο script και μενει "κοκαλο". Στην υπαρχουσα forma το δευτερο αυτο script ειναι στη γραμμη "action ... /_vti_bin/shtml.exe "

Καθισα λιγο και τη "μαζεψα" , εφτιαξα ενα δευτερο scrioptaki php, και βρηκα πως πρεπει να πειραχτει ο wrapper για να καταλαμβαινει απο παραμετρους Ετσι λοιπον τη φορμα τη βαφτισα cavereport.htm.php, και το scriptaki που παιρνει και στελνει τις πληροφοριες cavereport.php Xονδρικα οι αλλαγες που εκανα και παιζουν στο δικο μου περιβαλλον ειναι οι εξης:

=============================
cavereport.htm.php
=============================
(Αν θελετε να τη δειτε μην την ανοιξετε με html editor , και μπουν αυτοματα html headers και footes, δεν θα παιζει μετα.
Ανοιχτε την με plain text editor) Η forma απο cavereport.htm πρεπει να μετονομαστει σε cavereport.htm.php

Για να μην ειναι τελειως χυμα, προσθεσα λιγο ασφαλεια,(το spamming ...θεριζει και ενοχλει) Για να μην στελενει ο καθενας οτι του καπνισει, και για να απαφυγουμε να γινουμε στοχος malware net scripts:
-Τα πεδία Όνομα ,Email,Τηλέφωνο και Κωδικός Επικύρωσης ειναι υποχρεωτικα. Αν λειπει κατι εμφανιζεται μυνημα να ξαναπροσπαθησει ο χρηστης
-Email: Γινεται ελεγχος (cavereport.php) αν ο χρηστης γραφει χαρακτηρες του τυπου 4#$%*()~ , και το κυριοτερο αν το domain του υπαρχει. Αν δεν υπαχει ...τρωει πορτα.
-Κωδικος Επικυρωσης: Στην αρxη της φορμας προσθεσα μια συναρτηση που βγαζει ενα τυχαιο string 5 χαρακτηρες (μπορει να γινουν οσοι θελουμε) καθε φορα που καλειται η φορμα. Ο χρηστης θα πρεπει να δωσει τον κωδικο που του εμφανιζεται (οχι copy paste, με το ...χερακι),αλλιως... δεν περνας κυρα-μαρια. Εξασφαλιζομαστε ετσι σε καλο βαθμο
οτι δεν θα μας κοροιδεψει καποιο malware.

Επειδη ειναι ...πολυ ψηλη, και το κυριοτερο διοτι ο αγαπητος μας firefοx δεν καταλαμβαινει απο inline frames που βγαζει το output του joomla wrapper, προσθεσα scrolling.
=============================
cavereport.php
=============================
To script τσεκαρει για τα παραπανω απαραιτητα πεδια. Αν κατι απο τα παραπανω παει στραβα, βγαζει αντιστοιχο μυνηματακι και λεει στο χρηστη να δοκιμασει ξανα ξανα. Αν τα απαιραιτητα πεδια ειναι ενταξει τοτε χρησιμοπιωντας τη mail function της php ( θεωρω ότι οποιοσδηποτε hosted στην globat, "βλεπει" mail server)
στελνεται e-mail.
-email subject μπορειτε να το αλλαξετε, στη γραμη $subject = 'SELAS Online Cave Report' (και εντος των single quotes)
-Toν παραληπτη ΠΡΕΠΕΙ να τον αλλαξετε. Στη γραμμη $recipient_email = 'nek@nek.org' στην address οπου θελετε να φτανουν τα mails.

Η αρχικη φορμα ειχε το peter.

=============================
wrapper.php
=============================

Κωστα, πρεπει να να πας στον wrapper , <joomla home>/components/com_wrapper/wrapper.php και αφου παρεις backup το παλιο πειραξε τον ως εξης:

-Βρες τη γραμμη:
$url = $params->def( 'url', '' );
-Ακριβως απο κατω ΠΡΟΣΘΕΣΕ οτι ειναι μεσα στις γραμμες:
-------------------------------------------
foreach ($_GET as $key => $value) {
if ($key<>"option" && $key<>"Itemid") {
$url.=(strpos($url,"?")) ? "&" : "?";
$url.="$key=$value";
}
}
---------------------------------------------
περισσοτερα για αυτο και επειδη φαινεται να παιδευτηκε αρκετος κοσμος: http://www.joomlaexpert.com/Tutorials/H ... he_Wrapper


===============================
Upload τα files
===============================
Kαντε upload τα files , σε dir κατα προτιμηση εξω απο το dir της joomla. (π.χ. dir cavereport

==============================
Δημιουργια του wrapper menu
=============================
Oταν φτιαξτει to wrapper menu, στο wrapper link, πρεπει να φαινονται και τα δυο αρχεια ως εξης:
π.χ. στο δικο μου , http://localhost/cavereport.htm.php?t=cavereport.php
π.χ. στο selas http://www.selas.org/cavereport/caverep ... report.php

Σας στελω τα δυο αρχεια με e-mail και τις αλλαγες.
Αυτα.Αν κατι δεν παιζει (τα ελληνικα ειναι παντα ...υποπτα) πειτε μου


Τα λεμε,
-Νεκ.