χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

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

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

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από skeftomilos » 08 Οκτ 2007 04:45

Ό,τι απορία έχεις ρώτα, και όποιος γνωρίζει θα σου απαντήσει. :-)

Αν ζητάς κάποιος να σου γράψει πλήρη και λειτουργικό server και client side κώδικα σε PHP και JavaScript, συν σχήμα βάσης MySQL, αυτός ο κάποιος δε θα είναι πρόθυμος να το κάνει για την ψυχή στης μάνας του. Άσε που τα περισσότερα μέλη του φόρουμ έχουν μανάδες που βρίσκονται εν ζωή! :-P
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

erateini
Δημοσιεύσεις: 36
Εγγραφή: 11 Ιούλ 2007 20:10

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από erateini » 08 Οκτ 2007 10:30

:-) Καταλαβαίνω απόλυτα, απλώς το είπα γιατί νιώθω ότι σας έχω πρήξει! ειδικά εσένα... :-) Βασικά δε θέλω από php, αν μπορείς το javascript που μου είχες γράψει + τις εντολές ajax...Τον έχω γράψει κι εγώ αλλά είναι χοντρά μπερδεμένος!..

Και μία ερώτηση : Το id για το οποίο μιλάμε πρέπει προηγουμένως να το έχω διαβάσει από την database, έτσι δεν είναι? Ώστε μετά να το βάλω στη javascript και μετά πάλι στην php, ε?

Ο κώδικάς μου είναι αυτός :

<script type="text/javascript">
function sendRequest() {
setTimeout(sendRequest, 1000)
xmlhttp=null
// Code for Mozilla 1.0+, Firefox 1.0+, Safari 1.2+, Opera 9+, and Netscape 7+
var xmlhttp=new XMLHttpRequest()
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest()
}
// Code for Internet Explorer 5.0+
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change
xmlhttp.open("GET","http://www.learn-it.gr/e-platform/expiration.php",false)
xmlhttp.send(null)
}
else
{
alert("Your browser does not support XMLHTTP.")
}
function state_Change()
{
// if xmlhttp shows "loaded"
if (xmlhttp.readyState==4)
{
// if "OK"
if (xmlhttp.status==200)
{
var REQUEST_ID = <?php echo $id; ?>
var remoteUrl = 'http://www.learn-it.gr/e-platform/expiration.php?id=' + REQUEST_ID
}
else
{
alert("Problem retrieving XML data")
}
}
}
}
setTimeout(sendRequest, 1000)
</script>


Εννοείται δε βγάζεις άκρη!..

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από skeftomilos » 08 Οκτ 2007 19:51

Νομίζω ότι όλο κι όλο αυτό είναι:

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

function sendRequest&#40;&#41; &#123;
  setTimeout&#40;sendRequest, 10000&#41;
  var http = window.XMLHttpRequest ? new XMLHttpRequest&#40;&#41; &#58; window.ActiveXObject ? new ActiveXObject&#40;'Microsoft.XMLHTTP'&#41; &#58; null
  if &#40;http&#41; &#123;
    http.onreadystatechange = function&#40;&#41;&#123;&#125;
    http.open&#40;'GET', "http&#58;//www.learn-it.gr/e-platform/expiration.php", true&#41;
    http.send&#40;null&#41; 
  &#125;
&#125;

setTimeout&#40;sendRequest, 10000&#41;
...αλλά η μαύρη αλήθεια είναι ότι δεν το δοκίμασα αν δουλεύει. :-)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

erateini
Δημοσιεύσεις: 36
Εγγραφή: 11 Ιούλ 2007 20:10

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από erateini » 08 Οκτ 2007 23:46

Ευχαριστώ φίλε μου θα το δοκιμάσω..Πάντως θεωρητικά σωστό μου φαίνεται νομίζω...

To scriptακι όμως με το id δε μου το έβαλες,

<script>
var REQUEST_ID = <?php echo $id; ?>
var remoteUrl = 'http://www.myserver.gr/spy.php?id=' + REQUEST_ID
</script>

Πού πρέπει να μπει αυτό?
Μέσα στην if (http) ?

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από dik_ » 09 Οκτ 2007 00:54

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

http.open&#40;'GET', "http&#58;//www.learn-it.gr/e-platform/expiration.php?id=<?=$id?>", true&#41;

erateini
Δημοσιεύσεις: 36
Εγγραφή: 11 Ιούλ 2007 20:10

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από erateini » 09 Οκτ 2007 12:19

Οκ thanx dik_ κι εγώ έτσι το έβαλα το id, είχα ρωτήσει και πριν...τη μεταβλητή $id πριν τη βάλω εδώ την έχω πάρει απτη βάση μου έτσι δεν είναι?

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από dik_ » 09 Οκτ 2007 18:37

