Θέλω να εκτελώ 1 εντολή 1 μονο φορά. Μπορω?

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

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

Απάντηση
Άβαταρ μέλους
stroumfm
Δημοσιεύσεις: 52
Εγγραφή: 21 Ιαν 2007 21:58
Τοποθεσία: Κρήτη

Θέλω να εκτελώ 1 εντολή 1 μονο φορά. Μπορω?

Δημοσίευση από stroumfm » 01 Μαρ 2007 16:22

ΓΕΙΑ ΣΑΣ!!! :)
Προσπαθώ να κάνω μία εντολή-ενέργεια να πραγματοποιείται μόνο την πρώτη φορά που φορτώνεται η σελίδα και τις υπόλοιπες να εκτελείτε μια άλλη. Δοκίμασα να φτιάξω κατι απλό οπως:
i=0;
if (i=0){
"do this"
i=i+1;
}
else
"do that"
Δεν μπορούσα όμως να βρώ κάτι να αντικαταστήσω το "i=0".
Για να σας δώσω περοσσότερες πληροφορίες σας λέω πως έχω μια λιστα που έχει κενή προεπιλογή όταν φορτώνεται η σελίδα και εμφανιζει μια φορμα με τα στοιχεία της τελευταίας καταχωρησης. Οταν όμως επιλέξει ο χρήστης μια τιμή από τη λιστα θελω να εμφανιζει τα νέα αποτελέσματα στη φόρμα.
Μπορείτε να με βοηθήσετε????

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Θέλω να εκτελώ 1 εντολή 1 μονο φορά. Μπορω?

Δημοσίευση από cherouvim » 01 Μαρ 2007 17:34

Το HTTP είναι stateless προτόκολο και κάθε request/response κύκλος αρχίζει από την αρχή. Το i λοιπόν σε κάθε client request είναι 0.

Κατάσταση (state) μπορείς να αποθηκεύσεις σε cookie, στο session, σε αρχείο ή στη βάση.

Αν θες να γίνεται κάτι μόνο την πρώτη φορά για κάθε χρήστη, τότε το i θα το αποθηκεύσεις στο cookie ή στο session του χρήστη.

Για να κάνεις κάτι μόνο την πρώτη φορά που τρέχει το script, τότε το i θα το αποθηκεύσεις σε αρχείο ή στη βάση.

Άβαταρ μέλους
stroumfm
Δημοσιεύσεις: 52
Εγγραφή: 21 Ιαν 2007 21:58
Τοποθεσία: Κρήτη

Θέλω να εκτελώ 1 εντολή 1 μονο φορά. Μπορω?

Δημοσίευση από stroumfm » 04 Μαρ 2007 11:31

Σε τι ειδους αρχειο? Αν το αποθηκεύσω στη βάση θα πρέπει να κανω εναν νεο πινακα που να εχει μονο το i ? Δεν κατάλαβα ακροβώς τι εννοείς...

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Θέλω να εκτελώ 1 εντολή 1 μονο φορά. Μπορω?

Δημοσίευση από panosru » 04 Μαρ 2007 12:31

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

<?php

if &#40;!$_COOKIE&#91;'runOnce'&#93;&#41;
&#123;
	setcookie&#40;'runOnce',true&#41;;
	echo 'I will run only once';		
&#125;


if &#40;isset&#40;$_GET&#91;'destroy'&#93;&#41;&#41;
&#123;
	setcookie&#40;'runOnce',false&#41;;
&#125;

?>
Kapos etsi exei h logikh, pernas parametro ?destroy an thes na fereis to coockie se false state. Protimisa coockies epidi apothikeyontai sto pc tou xrhsth, mias kai gia kati tetoio den xreiazete na epibaryneis ton server.

Άβαταρ μέλους
stroumfm
Δημοσιεύσεις: 52
Εγγραφή: 21 Ιαν 2007 21:58
Τοποθεσία: Κρήτη

Θέλω να εκτελώ 1 εντολή 1 μονο φορά. Μπορω?

Δημοσίευση από stroumfm » 06 Μαρ 2007 11:29

ΕΥΧΑΡΙΣΤΩ ΠΟΛΥ ΓΙΑ ΤΗ ΒΟΗΘΕΙΑ ΠΑΙΔΙΑ! ;)

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

Θέλω να εκτελώ 1 εντολή 1 μονο φορά. Μπορω?

Δημοσίευση από cpulse » 06 Μαρ 2007 17:07

session_start();

if (!isset($_SESSION['work_is_done'])) {
.. kwdikas ..
$_SESSION['work_is_done'] = true;
}

Απάντηση

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

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

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