login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Overige scripts > Toplist script

Toplist script

Auteur: Maarten - 01 november 2004 - 23:30 - Gekeurd door: Dennisvb - Hits: 9401 - Aantal punten: 1.57 (7 stemmen)





Met dit scripts kan je een sites in een lijst zetten, en erop stemmen. Je kan een keer stemmen op een site in 24 uur. Dit wordt gecontroleerd via het IP-adres.

Bij het toevoegen van de site wordt gecontroleerd of het wel degelijk een URL is met het scriptje van FangorN.

Alle commentaar, kritiek, beledigingen en eventuele complimenten zijn welkom.

Ik heb het script getest en bij mij werkt het perfect. Mocht je problemen ondervinden, PM, mail of post een nota, ik help je dan.

03/11/2004: Bugje in out.php opgelost

Code:
Query:
  1. CREATE TABLE `toplist_stemmen` (
  2. `ip` varchar(255) NOT NULL default '',
  3. `datum` varchar(255) NOT NULL default ''
  4. ) TYPE=MyISAM;
  5.  
  6.  
  7. CREATE TABLE `toplist` (
  8. `id` tinyint(11) NOT NULL auto_increment,
  9. `titel` varchar(255) NOT NULL default '',
  10. `url` varchar(255) NOT NULL default '',
  11. `votes` tinyint(11) NOT NULL default '0',
  12. `beschrijving` text NOT NULL,
  13. `clicks` varchar(255) NOT NULL default '',
  14. PRIMARY KEY (`id`),
  15. UNIQUE KEY `titel` (`titel`),
  16. UNIQUE KEY `url` (`url`)
  17. ) TYPE=MyISAM AUTO_INCREMENT=3 ;


add.php
  1. <?php
  2. include("config.php");
  3.  
  4.  
  5. /* Dit is de URL-controle van FangorN:
  6. http://www.sitemasters.be/index.php?pagina=scripts/scripts&cat=10&id=79
  7. */
  8.  
  9. function control_url($in) {
  10. $start_url = "(http(s)?\:\/\/)?"; // start URL
  11. $punten = "([\w_-]{2,}\.)+"; // een of meer delen met een . aan het einde
  12. $laatste_deel = "([\w_-]{2,})"; // laatste deel bevat geen punt
  13. $user = "((\/)(\~)[\w_-]+)?((\/)[\w_-]+)*"; // evt subdirectories - evt met user ~
  14. $eind = "((\/)|(\/)[\w_-]+\.[\w]{2,})?"; // evt eindigend op een slash of slash+file+extensie
  15. $qstring1 = "((\?[\w_-]+\=([^\#]+)){0,1}"; // querystring - eerste argument (?a=b)
  16. $qstring2 = "(\&[\w_-]+\=([^\#]+))*)?"; // querystring - volgende argumenten (&c=d)
  17. $bkmrk = "(#[\w_-]+)?"; // bookmark
  18.  
  19. $exp = "/^".$start_url.$punten.$laatste_deel.$user.$eind.$qstring1.$qstring2.$bkmrk."$/i";
  20. return preg_match($exp, $in);
  21. }
  22.  
  23. // Einde controle-functie
  24. ?>
  25.  
  26. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  27. "http://www.w3.org/TR/html4/loose.dtd">
  28. <html>
  29. <head>
  30. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  31. <title>Site toevoegen</title>
  32. </head>
  33.  
  34. <body>
  35. <p>Voeg een site toe:</p>
  36. <?php if(!isset($_POST['Submit'])) { ?>
  37. <form name="form1" method="post" action="">
  38. <p>
  39. Titel:<br>
  40. <input name="titel" type="text" id="titel" size="50">
  41. </p>
  42. <p>
  43. Url:<br>
  44. <input name="url" type="text" id="url" value="http://" size="50">
  45. </p>
  46. <p>
  47. Beschrijving:<br>
  48. <textarea name="desc" cols="50" rows="10" id="desc">
  49. </textarea>
  50. </p>
  51. <p>
  52. <input type="submit" name="Submit" value="Site toevoegen">
  53. </p>
  54. </form>
  55. <?php } else {
  56. if(!trim($_POST['titel'])) {
  57. $error = "Vul een titel in!<br>";
  58. }
  59. if(!control_url($_POST['url'])) {
  60. $error .= "Vul een geldige URL in!<br>";
  61. }
  62. if(!trim($_POST['desc'])) {
  63. $error .= "Vul een beschrijving in<br>";
  64. }
  65.  
  66. if(!$error) { // geen errors, voer uit
  67. $controle = mysql_query("SELECT * FROM toplist WHERE url='".$_POST['url']."'");
  68. if(mysql_num_rows($controle) == 0) {
  69. $desc = nl2br($_POST['desc']);
  70. mysql_query("INSERT INTO toplist (titel, url, votes, beschrijving, clicks) VALUES ('".$_POST['titel']."','".$_POST['url']."',0,'".$desc."',0)");
  71. echo "Site opgenomen in database.";
  72. } else {
  73. echo "De URL <b>".$_GET['url']."</b> bestaat al in de database. <a href=\"JavaScript: history.go(-1)\">Ga terug</a>";
  74. }
  75. } else { // wel errors
  76. echo "De url kon niet worden toegevoegd vangewe de onderstaande fout(en):<br><font color=\"#FF0000\"><strong>".$error."</strong></font><a href=\"JavaScript: history.go(-1)\">Ga terug en verbeter de fouten</a>.";
  77. }
  78. }?>
  79. </body>
  80. </html>


