Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
el:developers:library [2022/10/26 13:49] – created admin | el:developers:library [2022/10/26 14:08] (current) – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
===== Χρήσιμες συναρτήσεις βιβλιοθήκης ===== | ===== Χρήσιμες συναρτήσεις βιβλιοθήκης ===== | ||
- | Το αρχείο | + | Το αρχείο |
=== Είσοδος τιμών από το χρήστη (GET, POST) === | === Είσοδος τιμών από το χρήστη (GET, POST) === | ||
- | < | + | < |
Για την είσοδο πολλαπλών τιμών που έρχονται με POST, έχουμε την παρακάτω κλήση: | Για την είσοδο πολλαπλών τιμών που έρχονται με POST, έχουμε την παρακάτω κλήση: | ||
Line 12: | Line 12: | ||
Για παράδειγμα: | Για παράδειγμα: | ||
- | < | + | < |
array(' | array(' | ||
' | ' | ||
Line 20: | Line 20: | ||
Η $form_ok θα είναι αληθής αν οι παράμετροι name, student_id και group_id έχουν λάβει μη μηδενικές/ | Η $form_ok θα είναι αληθής αν οι παράμετροι name, student_id και group_id έχουν λάβει μη μηδενικές/ | ||
+ | |||
+ | ---- | ||
=== Rich text (HTML) – αποφυγή XSS === | === Rich text (HTML) – αποφυγή XSS === | ||
Line 25: | Line 27: | ||
Κατά την είσοδο κειμένου rich text που περιέχει formatting (πχ. από σελίδες που χρησιμοποιούν το TinyMCE), το κείμενο πρέπει να περνάει από purify() για να καθαριστεί από σφάλματα και κώδικα JavaScript που επιτρέπει επιθέσεις XSS (Cross Site Scripting). | Κατά την είσοδο κειμένου rich text που περιέχει formatting (πχ. από σελίδες που χρησιμοποιούν το TinyMCE), το κείμενο πρέπει να περνάει από purify() για να καθαριστεί από σφάλματα και κώδικα JavaScript που επιτρέπει επιθέσεις XSS (Cross Site Scripting). | ||
- | Παράδειγμα: | + | Παράδειγμα: |
- | < | + | < |
$descr = purify($_POST[' | $descr = purify($_POST[' | ||
- | db_query(" | + | </ |
- | SET title = " . quote($title) . ", | + | |
- | | + | |
=== Εμφάνιση τιμών – απλό κείμενο === | === Εμφάνιση τιμών – απλό κείμενο === | ||
- | Το απλό κείμενο (plain text) κατά την εμφάνιση στο χρήστη πρέπει να γίνεται escape μέσω της κλήσης q() (ουσιαστικά πρόκειται για alias της htmlspecialchars() με πιο σύντομο όνομα). | + | Το απλό κείμενο (plain text), κατά την εμφάνιση στο χρήστη, πρέπει να γίνεται escape μέσω της κλήσης q() (ουσιαστικά πρόκειται για alias της htmlspecialchars() με πιο σύντομο όνομα). |
- | < | + | < |
- | === Εμφάνιση κειμένου με μορφοποίηση (Rich Text – HTML) === | + | ---- |
- | Όπως αναφέρθηκε πιο πανω, το rich text κατά την εισαγωγή στη βάση πρέπει να έχει περάσει από την purify(). Στην περίπτωση αυτή, όταν το παίρνουμε από τη βάση και το εμφανίζουμε, αρκεί να το περάσουμε από την @standard_text_escape()@ η οποία αυτή τη στιγμή χειρίζεται τα εξής: | + | === Εμφάνιση |
- | * Μαθηματικοί τύποι | + | Όπως αναφέρθηκε πιο πανω, το rich text κατά την εισαγωγή στη βάση πρέπει να έχει περάσει από την purify(). Στην περίπτωση αυτή, όταν το παίρνουμε από τη βάση και το εμφανίζουμε, |
+ | |||
+ | * Μαθηματικοί τύποι | ||
* Λέξεις γλωσσαρίου (που επεκτείνονται όπου εμφανίζονται σε συνδέσμους με τον ορισμό τους) | * Λέξεις γλωσσαρίου (που επεκτείνονται όπου εμφανίζονται σε συνδέσμους με τον ορισμό τους) | ||
- | < | + | < |
Στην περίπτωση που εμφανίζουμε μια τιμή που δεν έχει περάσει από purify() στην είσοδο, | Στην περίπτωση που εμφανίζουμε μια τιμή που δεν έχει περάσει από purify() στην είσοδο, | ||
- | < | + | < |
+ | |||
+ | ---- | ||
=== Εμφάνιση τιμών για χρήση από JavaScript === | === Εμφάνιση τιμών για χρήση από JavaScript === | ||
- | String που χρησιμοποιούνται σε κώδικα JavaScript πρέπει να γίνονται escape με τη συνάρτηση | + | String που χρησιμοποιούνται σε κώδικα JavaScript πρέπει να γίνονται escape με τη συνάρτηση js_escape(). Για παράδειγμα: |
- | < | + | < |
<script type=" | <script type=" | ||
var langConfirmDelete = '" | var langConfirmDelete = '" | ||
</ | </ | ||
- | ";</ | + | "; |
+ | </ | ||
+ | |||
+ | ---- | ||
=== Πεδία για φόρμες === | === Πεδία για φόρμες === | ||
- | * < | + | < |
- | * < | + | < |
- | | + | |
- | * < | + | < |
- | * < | + | < |
+ | < | ||
+ | |||
+ | Η παράμετρος $name περιέχει το όνομα του πεδίου στη φόρμα. Η παράμετρος $extra περιέχει πρόσθετες ιδιότητες (πχ. κλάση, id, JavaScript) που θα προστεθούν στο HTML element του πεδίου. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === Eμφάνιση εικονιδίων από font awesome === | ||
+ | |||
+ | < | ||
+ | |||
+ | Παράδειγματα: | ||
+ | |||
+ | Χρησιμοποιούμε την κλήση | ||
- | Η παράμετρος | + | < |
- | === Eμφάνιση εικονιδίων από template/< | + | Παραδείγματα: |
- | < | + | < |
+ | < | ||
+ | < | ||
- | Παράδειγμα: | + | ---- |
- | < | + | |
- | ' | + | |
- | $langUnregCourse, | + | |
- | " | + | |
- | " | + | |
=== Εμφάνιση χρήστη με link στο προφίλ === | === Εμφάνιση χρήστη με link στο προφίλ === | ||
- | Γίνεται με την κλήση display_user($user_id). | + | Χρησιμοποιούμε την κλήση |
- | Παράδειγμα: | + | ---- |
- | <code class=" | + | |
- | $user_info = mysql_fetch_assoc($query); | + | |
- | display_user($user_info);</ | + | |
=== Στοιχεία χρήστη === | === Στοιχεία χρήστη === | ||
- | * uid_to_username($uid) | + | < |
- | * uid_to_name($uid) | + | < |
- | * uid_to_surname($uid) | + | < |
- | * uid_to_email($uid) | + | < |
- | * uid_to_am($uid) | + | < |