Scripts

Poll script met admin

Een poll script, ik wil binnenkort graag beginnen met scripts maken en die vervolgens te verkopen, maar ik heb nog wat tips nodig, dus graag tips bij dit script, en goed opgebouwde kritiek is ook welkom. Het is een simpel script: het laat een administrator polls toevoegen en verwijderen, de bezoekers kunnen stemmen(1x maar) en het script weergeeft het percentage stemmen bij iedere optie. Er kunnen meer polls tegelijkertijd draaien. Installeren is makkelijk, gewoon de instellingen veranderen en de sql uitvoeren, het bestand moet trouwens wel pollscript.php heten, ik ben namelijk vergeten de naam variabel te maken xD.

poll-script-met-admin
--pollscript.php--
<?php
session_start();
/*
Copyright Teun Beijers
--------Instellingen--------
Voer eerst deze sql-query uit:

CREATE TABLE `poll` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`optie` INT( 2 ) NOT NULL ,
`poll` INT( 2 ) NOT NULL ,
`ip` VARCHAR( 255 ) NOT NULL ,
UNIQUE (
`id` 
)
) ENGINE = InnoDB;

CREATE TABLE `polls` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`vraag` VARCHAR( 255 ) NOT NULL ,
`opties` VARCHAR( 255 ) NOT NULL ,
UNIQUE (
`id` 
)
) ENGINE = InnoDB 
*/
$mysqlhost = 'localhost';//Je mysql-host
$mysqluser = 'root';//Je mysql-gebruikersnaam
$mysqlpass = '*****';//Je mysql-wachtwoord
$mysqldatabase = 'poll';//De database waarin je de poll wil installeren
$adminwachtwoord = '*****';//Het wachtwoord waarmee je het administratiepaneel in kan
$mail = '[email protected]';//Je mail adres, voor support
/*Einde instellingen*/

$connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpass) or die ("Error: kon geen verbinding maken met de database!");
				
		if($connection)    
		{
			$select_db = mysql_select_db($mysqldatabase) or die ("Error: kon de database niet selecteren!");
		}

