Array και $_SESSION

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

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

Απάντηση
dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Array και $_SESSION

Δημοσίευση από dpa » 16 Ιούλ 2011 19:22

Παιδιά πως δημιουργήσω array σε $_SESSION και να αποθηκεύω διαφορετικά στοιχεία ???

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Array και $_SESSION

Δημοσίευση από burnmind » 16 Ιούλ 2011 19:34

Για να περάσεις το array σε session variable:

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

$_SESSION['array'] = serialize($array);
και μετά για να το πάρεις πίσω:

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

$array = unserialize($_SESSION['array']);

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Array και $_SESSION

Δημοσίευση από dpa » 16 Ιούλ 2011 19:37

Ευχαριστώ πολύ για την απάντηση.

Μπορείς σε παρακαλώ πολύ να μου δώσεις ένα πιο αναλυτικό παράδειγμα ??

Γιατί το κάνεις serialize ?? τι κάνει αυτό ?


dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Array και $_SESSION

Δημοσίευση από dpa » 16 Ιούλ 2011 19:47

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

Σε αυτό που έστειλες δεν τα κάνει serialize ??? γιατί ?/

τι κάνει αυτό ?

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Array και $_SESSION

Δημοσίευση από korgr » 16 Ιούλ 2011 19:47

burnmind έγραψε:Για να περάσεις το array σε session variable:

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

$_SESSION['array'] = serialize($array);
και μετά για να το πάρεις πίσω:

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

$array = unserialize($_SESSION['array']);
Τι κακό έχει να κάνει απ' ευθείας ανάθεση ή δημιουργία?

Για παράδειγμα

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

session_start();
$a=  array("a", "b", "c"); // δημιουργία απλού πίνακα
$_SESSION['a'] = $a; // ανάθεση σε session var
echo $_SESSION['a'][1]; // εμφάνιση του δεύτερου στοιχείου
$_SESSION['a'][] = "d"; // προσθήκη τέταρτου στοιχείου
var_dump($_SESSION['a']); // επαλήθευση της τελικής μορφής του session array
Ρωτάω μήπως κάτι δεν ξέρω και τα χρησιμοποιώ έτσι...

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Array και $_SESSION

Δημοσίευση από dpa » 16 Ιούλ 2011 19:51

Γεια σου φίλε μου Korgr .

Σας ευχαριστώ όλους

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Array και $_SESSION

Δημοσίευση από burnmind » 16 Ιούλ 2011 19:59

@korgr: Κανένα πρόβλημα. Ουσιαστικά επηρεάστηκα από τον κώδικα που είχα ανοιχτό μπροστά μου εκείνη τη στιγμή (αποθήκευα το array στη βάση από το session) κι έτσι το έγραψα με serialize.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Array και $_SESSION

Δημοσίευση από korgr » 16 Ιούλ 2011 20:02

burnmind έγραψε:@korgr: Κανένα πρόβλημα. Ουσιαστικά επηρεάστηκα από τον κώδικα που είχα ανοιχτό μπροστά μου εκείνη τη στιγμή (αποθήκευα το array στη βάση από το session) κι έτσι το έγραψα με serialize.
Ουφ, end of alert :D
Νόμιζα πως υπάρχει security issue με τον απλό τρόπο...

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Array και $_SESSION

Δημοσίευση από dpa » 16 Ιούλ 2011 20:05

Ευχαριστώ παιδιά :D

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Array και $_SESSION

Δημοσίευση από pimpogio » 16 Ιούλ 2011 22:15

το serialization ειναι κυριως για αλλο πραγμα..

πχ απο την java αλλα και στις αλλες γλωσσες το ιδιο μαλλον ειναι..
χρησιμοποιειτε για να αποθηκευεις στο δισκο η σε αλλα μεσα αντικειμενα (instances απο classes) ως εχουν.
Δηαδη τα fields της class σε καποια ειδικη binary μορφη αναγνωσιμη πιθανων μονο το απο το συγκεκριμενο vm.
Πχ αυτο μπορεις να το χρησιμοποιησεις και για deep copy του object στη μνημη αμα θες ενα αντιγραφο
η να το σωσεις στο δισκο και να το ανακτησεις.
Αν αλλαξεις την κλαση η αλλαξεις virtual machine (πχ νεα εκδοση php) κατα πασα πιθανοτητα δεν θα παιζει
και γι αυτο υπαρχει και το versioning.
Τα αντικειμενα πρεπει να ειναι τυπου Seriazable (implement Serializable interface) κ το array ας πουμε αλλα και τα στοιχεια του ολα αλλιως δεν θα παιζει.

Το serialization ειναι καπως ανορθόδοξη λυση εδω
ειναι quick dirty "πατεντα" ..

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

Array και $_SESSION

Δημοσίευση από cpulse » 17 Ιούλ 2011 00:24

Δηλαδή όπως λέμε 3εδρο ημικανονικό Β' τύπου.

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

Array και $_SESSION

Δημοσίευση από cpulse » 17 Ιούλ 2011 00:37

Πέρα από την πλάκα, πιμπόγιε θα σου πω κάτι που στο χουν ξαναπεί. Σταμάτα να παραπληροφορείς τον κόσμο. Αντί να βοηθάς, μπερδεύεις τον κόσμο και τον κάνεις όσο μπερδεμένος είσαι κι εσύ.

Μίλα μόνο αν ξέρεις κάτι καλά.

Όλα κάνουν serialize. Απλά αν κάτι κάνει implement Serializable τότε κάνει override τους μηχανισμούς για το encode/decode.

Δεν υπάρχει τίποτα στραβό στο serialize(). Το μόνο που πρέπει να προσέξει κανείς είναι άμα κάνει serialize ένα object και μετά θέλει να το κάνει unserialize, πρώτα να καλέσει τον κώδικα του object και μετά να κάνει unserialize αλλιώς το σύστημα δεν αναγνωρίζει το object. Που, ακόμα κι εκεί δεν δίνει critical error.

Πολύ παλιά, νομίζω στην PHP 4, υπήρχαν προβλήματα. Τώρα πια όχι.

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Array και $_SESSION

Δημοσίευση από pimpogio » 17 Ιούλ 2011 09:27

διαβασες αυτο που εγραψα ?

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

Array και $_SESSION

Δημοσίευση από cpulse » 17 Ιούλ 2011 12:10

Δεν θέλεις να σου απαντήσω γραμμή γραμμή σε αυτά που έγραψες.

Απάντηση

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

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

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