merianos Δημοσ. 20 Ιανουαρίου 2009 Δημοσ. 20 Ιανουαρίου 2009 Δεν υπάρχει τρόπος να καλέσεις συνάρτηση της PHP από κουμπί της HTML άμεσα. Ο μόνος τρόπος με τον οποίο μπορείς να το κάνεις αυτό είναι με AJAX. Από όσο καταλαβαίνω μάλλον έχεις μπερδέψει τα μπούτια σου λίγο. Η PHP εκτελείτε στον Server και το αποτέλεσμα της επεξεργασίας το βλέπεις στον Browser σου. Η HTML και η JavaScript εκτελούνται στον Browser σου και είναι τα μόνα που μπορούν να επικοινωνήσουν μεταξύ τους και να σου δώσουν άμεσα αποτελέσματα.
fraggiskos Δημοσ. 23 Ιανουαρίου 2009 Μέλος Δημοσ. 23 Ιανουαρίου 2009 Διλαδι με ποιον τροπο μπορώ να γεμιζώ μια μεταβλιτή? Φτιάχνω ένα μαγαζί και θέλω ο "πελάτης" να κάνει ένα κλικ και να ρίχνει το προιόν που επέλεξε στο καλάθι του. Γνώρίζει κανείς αν υπάρχει κάποιος τρόπος? Μπόρώ να βάλω JAVA μέσα στην ΡΗΡ?
merianos Δημοσ. 24 Ιανουαρίου 2009 Δημοσ. 24 Ιανουαρίου 2009 Υπάρχει τρόπος για να χρησιμοποιήσεις Java μέσα από την PHP αλλά δεν την έχω δοκιμάσει ποτέ. Αν θέλεις ρίξε μια ματιά εδώ : http://gr.php.net/manual/en/book.java.php Γενικά από όσο μπορώ να καταλάβω, δεν πρέπει να έχεις κατανοήσει την αρχιτεκτονική Server/Client για την κατασκευή ιστοσελίδων με δυναμικό περιεχόμενο. Για να διατηρήσεις περιεχόμενο σε ένα καλάθι αγοράς του πελάτη σου θα πρέπει να δουλέψεις είτε με Cookies ( http://gr.php.net/manual/en/features.cookies.php ), είτε με Sessions ( http://gr.php.net/manual/en/features.sessions.php ). Ο τρόπος με τον οποίο θα δουλέψουν τα παραπάνω ( όποιο και να επιλέξεις ) είναι ο εξής. Ο πελάτης βλέπει τα προϊόντα που του παρέχεις με κάποιο τρόπο ( αναζήτηση, επιλογή από κατηγορία, κ.α. ), και αποφασίζει να το αγοράσει. Σε κάθε προϊόν που έχεις προς πώληση έχεις ένα κουμπί που ή σύνδεσμο που διατηρεί για παράδειγμα τον κωδικό του προϊόντος και κάνοντας Click εκεί ο πελάτης, περνάει σε κάποιο PHP Script τον κωδικό του προϊόντος, συνήθως με $_GET ( http://gr.php.net/manual/en/function.http-get.php ). Το PHP Script που θα παραλάβει τη μεταβλητή από το σύνδεσμο μπορεί να είναι και το ίδιο το φίλο στο οποίο προβάλεις τα προϊόντα σου ή μπορεί να φορτώνεις κάποιο άλλο Script. Στη συνέχεια και αφού το PHP Script εξετάσει τα δεδομένα τα οποία παραλαμβάνει από την $_GET τότε καταχωρεί τον κωδικό του πελάτη στο Cookie ή στο Session που έχεις δημιουργήσει για αυτό το σκοπό. Η διαφορά Cookie με Session είναι ότι με τα Cookie μπορείς να διατηρήσεις τα δεδομένα στον φυλλομετρητή με τον οποίο ο πελάτης σου είδε τη σελίδα σου, θεωρητικά για όσο χρόνο θέλεις, ενώ με τα Session οι μεταβλητές που αποθήκευσες εξαφανίζονται αμέσως μετά το κλείσιμο του φυλλομετρητή. Τα Session μπορείς να τα δεις σαν προσωρινά Cookies, αφού για να δουλεύει το Session θα πρέπει ο φυλλομετρητής του χρήστη να έχεις ενεργοποιημένη τη χρήση Cookie.
nske Δημοσ. 24 Ιανουαρίου 2009 Δημοσ. 24 Ιανουαρίου 2009 δεν πρέπει να έχεις κατανοήσει την αρχιτεκτονική Server/Client για την κατασκευή ιστοσελίδων με δυναμικό περιεχόμενο ++ @Fraggiskos O http server σερβίρει δεδομένα μέσω του http πρωτοκόλλου. Στην περίπτωση της PHP, δε σερβίρει τον PHP κώδικα αλλά τον στέλνει τοπικά σε έναν PHP interpreter ο οποίος τον εκτελεί και του παραδίδει την έξοδό του. Αυτή η έξοδος είναι που στέλνεται στον http client (ο "web browser"). Σε ό,τι μας αφορά για την κατανόηση του μοντέλου, ο browser μπορεί να κάνει "κάτι" με αυτή την έξοδο μόνο αν είναι markup language (HTML/XHTML). Ο μόνος κώδικας που κατ' εξαίρεση μπορεί να εκτελέσει ο browser είναι Javascript (η οποία υπάρχει μέσα στην HTML/XHTML). Η javascript δεν έχει καμία σχέση με τη Java. Δεν πιστεύω ότι θα ήθελες να μπλέξεις με το κτήνος Java στα καλά καθούμενα, άρα μάλλον εννοούσες Javascript. Αν στη σελίδα συμπεριλαμβάνονται αντικείμενα Java, Flash, ή συναφή σιχάματα, ο browser απλά τα στέλνει στο υπεύθυνο ανεξάρτητο πρόγραμμα του οποίου την σιχαμένη έξοδο ύστερα ενσωματώνει στη σελίδα με επίσης σιχαμένο τρόπο. Γενικά, πολύ σίχαμα το όλο πράγμα, απόφυγε το όπου μπορείς Πώς μπορεί λοιπόν να στείλει δεδομένα ο browser (ή μια client-server γλώσσα όπως η Javascript) στο PHP script; Με τη χρήση HTTP POST/GET requests και με τη χρήση Cookies, όπως σου εξήγησε ο Merianos. Αν δε στείλεις κάτι συγκεκριμένα στην php, δεν έχει τρόπο να το γνωρίζει. Είναι σημαντικό να το καταλάβεις για να μην περιμένεις ότι υπάρχει κάποια διαφορετική, αυτονόητη, συνεργία ανάμεσα στην PHP και τη Javascript. Ο κώδικάς τους είναι εντελώς ανεξάρτητος. Η μία εκτελείται στον server, η άλλη στον browser, η μία δεν έχει ιδέα για το αν υπάρχει και τι κάνει η άλλη -το μόνο που γνωρίζει είναι τι δεδομένα παραλαμβάνει και τι στέλνει με τους standard τρόπους με τους οποίους μπορεί να παραλάβει και να στείλει. Φυσικά το ίδιο ισχύει και για την HTML: για την PHP η HTML είτε υπάρχει είτε δεν υπάρχει δεν σημαίνει τίποτα, το μόνο που την ενδιαφέρει είναι ότι στέλνει κάτι αδιάφορο, παίρνει κάτι ενδιαφέρον και ξαναστέλνει κάτι αδιάφορο. Απλά τυχαίνει αυτό το "κάτι αδιάφορο" να είναι ενδιαφέρον για τον browser. Συνήθως η Javascript δεν είναι απαραίτητη, το ουσιαστικό μέρος της εφαρμογής γίνεται από την PHP server-side. Όμως δίνει σημαντικές δυνατότητες αλληλεπίδρασης με το χρήστη και, ειδικά με τη χρήση Ajax, μπορεί να δώσει την ψευδαίσθηση ότι η όλη εφαρμογή εκτελείται σε real time (χωρίς να είναι αισθητή στον χρήστη η διαδικασία της ανταλλαγής δεδομένων με το server και χωρίς να χρειάζεται ο browser να επεξεργαστεί συνολικά ό,τι πρόκειται να εμφανίσει). @Merianos ωραία τα εξηγείς, μπράβο για την όρεξη και την υπομονή σου
merianos Δημοσ. 24 Ιανουαρίου 2009 Δημοσ. 24 Ιανουαρίου 2009 ++ @Fraggiskos O http server σερβίρει δεδομένα μέσω του http πρωτοκόλλου. Στην περίπτωση της PHP, δε σερβίρει τον PHP κώδικα αλλά τον στέλνει τοπικά σε έναν PHP interpreter ο οποίος τον εκτελεί και του παραδίδει την έξοδό του. Αυτή η έξοδος είναι που στέλνεται στον http client (ο "web browser"). Σε ό,τι μας αφορά για την κατανόηση του μοντέλου, ο browser μπορεί να κάνει "κάτι" με αυτή την έξοδο μόνο αν είναι markup language (HTML/XHTML). Ο μόνος κώδικας που κατ' εξαίρεση μπορεί να εκτελέσει ο browser είναι Javascript (η οποία υπάρχει μέσα στην HTML/XHTML). Η javascript δεν έχει καμία σχέση με τη Java. Δεν πιστεύω ότι θα ήθελες να μπλέξεις με το κτήνος Java στα καλά καθούμενα, άρα μάλλον εννοούσες Javascript. Αν στη σελίδα συμπεριλαμβάνονται αντικείμενα Java, Flash, ή συναφή σιχάματα, ο browser απλά τα στέλνει στο υπεύθυνο ανεξάρτητο πρόγραμμα του οποίου την σιχαμένη έξοδο ύστερα ενσωματώνει στη σελίδα με επίσης σιχαμένο τρόπο. Γενικά, πολύ σίχαμα το όλο πράγμα, απόφυγε το όπου μπορείς Πώς μπορεί λοιπόν να στείλει δεδομένα ο browser (ή μια client-server γλώσσα όπως η Javascript) στο PHP script; Με τη χρήση HTTP POST/GET requests και με τη χρήση Cookies, όπως σου εξήγησε ο Merianos. Αν δε στείλεις κάτι συγκεκριμένα στην php, δεν έχει τρόπο να το γνωρίζει. Είναι σημαντικό να το καταλάβεις για να μην περιμένεις ότι υπάρχει κάποια διαφορετική, αυτονόητη, συνεργία ανάμεσα στην PHP και τη Javascript. Ο κώδικάς τους είναι εντελώς ανεξάρτητος. Η μία εκτελείται στον server, η άλλη στον browser, η μία δεν έχει ιδέα για το αν υπάρχει και τι κάνει η άλλη -το μόνο που γνωρίζει είναι τι δεδομένα παραλαμβάνει και τι στέλνει με τους standard τρόπους με τους οποίους μπορεί να παραλάβει και να στείλει. Φυσικά το ίδιο ισχύει και για την HTML: για την PHP η HTML είτε υπάρχει είτε δεν υπάρχει δεν σημαίνει τίποτα, το μόνο που την ενδιαφέρει είναι ότι στέλνει κάτι αδιάφορο, παίρνει κάτι ενδιαφέρον και ξαναστέλνει κάτι αδιάφορο. Απλά τυχαίνει αυτό το "κάτι αδιάφορο" να είναι ενδιαφέρον για τον browser. Συνήθως η Javascript δεν είναι απαραίτητη, το ουσιαστικό μέρος της εφαρμογής γίνεται από την PHP server-side. Όμως δίνει σημαντικές δυνατότητες αλληλεπίδρασης με το χρήστη και, ειδικά με τη χρήση Ajax, μπορεί να δώσει την ψευδαίσθηση ότι η όλη εφαρμογή εκτελείται σε real time (χωρίς να είναι αισθητή στον χρήστη η διαδικασία της ανταλλαγής δεδομένων με το server και χωρίς να χρειάζεται ο browser να επεξεργαστεί συνολικά ό,τι πρόκειται να εμφανίσει). @Merianos ωραία τα εξηγείς, μπράβο για την όρεξη και την υπομονή σου Thanks a lot ! ! !
fraggiskos Δημοσ. 24 Ιανουαρίου 2009 Μέλος Δημοσ. 24 Ιανουαρίου 2009 Σας ευχαριστώ και του δύο για τα κατατοπιστικότατα ποστ σας. Βασικά το ξέρω ότι η ΡΗΡ εκτελειται στον σέρβερ κι εκεί έχω ψιλομπρδεφτεί. Όπως και να έχει σας ευχαριστώ πάρα πολύ. Θα το ψάξω
merianos Δημοσ. 24 Ιανουαρίου 2009 Δημοσ. 24 Ιανουαρίου 2009 Σας ευχαριστώ και του δύο για τα κατατοπιστικότατα ποστ σας. Βασικά το ξέρω ότι η ΡΗΡ εκτελειται στον σέρβερ κι εκεί έχω ψιλομπρδεφτεί. Όπως και να έχει σας ευχαριστώ πάρα πολύ. Θα το ψάξω You're welcome
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.