Ναι λογικά πριν σερβίρεις τη σελίδα, θα φτιάχνεις ένα row στη DB, θα παίρνεις το id της και θα το περνάς στη σελίδα. Μετά με κάθε XMLHttpRequest θα κάνεις update το row όπως είπαμε προηγουμένως.

erateini
Δημοσιεύσεις: 36
Εγγραφή: 11 Ιούλ 2007 20:10

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από erateini » 09 Οκτ 2007 20:35

Ωραία. Όλα καλά, βάζω το javascript μου, συγκεκριμένα :

<script type="text/javascript">
function sendRequest() {
setTimeout(sendRequest, 10000)
var http = window.XMLHttpRequest ? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : null
if (http) {
http.onreadystatechange = function(){}
http.open('GET', "http://www.learn-it.gr/e-platform/expir ... p?id=<?php echo $id; ?>", true)
http.send(null)
}
else {
alert("Your browser does not support XMLHTTP.")
}
}

setTimeout(sendRequest, 10000)
</script>

και ενώ όταν πάω στο url είναι όλα καλά, μετά από 10 sec (10000ms) κάτω αριστερά στον browser μου αντί για done μου βγάζει done with error : access is denied.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από skeftomilos » 10 Οκτ 2007 20:29

Από το μενού του Internet Explorer πήγαινε και κάνει check στην εξής επιλογή:

Tools -> Internet Options -> Advanced -> Display a notification about every script error

...ώστε να βγει το λάθος στην επιφάνεια για να μπορέσεις να το διορθώσεις. Καλό είναι να δοκιμάσεις την σελίδα και στον Firefox, για να δεις αν παίζει εκεί.

Γενικά το debugging των AJAX εφαρμογών δεν είναι το πιο εύκολο πράγμα στον κόσμο. :-?
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από dik_ » 10 Οκτ 2007 21:25

Με το Firebug είναι! ;)

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

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από cpulse » 12 Οκτ 2007 15:26

Κάπου έχω διαβάσει οτι τα GET requests με Ajax μπορεί να γίνουν cached, οπότε αν διορθωθεί και αυτό το πρόβλημα που έχεις βάλε κι ένα τυχαίο αριθμό στις μεταβλητές.

Κάτι σαν αυτό

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

http.open&#40;'GET', "http&#58;//www.learn-it.gr/e-platform/expiration.php?id=<?php echo $id; ?>&r=" + Math.round&#40;Math.random&#40;&#41; * 1000000&#41;, true&#41;

erateini
Δημοσιεύσεις: 36
Εγγραφή: 11 Ιούλ 2007 20:10

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από erateini » 13 Οκτ 2007 14:45

dik_ thanx θα το έχω υπόψη μου... cpulse αν και δεν πολυγνωρίζω από javascript και ajax ευχαριστώ, θα το δοκιμάσω... βασικά ρε γμτ τώρα που δοκίμασα το javascript μου σε mozilla δε μου βγάζει κανένα error... διαβολεμένα μηχανήματα... :P

erateini
Δημοσιεύσεις: 36
Εγγραφή: 11 Ιούλ 2007 20:10

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από erateini » 13 Οκτ 2007 15:54

το Firebug τελικά μου λέει ανά 10 sec: uncaught exception: Permission denied to call method XMLHttpRequest.open

Δε με βλέπω να βγάζω άκρη... :(

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από skeftomilos » 13 Οκτ 2007 19:13

Το σφάλμα βγαίνει λόγω των cross-site περιορισμών του AJAX. Δεν επιτρέπεται από μία σελίδα www.here.gr να γίνει client-side request προς το domain www.there.gr. Αν κάνεις πειράματα από το localhost, η σελίδα που καλείς πρέπει να βρίσκεται κι εκείνη στον localhost.

Επίσης εφάρμοσε την παρατήρηση του cpulse, είναι πολύ ουσιώδης.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

erateini
Δημοσιεύσεις: 36
Εγγραφή: 11 Ιούλ 2007 20:10

χρόνος παραμονής επισκέπτη/χρήστη σε συγκεκριμένη σελίδα

Δημοσίευση από erateini » 13 Οκτ 2007 19:27

Βασικά ναι σκεφτομιλε έχεις δίκιο, το διάβασα και αλλού αυτό. Δεν είχα τέτοιο πρόβλημα.. Παιδιά όλως περιέργως τελικά μου δουλεύει! :-D

Και μου βγάζει:

GET http://www.learn-it.gr/e-platform/expiration.php?id= (856ms)
GET http://www.learn-it.gr/e-platform/expiration.php?id= (782ms)

για κάθε request, κ.λ.π...

γιατί όμως δεν είναι ακριβώς 10000ms όπως δλδ το έχω ορίσει?

Απάντηση

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

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

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