rediraction με header location σε class

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

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

Απάντηση
Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

rediraction με header location σε class

Δημοσίευση από Apostolis_38 » 17 Σεπ 2010 23:31

Καλησπέρα σε όλους.

Μπορούμε να δηλώσουμε μια class σε header location;

Το θέμα έχει ως εξής.
Υπάρχει μια class που:
Εκτελεί αναζητήσεις σύμφωνα με κάποια κριτήρια που δίνονται με $_POST.
Κατόπιν καταχωρεί δεδομένα.

Μόλις γίνουν αυτά πρέπει να γίνει "rediraction" στην ίδια σελίδα στέλνοντας δύο από τα κριτήρια των $_POST.

Πως όμως θα δηλωθεί η class ώστε να τρέξουν πάλι οι διεργασίες;
Θα πρέπει να δηλωθεί κάτι σαν αυτό:

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

header ("Location:selida.php?metavliti1=".$metavliti1."&metavliti2=".$metavliti2." new class()");
Αυτό όμως δεν δουλεύει.
Γίνεται αυτό που σκέφτομαι;
Υπάρχει κάποιος άλλος τρόπος (χωρίς να "απενεργοποιήσω" την κλάση);

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

rediraction με header location σε class

Δημοσίευση από korgr » 17 Σεπ 2010 23:40

Κάτι δεν μας εξηγείς καλά Αποστόλη.
Την class την "φορτώνει" η selida.php right?
Όταν μέσα από την class (μετά την ολοκλήρωση των διεργασιών της) καλέσεις πάλι αυτή την σελίδα με τις παραμέτρους που λες, δεν θα ξαναφορτωθεί η class?
Γιατί την αναφέρεις στο link του redirect?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

rediraction με header location σε class

Δημοσίευση από Apostolis_38 » 17 Σεπ 2010 23:47

:(
Για να ξανατρέξει η class πρέπει να δηλωθεί. new myclass();
Σωστά;
Πως θα γίνει αυτό;

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

rediraction με header location σε class

Δημοσίευση από korgr » 18 Σεπ 2010 01:49

Μα αυτή η δήλωση δεν υπάρχει στο selida.php?
Ή κάτι μπερδεύεις στον αντικειμενοστρεφή προγραμματισμό ή κάτι άλλο θες και δεν το εξηγείς καλά.

Για παράδειγμα:
selida.php

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

<?php
recuire&#40;"mycalass.php"&#41;;

// κώδικας μπλα μπλα και κάποια στιγμή καλείς το object σου...

$myclass = new myclass&#40;&#41;;
// αν υποθέσουμε πως έχει κάποια method με όνομα proccessData&#40;&#41; η οποία μετά τις διεργασίες θα κάνει redirect με header location κλπ
$myclass->proccessData&#40;$arguments&#41;;
?>
Μετά το redirect δεν θα ξανατρέξει ο ανωτέρω κώδικας και θα ξαναορίσει την class?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

rediraction με header location σε class

Δημοσίευση από Apostolis_38 » 18 Σεπ 2010 09:42

Οχι,αυτή η δήλωση υπάρχει σε άλλη σελίδα.

Υπάρχει (π.χ.) ή selida1.php η οποία εκτελεί κάποιες δικές της εργασίες και αν χρειαστεί καλεί τη selida2.php οπότε δημιουργεί νέα κλάση.

Πιο συγκεκριμένα στην πρώτη σελίδα εμφανίζονται εγγραφές και καλώντας τη δεύτερη σελίδα γίνεται add, update ή delete καλώντας την αντιστοιχη κλάση. Και μετά σε επαναφέρει στη σελίδα 1.
Για ένα συγκεκριμένο πίνακα όμως, για να αποφευχθεί επιπλέον δουλειά, θα πρέπει να ξαναοδηγηθείς στο σημείο όπου γίνεται το add έχοντας ήδη δώσει δύο κριτήρια.

Ακόμα πιο συγκεκριμένα :P
Διαλέγεις Σεζόν(2010), Πρωτάθλημα(Super League), και το πρόγραμμα σου φέρνει τις αντίστοιχες ομάδες για να επιλέξεις Γηπεδούχο-Φιλοξενούμενο και να καταχωρήσεις την Αγωνιστική που παίζουν μεταξύ τους (1η).
Μετά την καταχώρηση πρέπει να ξαναγυρίσω στη σελίδα με την Σεζόν και το Πρωτάθλημα επιλεγμένα ώστε να φέρει πάλι τις αντίστοιχες ομάδες κ.λ.π. κ.λ.π.

Αυτά :P

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

rediraction με header location σε class

Δημοσίευση από korgr » 18 Σεπ 2010 10:43

Και γιατί δεν καλείς στο τέλος μετά το add/update την σελίδα selida1.php με μια extra παράμετρο (εκτός τις δύο μεταβλητές που ανέφερες, πχ &redirectClass=1) ώστε να λειτουργήσει σαν flag και να ξανακαλέσει την class (όπως την κάλεσε και την πρώτη φορά)?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

rediraction με header location σε class

Δημοσίευση από Apostolis_38 » 18 Σεπ 2010 10:52

:think:
Να τρέξει η όλη διαδικασία πάλι από την αρχή ε;
Σωστό κι αυτό.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

rediraction με header location σε class

Δημοσίευση από Banavas » 18 Σεπ 2010 11:43

Εγώ σε ανάλογες περιπτώσεις κρατάω τις αντίστοιχες μεταβλητές σε session μεταβλητές ώστε να μην χρειάζετε να τις ορίζω σε κάθε αλλαγή σελίδας.
Happy coding....
Μάρκος
http://lasernet.gr

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

rediraction με header location σε class

Δημοσίευση από Apostolis_38 » 18 Σεπ 2010 12:18

Το πρόβλημά μου δεν είναι πως θα στείλω τα δεδομένα αλλά πως θα "ενεργοποιήσω" ξανά την κλάση.

Εκτός κι αν εννοείς κάτι άλλο και δεν σε κατάλαβα.

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

rediraction με header location σε class

Δημοσίευση από korgr » 18 Σεπ 2010 12:33

Banavas έγραψε:Εγώ σε ανάλογες περιπτώσεις κρατάω τις αντίστοιχες μεταβλητές σε session μεταβλητές ώστε να μην χρειάζετε να τις ορίζω σε κάθε αλλαγή σελίδας.
Εξαρτάται!
Σε session variables αξίζει να κρατάς μεταβλητές που θες να "ζουν" συνεχώς. Για περιπτώσεις σαν αυτή που συζητάμε, είναι προτιμότερες οι request variables γιατί θέλουμε να "ζήσουν" μόνο για μια συγκεκριμένη κλήση. Αν δουλέψεις με session vars πρέπει να ασχοληθείς και με την κατάργησή τους κάθε φορά (για να μην έχεις δυσάρεστες εκπλήξεις σε επόμενες σελίδες), κάτι που δεν ισχύει για τις request variables.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

rediraction με header location σε class

Δημοσίευση από Banavas » 18 Σεπ 2010 15:35

Μετά την καταχώρηση πρέπει να ξαναγυρίσω στη σελίδα με την Σεζόν και το Πρωτάθλημα επιλεγμένα ώστε να φέρει πάλι τις αντίστοιχες ομάδες κ.λ.π. κ.λ.π.
Από αυτό υποθέτω οτι η διαδικασία επαναλαμβάνεται πολλές φορές. Κατά την άποψή μου είναι πιο πρακτικό ο χρήστης να ορίσει με ποια σεζον και ποιο πρωτάθλημα θέλει να δουλέψει και να μην ξανα-ασχοληθεί με αυτό μέχρι να θελήσει να αλλάξει σεζον ή πρωτάθλημα ακόμη και αν στο ενδιάμεσο αλλάξει σελίδα για κάποια άλλη ενέργεια.
Happy coding....
Μάρκος
http://lasernet.gr

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

rediraction με header location σε class

Δημοσίευση από korgr » 18 Σεπ 2010 17:44

Αν πράγματι αυτό εννοεί ο Αποστόλης (να γυρίζει ξανά και ξανά στο ίδιο σημείο) τότε ναι, χρειάζεται session vars.
Εγώ κατάλαβα την κλασσική ενέργεια που έχουμε σε ενα admin panel:
  • Add Record
    Call the same form again, passing the last_inserted_id()
    Continue editing by attaching any images, videos, files etc
    End process, redirect to home admin page

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

rediraction με header location σε class

Δημοσίευση από Apostolis_38 » 18 Σεπ 2010 18:52

Οχι, αυτό που λέει ο banavas αλλά και πάλι δεν κατάλαβα πως θα ξαναενεργοποιηθεί η class ακόμα κι αν έχω sessions.

Αν καταστρέψω την class ή φτάξω καινούργια υποσελίδα γίνεται.
Αλλά δεν θέλω να κτην καταστέψω γιατί η σελίδα μέσα έχει κι άλλες class, ούτε να φτιάχνω νέες σελίδες "αν μπορώ να το αποφύγω.

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

rediraction με header location σε class

Δημοσίευση από korgr » 18 Σεπ 2010 21:42

Περίμενε τώρα σε λίγο τελειώνει με τα καλαμοψαρέματα ο δάσκαλος fafos και θα έρθει να σου λύσει την τριλιζα :lol:

Δυστυχώς δεν κατάφερες να μας εξηγήσεις τι ακριβώς θες να κάνεις (σε επίπεδο κώδικα) παρά τις προσπάθειές σου.
Ακούγονται λίγο ασυνάρτητα τα "να καταστρέψω την class". Την class την καλείς, σου κάνει την δουλειά σου και πάπαλα. Εκεί μέσα μπορείς να καλέσεις άλλες classes για να πετύχεις το τελικό αποτέλεσμα. Το redirect σε ίδια σελίδα μέσα από class δεν την καταλαβαίνω και αφού ποτέ δεν χρειάστηκε κάτι τέτοιο σε μένα, πιθανολογώ τελείως false logic στο flow.
Οπότε ξανασκέψου τι θέλεις να κάνεις για να βρούμε μια άκρη. :)

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

