interpol Geplaatst: 6 maart 2010 Geplaatst: 6 maart 2010 Ik wil een poll maken op een website met ja, nee of anders. Zijn hier goed werkende scripjes voor zonder reclame en die makkelijk inpasbaar zijn? Heeft iemand een script beschikbaar? Groetjes van john Openbox sg9 HD PVR
Puch Geplaatst: 6 maart 2010 Geplaatst: 6 maart 2010 Gaat het om 1 of om meerder vragen? Als het om 1 vraag gaat kan je daar een standaard formulier voor gebruiken. Indien meerdere vragen moet je formulieren aan elkaar koppelen. Dus de verwerk pagina van de eerste vraag is formulier 2. Op pagina 1 stel je een vraag. Die laat je verwerken op pagina 2. (controle op invullen, opslaan in db, enz,...) Eens alles verwerkt, toon je het tweede formulier die onderaan op pagina 2 staat. Die laat je weer verwerken op pagina 3. Zo kan je oneindig verder gaan. iMac 27" macOS SierraiPhone 5s iOS 10
interpol Geplaatst: 7 maart 2010 Auteur Geplaatst: 7 maart 2010 In eerste instantie gaat het om 1 vraag met een keuze uit 3 antwoorden. Wie heeft, of waar kan ik een scriptje vinden die ook nog makkelijk is te installeren. Openbox sg9 HD PVR
Puch Geplaatst: 7 maart 2010 Geplaatst: 7 maart 2010 Maak een mysql database aan met de naam "form_antwoorden" In die database maak je 1 tabel aan met de naam "antwoorden" De tabel heeft 2 velden veld 1 => id (unsigned, auto increment, primary key) veld 2 => antwoord (varchar => 10) Daarna kan je onderstaand script gebruiken. Php Code: <?phpif (isset($_POST['submit'])){ $antwoord = $_POST['antwoord']; if ($antwoord == ""){ $waarschuwing = "<font color=red>Je moet een keuze maken<font>"; } else{ $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'password'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql'); $dbname = 'form_antwoorden'; mysql_select_db($dbname); $query= ("INSERT INTO `antwoord` (`antwoord`) VALUES ('$antwoord')"); $input = mysql_query($query) or die (mysql_error()); $waarschuwing = "<font color=red>Bedankt voor uw antwoord</font>"; }}?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>Untitled 2</title></head><body><form id="form1" name="form1" method="post" action="<?php print $_SERVER['PHP_SELF']; ?>"><?php if (isset($waarschuwing)){ echo $waarschuwing . "<br />"; }?>Stel hier de vraag:<br /><input type="radio" name="antwoord" value="Ja"> Ja<br /><input type="radio" name="antwoord" value="Nee"> Nee<br /><input type="radio" name="antwoord" value="Anders"> Anders<br /><input type="submit" id="submit" name="submit" value="Verzenden"></form><?php unset($waarschuwing); ?></body></html> Met dit script lees je de database uit voor de resultaten Php Code: <?phpfunction percent($aantal_records, $totaal_aantal_records) {$bereken1 = $aantal_records / $totaal_aantal_records;$bereken2 = $bereken1 * 100;$uitkomst = number_format($bereken2, 2, ',', '');return $uitkomst;}$dbhost = 'localhost';$dbuser = 'root';$dbpass = 'password';$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql');$dbname = 'form_antwoorden';mysql_select_db($dbname); $query1 = "SELECT * FROM antwoord";$sql1 = mysql_query($query1) or die (mysql_error());$totaal_aantal = mysql_num_rows($sql1); $query2 = "SELECT * FROM antwoord WHERE antwoord = 'Ja'";$sql2 = mysql_query($query2) or die (mysql_error());$aantal_ja = mysql_num_rows($sql2);$resultaat_ja = percent($aantal_ja,$totaal_aantal); $query3 = "SELECT * FROM antwoord WHERE antwoord = 'Nee'";$sql3 = mysql_query($query3) or die (mysql_error());$aantal_nee = mysql_num_rows($sql3);$resultaat_nee =percent($aantal_nee,$totaal_aantal); $query4 = "SELECT * FROM antwoord WHERE antwoord = 'Anders'";$sql4 = mysql_query($query4) or die (mysql_error());$aantal_anders = mysql_num_rows($sql4);$resultaat_anders = percent($aantal_anders,$totaal_aantal); if ($totaal_aantal > 0){ echo "Er werd in totaal ".$totaal_aantal." maal gestemd<br />"; echo $aantal_ja." maal Ja ".$resultaat_ja."%<br />"; echo $aantal_nee." maal Nee ".$resultaat_nee."%<br />"; echo $aantal_anders." maal anders ".$resultaat_anders."%";} else{ echo "Er werd nog niet gestemd"; }?> iMac 27" macOS SierraiPhone 5s iOS 10
interpol Geplaatst: 7 maart 2010 Auteur Geplaatst: 7 maart 2010 Bedankt voor het scripje. Nu nog even uitzoeken hoe een msql database moet worden aangemaakt. Daar heb ik nog geen kaas van gegeten. Openbox sg9 HD PVR
Big fellow Geplaatst: 7 maart 2010 Geplaatst: 7 maart 2010 Ik zie een veiligheids risico in dit script; Citaat: $antwoord = $_POST['antwoord']; en dan Citaat: Php Code: $query= ("INSERT INTO `antwoord` (`antwoord`) VALUES ('$antwoord')"); Dit zet de deur wagenwijd open voor database injection etc. Hier een functie die je kan gebruiken om het veel veiliger te maken; Php Code: function clean($data) { $data = trim(htmlentities(strip_tags($data))); if (get_magic_quotes_gpc()) $data = stripslashes($data); return mysql_real_escape_string($data);} Als je dan "$antwoord = $_POST['antwoord'];" aanpast naar Php Code: $antwoord = "";if (isset($_POST['antwoord']) $antwoord = clean($_POST['antwoord']); dan is het een heel stuk veiliger... “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Puch Geplaatst: 8 maart 2010 Geplaatst: 8 maart 2010 Yep, helemaal gelijk, het scriptje was dan ook maar vlug vlug in elkaar gezet. Echter als je mysql_real_escape_string() wil gebruiken moet je eerst connectie maken met de database anders gaat hij een fout geven. iMac 27" macOS SierraiPhone 5s iOS 10
Big fellow Geplaatst: 8 maart 2010 Geplaatst: 8 maart 2010 Je hebt gelijk kwa connectie naar de database. Wat ik normaal gesproken doe is een include file maken welke ik in elk script als eerste aanroep. In de include file wordt meteen de db connectie gemaakt. Dan hoef ik niet meer na te denken of die connectie er al is. “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Puch Geplaatst: 8 maart 2010 Geplaatst: 8 maart 2010 Origineel bericht van: Big fellow Wat ik normaal gesproken doe is een include file maken welke ik in elk script als eerste aanroep. In de include file wordt meteen de db connectie gemaakt. Dan hoef ik niet meer na te denken of die connectie er al is. Inderdaad, dit doe ik ook altijd.Ik gebruik onderstaande functie die in de pagina includes.php staat.Bovenaan de pagina zet ik een require(includes.php); en ik roep de functie aan bij de eerste query die ik moet uitvoeren. Php Code: function verbinden(){$host = "localhost";$gebruiker = "db_user";$ww_db = "password";$database = "db_naam";$link = mysql_connect("$host", "$gebruiker", "$ww_db");mysql_select_db ("$database");} iMac 27" macOS SierraiPhone 5s iOS 10
interpol Geplaatst: 8 maart 2010 Auteur Geplaatst: 8 maart 2010 Uhhh, nu wordt het te ingewikkeld. Volgens mij lopen er nu 2 scriptjes door elkaar heen. Toppie dat er gelijk duidelijkheid wordt gegeven over de beveiliging van het script. Ik ga er mee aan de slag. Openbox sg9 HD PVR
Ron Geplaatst: 8 maart 2010 Geplaatst: 8 maart 2010 Simpel, text based "database", zie links: Die nerds maken het allemaal veel te moeilijk voor je http://www.scriptsez.net/download/download.php?action=download&p=poll.zip&ns=1 of deze: http://www.dbscripts.net/poll/ Ron
Puch Geplaatst: 8 maart 2010 Geplaatst: 8 maart 2010 ik voor jou de twee scripts gecombineerd naar 1 veilig script. De tweede pagina blijft hetzelfde Php Code: <?phpfunction clean($data) { $data = trim(htmlentities(strip_tags($data))); if (get_magic_quotes_gpc()) $data = stripslashes($data); return mysql_real_escape_string($data);} $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'password'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql'); $dbname = 'form_antwoorden'; mysql_select_db($dbname);if (isset($_POST['submit'])){ $antwoord = ""; if (isset($_POST['antwoord'])) $antwoord = clean($_POST['antwoord']); if ($antwoord == ""){ $waarschuwing = "<font color=red>Je moet een keuze maken</font>"; } else{ $query= ("INSERT INTO `antwoord` (`antwoord`) VALUES ('$antwoord')"); $input = mysql_query($query) or die (mysql_error()); $waarschuwing = "<font color=red>Bedankt voor uw antwoord</font>"; }}?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>Untitled 2</title></head><body><form id="form1" name="form1" method="post" action="<?php print $_SERVER['PHP_SELF']; ?>"><?php if (isset($waarschuwing)){ echo $waarschuwing . "<br />"; }?>Stel hier de vraag:<br /><input type="radio" name="antwoord" value="Ja"> Ja<br /><input type="radio" name="antwoord" value="Nee"> Nee<br /><input type="radio" name="antwoord" value="Anders"> Anders<br /><input type="submit" id="submit" name="submit" value="Verzenden"></form><?php unset($waarschuwing); ?></body></html> iMac 27" macOS SierraiPhone 5s iOS 10
interpol Geplaatst: 10 maart 2010 Auteur Geplaatst: 10 maart 2010 Bedankt allen! Het moet nu wel lukken. groetjes... Openbox sg9 HD PVR
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen