About Views Counter and Sessions

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

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

Απάντηση
Senos
Δημοσιεύσεις: 11
Εγγραφή: 16 Φεβ 2008 01:07

About Views Counter and Sessions

Δημοσίευση από Senos » 24 Φεβ 2008 02:57

Geia sas k pali
afto ena script [ Counter views ]
to opoio pernei to id apo url me methodo $_GET[id] kai kathe fora pu kanei refresh o browser alazei tin timi enos pediou stin sql kata 1 (++;)

pio analitika:

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

<?

session_start&#40;&#41;;



$sql="SELECT views FROM `tutorials` WHERE id=$_GET&#91;id&#93;";
$count=0;
$cresult=mysql_query&#40;$sql&#41;;


   while &#40;$v = mysql_fetch_array&#40;$cresult&#41;&#41; 
&#123;
$count = $v&#91;'views'&#93;;
$add_date = $tutorial&#91;'add_date'&#93;;
echo "Views&#58;".$count."<br>";
&#125;

$count=$count+1;

$usql="update tutorials set views=".$count." where id=$_GET&#91;id&#93;";
if&#40;!mysql_query&#40;$usql&#41;&#41;
&#123;
       echo mysql_errno&#40;&#41;."&#58;";
       echo mysql_error&#40;&#41;;

&#125;






session_destroy&#40;&#41;;
?>

uparxei tropos me tin xrisi session na min prosthetei +1 kathe fora alla mono tin proti ?
kserw oti mporw na xrisimopoihsw $_SESSION['views'] px

alla to views den me kaliptei otan 8a allaksei to id :(

mporw na valw kapoia metavliti stin thesi tou views?
$_SESSION[$id] ?:hammer:
an nai pws?

kapoios pu na exei skeftei kati eksipno?

(den einai lathos na prosthetw me insert kathe fora pu kapoios koitaei ena apo ta id mu?)

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

About Views Counter and Sessions

Δημοσίευση από cpulse » 24 Φεβ 2008 17:23

Αν καταλαβαίνω καλά εννοείς οτι θες να μετράς τις μοναδικές επισκέψεις σε κάθε tutorial;

Μπορείς να χρησιμοποιήσεις ένα session array. Πχ

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

if &#40;!ctype_digit&#40;$_GET&#91;'id'&#93;&#41;&#41;
  die&#40;'id must be a number'&#41;;

session_start&#40;&#41;;

if &#40;!isset&#40;$_SESSION&#91;'views'&#93;&#41;&#41;
  $_SESSION&#91;'views'&#93; = array&#40;&#41;;

if &#40;!in_array&#40;$_GET&#91;'id'&#93;, $_SESSION&#91;'views'&#93;&#41;&#41; &#123;
  $_SESSION&#91;'views'&#93;&#91;&#93; = $_GET&#91;'id'&#93;;
  mysql_query&#40;"UPDATE tutorials SET views = views + 1 WHERE id = " . $_GET&#91;'id'&#93;&#41; or die&#40;mysql_error&#40;&#41;&#41;;
&#125;
Δεν έβαλα επίτηδες την session_destroy() στο τέλος επειδή αυτή η εντολή διαγράφει εντελώς το session. Εμείς θέλουμε να μένει το session και για το επόμενο page view του χρήστη.

Επίσης στην αρχή έβαλα έναν επιπλέον έλεγχο αν το $_GET['id'] είναι αριθμός. Αν δεν το κάνεις αυτό τότε αφήνεις χώρο για sql injection.

Senos
Δημοσιεύσεις: 11
Εγγραφή: 16 Φεβ 2008 01:07

About Views Counter and Sessions

Δημοσίευση από Senos » 24 Φεβ 2008 18:04

nai akrivos auto ithela!
me voithises k me to parapano !

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

if &#40;!ctype_digit&#40;$_GET&#91;'id'&#93;&#41;&#41;
  die&#40;'id must be a number'&#41;; 

Se Euxaristw para polu!

Απάντηση

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

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

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