$pagina = $_GET['p'];
if(!isset($pagina) || $pagina == '') {
	$pagina = 'poll';
}
if($pagina == 'poll') {
	$extra = $_GET['a'];
	if($extra == "" || !isset($extra)) {
		echo '<h1>Poll</h1>';
		$sql = "SELECT * FROM `polls`";
		$query = mysql_query($sql) or die('Fout in mysql! Mail <a href="mailto:'.$mail.'">'.$mail.'</a> of probeer het opnieuw');
		while($polls = mysql_fetch_array($query)) {
			$totaalstemmen = mysql_num_rows(mysql_query("SELECT * FROM `poll` WHERE `poll` = ".$polls['id']));
			echo '<h2>' . $polls['vraag'].'</h2>';
			$opties = explode(',',$polls['opties']);
			$i = 0;
			while($i < count($opties)) {
				$aantalstemmen = mysql_num_rows(mysql_query("SELECT * FROM `poll` WHERE `poll` = ".$polls['id']." AND `optie` = ".$i));
				if($totaalstemmen != 0) {
					$percentage = ($aantalstemmen/$totaalstemmen)*100;
				} else {
					$percentage = 0;
				}
				echo '<a href="pollscript.php?p=poll&a=stemmen&b='.$i.'&c='.$polls['id'].'" target="_blank">'.$opties[$i].'</a> '.$percentage.'% <br />';
				$i++;
			}
			echo 'Totaal aantal stemmen: '.$totaalstemmen;
			echo '<hr>';
		}
		echo '<a href="pollscript.php?p=login">Administratiepaneel</a>';
	} elseif($extra == 'stemmen') {
		$sql = "SELECT * FROM `poll` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `poll` = '".mysql_real_escape_string($_GET['c'])."'";
		$num_rows = mysql_num_rows(mysql_query($sql));
		if($num_rows != 0) {
			echo "Je hebt al een keer gestemd!";
		} else {
			$sql = "INSERT INTO `poll` SET
			`optie` = ".mysql_real_escape_string($_GET['b']).",
			`poll` = ".mysql_real_escape_string($_GET['c']).",
			`ip` = '".$_SERVER['REMOTE_ADDR']."'";
			mysql_query($sql) or die('fout in mysql, stem is niet getelt!');
			echo "U heeft succesvol gestemt!";
		}
	}	
} elseif($pagina == 'login') {
	echo '<h1>Login</h1>';
	echo '<form id="form1" name="form1" method="post" action="pollscript.php?p=admin">
  			<label>
  				<input name="pass" type="password" id="pass" />
  			</label>
			<label>
  				<input type="submit" name="Submit" value="Log in!" />
  			</label>
		</form>';
} elseif($pagina == 'admin') {
	$pass = $_POST['pass'];
	if($pass == $adminwachtwoord) {
		$_SESSION['pass'] = $pass;
	}
	if($_SESSION['pass'] == $adminwachtwoord) {
		$extra = $_GET['a'];
		if(!isset($extra) || $extra == "") {
			echo '<h1>Administratie</h1>';
			echo '<a href="pollscript.php?p=admin&a=toevoegen">Poll toevoegen</a>';
			echo '<a href="pollscript.php?p=admin&a=verwijderen">Poll verwijderen</a>';
		} elseif($extra == 'toevoegen') {
			$stap = $_GET['b'];
			if($stap == 1 || !isset($stap) || $stap == "") {
				echo '<form id="form1" name="form1" method="post" action="pollscript.php?p=admin&a=toevoegen&b=2">
					  <label>
					  Vraag:
					  <input type="text" name="vraag" />
					  </label>
					  <br />
					  Aantal opties:
					  <label>
					  <input type="text" name="aantal" />
					  </label>
					  <br />
					  <label>
					  <input type="submit" name="Submit" value="Ga verder->" />
					  </label>
					</form>';
			} elseif($stap == 2) {
				if($_SERVER['REQUEST_METHOD'] == "POST") {
					$vraag = $_POST['vraag'];
					$aantal = $_POST['aantal'];
					$i = 0;
					echo '<h2>'.$vraag.'</h2>';
					echo '<form id="form1" name="form1" method="post" action="pollscript.php?p=admin&a=toevoegen&b=3">';
					while($i < $aantal) {
						echo 'Optie '.($i+1).':
							  <label>
							  <input type="text" name="optie'.$i.'" />
							  </label><br />';
						$i++;
					}
					echo '<input type="hidden" name="vraag" value="'.$vraag.'"/>';
					echo '<input type="hidden" name="aantal" value="'.$aantal.'"/>';
					echo '<label>
					  <input type="submit" name="Submit" value="Voeg poll toe!" />
					  </label>';
					echo '</form>';
				} else {
					echo 'Er is helaas een fout opgetreden, probeer het aub opnieuw of stuur een maitje naar: <a href="mailto:'.$mail.'">'.$mail.'</a>';
				}
			} elseif($stap == 3) {
				if($_SERVER['REQUEST_METHOD'] == "POST") {
					$vraag = $_POST['vraag'];
					$aantal = $_POST['aantal'];
					$i = 0;
					$opties = "";
					while($i < $aantal) {
						if($aantal-1 != $i) {
							$opties .= $_POST['optie'.$i].',';
						} else {
							$opties .= $_POST['optie'.$i];
						}
						$i++;
					}
					$sql = "INSERT INTO `polls` SET
					`vraag` = '".mysql_real_escape_string($vraag)."',
					`opties` = '".mysql_real_escape_string($opties)."'";
					mysql_query($sql) or die('Fout in mysql! Mail <a href="mailto:'.$mail.'">'.$mail.'</a> of probeer het opnieuw');
					echo "POLL SUCCESVOL TOEGEVOEGD!";
				} else {
					echo 'Er is helaas een fout opgetreden, probeer het aub opnieuw of stuur een maitje naar: <a href="mailto:'.$mail.'">'.$mail.'</a>';
				}
			}
		} elseif($extra == "verwijderen") {
			if($_SERVER['REQUEST_METHOD'] != "POST") {
				$sql = "SELECT * FROM `polls`";
				$query = mysql_query($sql) or die('Fout in mysql! Mail <a href="mailto:'.$mail.'">'.$mail.'</a> of probeer het opnieuw');
				echo '<form id="form1" name="form1" method="post" action="pollscript.php?p=admin&a=verwijderen">';
				while($result = mysql_fetch_array($query)) {
					$id = $result['id'];
					$vraag = $result['vraag'];				
					echo $vraag;
					echo '<label>
							<input name="verwijder" type="radio" value="'.$id.'" />
						</label>';
					echo '<br />';				
				}
				echo '<label>
						  <input type="submit" name="Submit" value="Verwijder!" />
					</label>';
				echo '</form>';
			} else {
				$id = $_POST['id'];
				$sql = "DELETE * FROM `polls` WHERE  `id` = ".$id;
				mysql_query($sql) or die('Fout in mysql! Mail <a href="mailto:'.$mail.'">'.$mail.'</a> of probeer het opnieuw');
				$sql = "DELETE * FROM `poll` WHERE `poll` = ".$id;
				mysql_query($sql) or die('Fout in mysql! Mail <a href="mailto:'.$mail.'">'.$mail.'</a> of probeer het opnieuw');
				echo 'Succesvol verwijdert!';
			}
		}
	} else {
		echo 'Verkeerd wachtwoord!';
	}
}
?>

Reacties

0
Nog geen reacties.