Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

Πρόβλημα με rn σε textarea

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

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

Απάντηση
Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

Πρόβλημα με rn σε textarea

Δημοσίευση από ideal » 03 Αύγ 2012 19:49

Τα φωτα σας λιγο αν μπορειτε. Έχω μια φορμα απο την οποία στελνω ενα κειμενο απο <textarea> αλλα το προβλημα ειναι οτι μου βγαζει ένα rn οταν παταω το enter.
Πως μπορω να το διορθωσω; Δε μου βγαζει /r/n/ αλλά rn. υπάρχει καποιος να το εχει λυσει;
Δεν μπορούμε να λύσουμε τα προβλήματά μας χρησιμοποιώντας τον ίδιο τρόπο σκέψης που χρησιμοποιήσαμε όταν τα δημιουργήσαμε. -Α. Einstein

Rent a Car

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Πρόβλημα με rn σε textarea

Δημοσίευση από jpk » 08 Αύγ 2012 03:59

Τι εννοείς σου βγάζει rn ? Στο debug mode ή έστω κάνεις var_dump την παράμετρο που παίρνεις από το post και βλέπεις ‘rn’ ?

Άβαταρ μέλους
agrippas
Script Master
Δημοσιεύσεις: 494
Εγγραφή: 18 Ιούλ 2002 14:52
Τοποθεσία: Υπερπέραν
Επικοινωνία:

Πρόβλημα με rn σε textarea

Δημοσίευση από agrippas » 08 Αύγ 2012 19:55

1. Οι control χαρακτήρες στην PHP γίνονται escaped με το σύμβολο "\" και όχι το ανάποδο "/".

2. To \r είναι το "carriage return", η κίνηση που κάνει ο δακτυλογράφος όταν σπρώχνει το σύστημα της γραφομηχανής οριζόντια, πίσω στην αρχή της γραμμής, αλλά ΧΩΡΙΣ να σπρώξει το λεβιέ που κατεβάζει γραμμή. Το \n είναι το "line feed", είναι η κίνηση αυτή του λεβιέ που κατεβάζει στην από κάτω γραμμή στο χαρτί. Στα Microsoft συστήματα, το πλήκτρο enter όταν γράφουμε κάνει και τα δύο: \r\n. Στο Linux σύστημα, η γραφομηχανή είναι πιο αυτόματη και αρκεί μόνο το \r. Αν αυτός που έγραψε το κείμενο το αποθήκευσε σε Microsoft, όπου πάτησε Enter θα έχει γράψει \r\n. Αν ανοίξει το ίδιο αρχείο σε Linux, θα δει κάτι περίεργα ^Μ στο τέλος της γραμμής (που είναι ο πλεονασμός του \n).

Στην περίπτωσή σου τώρα, κάποιο replace θα έχει γίνει είτε εκούσια είτε ακούσια και σβήνει το χαρακτήρα "\" οπότε οι control χαρακτήρες \n\r μετατρέπονται σε nr. Προσεκτικά τσέκαρε τα εισαγωγικά, και παρακολούθησε όλη την πορεία του text area από την ώρα που γίνεται submit μέχρι το σημείο που γίνεται display στην οθόνη για όποιες replace εντολές ή κακή χρήση real_escape_string / urlencode / urldecode.

Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

Πρόβλημα με rn σε textarea

Δημοσίευση από ideal » 03 Φεβ 2013 08:47

agrippas έγραψε:1. Οι control χαρακτήρες στην PHP γίνονται escaped με το σύμβολο "" και όχι το ανάποδο "/".

2. To \r είναι το "carriage return", η κίνηση που κάνει ο δακτυλογράφος όταν σπρώχνει το σύστημα της γραφομηχανής οριζόντια, πίσω στην αρχή της γραμμής, αλλά ΧΩΡΙΣ να σπρώξει το λεβιέ που κατεβάζει γραμμή. Το \n είναι το "line feed", είναι η κίνηση αυτή του λεβιέ που κατεβάζει στην από κάτω γραμμή στο χαρτί. Στα Microsoft συστήματα, το πλήκτρο enter όταν γράφουμε κάνει και τα δύο: \r\n. Στο Linux σύστημα, η γραφομηχανή είναι πιο αυτόματη και αρκεί μόνο το \r. Αν αυτός που έγραψε το κείμενο το αποθήκευσε σε Microsoft, όπου πάτησε Enter θα έχει γράψει \r\n. Αν ανοίξει το ίδιο αρχείο σε Linux, θα δει κάτι περίεργα ^Μ στο τέλος της γραμμής (που είναι ο πλεονασμός του \n).

Στην περίπτωσή σου τώρα, κάποιο replace θα έχει γίνει είτε εκούσια είτε ακούσια και σβήνει το χαρακτήρα "" οπότε οι control χαρακτήρες \n\r μετατρέπονται σε nr. Προσεκτικά τσέκαρε τα εισαγωγικά, και παρακολούθησε όλη την πορεία του text area από την ώρα που γίνεται submit μέχρι το σημείο που γίνεται display στην οθόνη για όποιες replace εντολές ή κακή χρήση real_escape_string / urlencode / urldecode.
Ευχαριστω για τις απαντησεις. Ηταν αυτο που ειπες τελικα οτι αντικαθιστουσα το "/" με κενο "".
Το προβλημα ειναι αλλο τωρα. Αποθηκευω το textarea και ολα καλα.
Οταν παταω να το κανω edit και να το εμφανισει παλι στο textarea μου "τριπλασιαζει" (x3) το κενο καθε φορα.
Δηλαδη αν αφησω ενα κενο:

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

Hello
Hi
γινεται τρια

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

Hello


Hi
τη δευτερη φορα εννια

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

Hello








Hi
27, 81 κλπ

Πού μπορει να οφειλεται;
Δεν μπορούμε να λύσουμε τα προβλήματά μας χρησιμοποιώντας τον ίδιο τρόπο σκέψης που χρησιμοποιήσαμε όταν τα δημιουργήσαμε. -Α. Einstein

Rent a Car

Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

Πρόβλημα με rn σε textarea

Δημοσίευση από ideal » 04 Φεβ 2013 16:38

Τελικα ειδα οτι
Α) οταν αποθηκευα στη βαση προσθετε ενα επιπλεον \r\n (δεν ξερω γιατι)
Β) και οταν εκανα επεξεργασια επαιρνε το κειμενο απο τη βαση και οταν το εβαζει στο textarea προσθετε επισης ενα επιπλεον \r\n (που επισης δεν ξερω γιατι).
Ευχαριστω για τις απαντησεις ολων!
Δεν μπορούμε να λύσουμε τα προβλήματά μας χρησιμοποιώντας τον ίδιο τρόπο σκέψης που χρησιμοποιήσαμε όταν τα δημιουργήσαμε. -Α. Einstein

Rent a Car

Απάντηση

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

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

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