login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Session voor aparte video

Offline Yourgamecrew - 07/11/2012 17:13 (laatste wijziging 07/11/2012 17:26)
Avatar van YourgamecrewLid Hallo allemaal,
Ik zit met het volgende probleem; ik heb een simpele kijkersteller (waarbij de teller per uur per bezoeker 1x omhoog gaat) gemaakt alleen werkt alleen met 1 video omdat anders de sessions elkaar overscchrijven. Maar dit script is voor meerdere videos bedoeld dus heeft iemand een suggestie hoe ik dit kan realiseren in een niet al te lange tijd?

Scriptje:

  1. <?php session_start(); ?>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Untitled</title>
  6. </head>
  7. <body>
  8. <?php
  9.  
  10. require ('query.php');
  11.  
  12. $time = time();
  13.  
  14. if($_SESSION['viewed'] == 1) {
  15.  
  16. if(isset($_SESSION['time'])) {
  17.  
  18. $diff = $time-$_SESSION['time'];
  19.  
  20. if($diff >= 3600) {
  21.  
  22. $views = doquery("SELECT views FROM video WHERE id='1'") + 1;
  23. $new = addquery("UPDATE video SET views='$views' WHERE id='1'");
  24.  
  25. $count = number_format($views, 0, ',', '.');
  26.  
  27. print($count);
  28.  
  29. unset($_SESSION['time']);
  30. $_SESSION['time'] = $time ;
  31.  
  32. }
  33.  
  34. else {
  35. $views = doquery("SELECT views FROM video WHERE id='1'");
  36. $count = number_format($views, 0, ',', '.');
  37.  
  38. print($count);
  39. }
  40. }
  41.  
  42. else {
  43. $_SESSION['time'] = $time ;
  44. $views = doquery("SELECT views FROM video WHERE id='1'");
  45. $count = number_format($views, 0, ',', '.');
  46.  
  47. print($count);
  48. }
  49. }
  50.  
  51. else {
  52.  
  53. $_SESSION['viewed'] = 1;
  54.  
  55. $views = doquery("SELECT views FROM video WHERE id='1'") + 1;
  56. $new = addquery("UPDATE video SET views='$views' WHERE id='1'");
  57. $count = number_format($views, 0, ',', '.');
  58.  
  59. print($count);
  60. }
  61. ?>
  62.  
  63. </body>
  64. </html>

5 antwoorden

Gesponsorde links
Offline Martijn - 07/11/2012 19:43
Avatar van Martijn Crew PHP Simpel, stapje dieper gaan:

  1. $_SESSION['video'.$idVanVideo]['time'] = time();
  2. $_SESSION['video'.$idVanVideo]['viewed'] =1;


Een array in een array print_r($_SESSION); zal je de hele inhoud laten zien als je verdwaalt.

Kleine veiligheidstip: Als iemand uitlogt en inlogt begint de sessie opnieuw, leeg dus, en kan nog een keer.

Dan een tip voor je mysql: je doet WHERE id='1'. Quotes om een string zijn niet nodig, en als je in een int kolom werkt ook af te raden, het is een pc, die werken sneller met getalletjes. Verder selecteer je waarschijnlijk 1 regel, dus LIMIT 1 achter in je query is een goede gewoonte
Bedankt door: Yourgamecrew
Offline Yourgamecrew - 07/11/2012 19:49 (laatste wijziging 07/11/2012 19:50)
Avatar van Yourgamecrew Lid Bedankt! Kan je mij misschien even uitleggen waarom naar de $_SESSION er zeg maar twee dingen tussen [] komen (['video'.$idVanVideo]['time']) want dat ben ik nog nooit tegen gekomen namelijk xD
Offline marten - 07/11/2012 19:54
Avatar van marten Beheerder Door middel van een punt zet je variabelen aan elkaar.
Je krijgt dus

[video1]['time']
[video2]['time']
[video3]['time']

Door extra haken te gebruiken kan je niveau's dieper gaan

[video1]['time']['hour']
[video1]['time']['minute']

etc.
Bedankt door: Yourgamecrew
Offline Martijn - 08/11/2012 22:20
Avatar van Martijn Crew PHP Dat tussen de bracktets ( [ & ] ) heet de key.
  1. Daar kun je met een array zo doen:
  2.  
  3. $array = array();
  4. $array[] = "Waarde a";
  5. $array[] = "Waarde b";
  6. $array[] = "Waarde c";
  7. $array[] = "Waarde d";
  8. foreach($array as $key => $value){
  9. echo $key." heeft als waarde ".$value."<br />";
  10. }


Indien je m 2 diep heb, is de $value ook weer een array, en doe je dus een foreach met $value. Let wel op dat je de variablen $key en $value dan niet in de 2e vooruit stopt, want dan na 1 loopje krijg je gekke dingen
Offline marten - 14/11/2012 11:29
Avatar van marten Beheerder Gemailed naar TS of het topic is opgelost of er nog aanvullende informatie nodig is.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s