rediraction με header location σε class

Δημοσίευση από fafos » 18 Σεπ 2010 23:35

o fafos den psareuei me kalami.. kanei ypshlou epipedou psaremata!! :lol:

ta exo xiliodiavasei kai den exo katalavei ti thelei na kanei o Tolhs... to sigouro einai oti to kalesma ths class den to metafereis gia na epanergopoihthei... mporeis na thn kaneis include se oles tis selides kai auth na "koimatai"... opou thn kaleseis tha ksanadoulepsei analoga me tis times pou thes..

eixa dei ena project me vathmologies pou eixe feiaksei enas filos apo kairo kai htan poly apla ta pragmata an kai autos to ekane me ajax..

1. Epelege protathlhma kai xronies (p.x. B ethnikh & 2010-2011)

2. Analoga me tis omades pou eixe to protathlhma tou evgaze kai dropdown me omades (omades protathlhmatos dia 2)

3. epelege sta drop down tis omades kai efeiaxne tous agones (me ena validation gia na mhn vazei thn idia omada se 2 agones) kai patouse to "ok".. h agonistikh kataxorountan me ajax kai tou emfanhze mia proepiskopish.. an ola htan ok apo kato tou parousiaze thn epomenh agonistikh me ta idia drop down klp


etsi paremene sto idio protathlima thn idia xronia kai htan paneukolh h enhmerosh ton agonistikon..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

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

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

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