config.php
  1. <?php
  2. $dbnaam = "db";
  3. $dbuser = "user";
  4. $dbpass = "pass";
  5. $dbhost = "localhost";
  6.  
  7. $max = 10; // hoeveel sites er per pagina komen
  8.  
  9.  
  10. mysql_connect($dbhost,$dbuser,$dbpass);
  11. mysql_select_db($dbnaam);
  12.  
  13.  
  14. // Blijf hier best af als je niet snapt wat het is.
  15.  
  16. $aantal = mysql_num_rows(mysql_query("SELECT * FROM toplist"));
  17. if(!$limf) {
  18. $limf = $aantal;
  19. }
  20. if(!$liml) {
  21. $liml = $aantal - $perpage;
  22. }
  23. if(!$nav) {
  24. $nav = 1;
  25. }
  26.  
  27. $nav = (!isset($_GET['nav'])) ? 1 : $_GET['nav'];
  28.  
  29. $start = ($max * $nav) - $max;
  30.  
  31. $get = mysql_query("SELECT * FROM toplist ORDER BY votes DESC LIMIT ".$start.", " .$max.""); // Query samenstellen
  32.  
  33. ?>


index.php
  1. <?php
  2. include("config.php");
  3. if(!isset($_GET['pagina'])) { $_GET['pagina'] = "lijst"; }
  4. ?>
  5.  
  6. <html>
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  9. <title>Toplist Script</title>
  10. <style type="text/css">
  11. <!--
  12. .tblt {color: #FFFFFF; font-weight: bold; text-align:center; }
  13. -->
  14. </style>
  15. </head>
  16.  
  17. <body <?php
  18. if($_GET['error'] == "sidr") { ?>
  19. onLoad="JavaScript: alert('Ongeldige Site-id. Kan niet stemmen.');"
  20. <?php
  21. } elseif($_GET['error'] == "oidr") { ?>
  22. onLoad="JavaScript: alert('Ongeldige Site-id. Kan niet met website verbinden.');"
  23. <?php } elseif($_GET['error'] == "alv") { ?>
  24. onLoad="JavaScript: alert('Kan niet stemmen omdat je al hebt gestemt deze dag. Je kan om de 24 uur stemmen op een site.');"
  25. <?php } elseif($_GET['vote']) {
  26. $bezocht_site = mysql_result(mysql_query("SELECT url FROM toplist WHERE id='".$_GET['vote']."'"),0);
  27. $bezocht_stemmen = mysql_result(mysql_query("SELECT votes FROM toplist WHERE id='".$_GET['vote']."'"),0);
  28. ?>
  29. onLoad="JavaScript: alert('Je stem voor <?=$bezocht_site?> is opgenomen.\nMomenteel heeft deze site <?=$bezocht_stemmen?> stemmen.');"<?php } ?>>
  30.  
  31. <?php if(!$_GET['pagina'] == "lijst") { ?>
  32. <div align="center">
  33. <table width="798" border="0" cellspacing="0" cellpadding="0">
  34. <tr bgcolor="#000000">
  35. <td width="38" class="tblt">#</td>
  36. <td width="598" align="center" class="tblt">Website</td>
  37. <td width="162" class="tblt">Votes</td>
  38. </tr>
  39. <tr>
  40. <td colspan="3"></td>
  41. </tr>
  42. <?php
  43. if(isset($_GET['nav'])) {
  44. $positie = $max*$_GET['nav'];
  45. $positie = $positie - $max;
  46. $positie = $positie + 1;
  47. } else {
  48. $positie = 1;
  49. }
  50. while($sitez = mysql_fetch_array($get)) { ?>
  51. <tr>
  52. <td rowspan="2"><div align="center">
  53. <?php
  54. echo $positie;
  55. $positie++;
  56. ?></div></td>
  57. <td><a href="out.php?site=<?=$sitez['id']?>" target="_blank"><?=$sitez['titel'] ?></a> [<?=$sitez['clicks']?> views] [ <a href="vote.php?siteid=<?=$sitez['id']?>">Stem</a> ] </td>
  58. <td rowspan="2"><div align="center"><?=$sitez['votes'] ?></div></td>
  59. </tr>
  60. <tr>
  61. <td><i><?=$sitez['beschrijving'] ?></i></td>
  62. </tr><?php } ?>
  63. <tr align="center">
  64. <td colspan="3"><?
  65. $rijen= mysql_result(mysql_query("SELECT COUNT(id) FROM toplist ORDER BY id"),0);
  66. $paginas = ceil($rijen/ $max);
  67. if ($nav > 1) {
  68. $vorige = $nav - 1;
  69. echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?nav=" . $vorige . "\"><<</a>&nbsp";
  70. }
  71. for ($i = 1; $i <= $paginas; $i++) {
  72. if ($page == $i) {
  73. if ($i == $paginas) {
  74. echo "<b>" . $i . "</b>&nbsp";
  75. } else {
  76. echo "<b>" . $i . "</b>&nbsp";
  77. }
  78. } else {
  79. if ($i == $paginas) {
  80. echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?nav=" . $i . "\">" . $i . "</a>&nbsp";
  81. } else {
  82. echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?nav=" . $i . "\">" . $i . "</a>,&nbsp";
  83. }
  84. }
  85. }
  86.  
  87. if ($page < $paginas) {
  88. $volgende = $page + 1;
  89. echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?nav=" . $volgende . "\">>></a>";
  90. }
  91. ?> </td>
  92. </tr>
  93.  
  94. </table>
  95. <p><a href="index.php?pagina=howto">Hoe stemmen?</a></p>
  96. <?php } elseif($_GET['pagina'] == "howto") { ?>
  97. <p>Hoe stemmen? </p>
  98. <p>Je zorgt gewoon dat iedereeen die ingeschreven is de url ontvangt die je krijgt bij het toevoegen. Je kan het ook simpel afleiden door te linken naar http://sitenaam.com/vote.php?siteid=1 (vervang de siteid natuurlijk)
  99. <?php } else {
  100. header("Location: index.php"); }?>
  101. </p>
  102. <p><em><strong>Copyright MurfyMedia Webdesign</strong></em></p>
  103. </div>
  104. </body>
  105. </html>


out.php
  1. <?php include("config.php");
  2. $clickq = mysql_query("SELECT clicks FROM toplist WHERE id=".$_GET['site']."");
  3. $check = mysql_num_rows(clickq);
  4. if($check != 0) {
  5. $clicks = mysql_result($clickq,0);
  6. $clicks = $clicks + 1;
  7. mysql_query("UPDATE toplist SET clicks='".$clicks."' WHERE id='".$_GET['site']."'");
  8. $url = mysql_result(mysql_query("SELECT url FROM toplist WHERE id='".$_GET['site']."'"),0);
  9. header("Location: ".$url);
  10. } else {
  11. header("Location: index.php?error=oidr");
  12. } ?>


vote.php
  1. <?php
  2. include("config.php");
  3. $nu = time(); // Huidig datum vastleggen
  4. $nu = $nu-86400; // 24 uur aftrekken
  5. mysql_query("DELETE FROM toplist_stemmen WHERE datum >='".$nu."'"); // ff checken of er al adressen vervallen zijn
  6. $checkvote = mysql_query("SELECT * FROM toplist_stemmen WHERE datum >='".$nu."'"); // zit het in de db?
  7. if(mysql_num_rows($checkvote) == 0) { // Nee dus
  8. $getvotes = mysql_query("SELECT votes FROM toplist WHERE id='".$_GET['siteid']."'"); // aantal stemmen
  9. if(mysql_num_rows($getvotes) !=0) {
  10. $votes = mysql_result($getvotes,0); // Huidig aantal stemmen
  11. $votes = $votes + 1; // Eentje bijtellen
  12. mysql_query("UPDATE toplist SET votes='".$votes."' WHERE id='".$_GET['siteid']."'"); // Stem opnemen
  13. $ipadres = $_SERVER['REMOTE_ADDR']; // Ip
  14. $datum = time(); // Datum
  15. $ipin = mysql_num_rows(mysql_query("SELECT * FROM toplist_stemmen WHERE ip='".$ip."'")); // Kijk of ip er nog in zit
  16. if($ipin == 1) { // Ja, dus gebruiken we UPDATE
  17. mysql_query("UPDATE toplist_stemmen SET datum='".$nu."'");
  18. } else {
  19. mysql_query("INSERT INTO toplist_stemmen (ip,datum) VALUES ('".$ipadres."','".$datum."')"); // Nee, dus maken we een nieuwe invoer met INSERT
  20. }
  21. header("Location: index.php?vote=".$_GET['siteid']."");
  22. } else {
  23. header("Location: index.php?error=sidr");
  24. }
  25. } else {
  26. header("Location: index.php?error=alv");
  27. }
  28. ?>
Download code! Download code (.txt)

 Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (8)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.089s