Advertisement
Guest User

weqr

a guest
Jan 9th, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. <?php
  2.  
  3. # Anlegung der Polls an der Datenbank mit ID
  4. # Zuerst verbindung aufbauen
  5.  
  6. private $username = "andreas";
  7. private $password = "yF1K^R6Jqh8IbK9";
  8. private $dbname = "freepoll";
  9. private $db_servername = "localhost";
  10. private $mysqli;
  11.  
  12. # https://stackoverflow.com/questions/21066386/making-dynamic-straw-poll vorangehende DB logik hier festgelegt mit bsp.
  13. # https://www.w3schools.com/php/php_mysql_insert.asp referenz material fürs einschreiben in die DB
  14. # poll create hat id, poll_name welcher die frage selbst ist und timestamp_create was die Uhrzeit ist
  15.  
  16. try {
  17. ini_set('display_errors', 1);
  18. ini_set('display_startup_errors', 1);
  19. error_reporting(E_ALL);
  20. # Falls nötig, hier timestamp form. DB kann aber timestamps automatisch anlegen was hier passiert
  21. # $t=time();
  22. # $timestamp = date("Y.m.d-H:i:s");
  23. # https://stackoverflow.com/questions/10040291/converting-a-unix-timestamp-to-formatted-date-string timestamp syntax beispiele für
  24. # manuelle Formatierung
  25. #
  26. # Was fehlt hier ist das anstelle das manuelle eintragen hier das ganze durch felder passiert. Also variablen austauschen etc.
  27. # Um es zum funktionieren zu bringen.
  28. # Was noch fehlt hier ist es zu verhindern das der selbe user zu viele umfragen gleichzeitig erstellt ergo if statements
  29.  
  30. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  31. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  32.  
  33.  
  34. # Erstellung einer einzigartigen ID für den Poll selbst, abgleichung mit datenbank muss nicht erfolgen
  35. # da uniqid(); absolut einzigartig ist. Ist zwar vorhersehbar aber einzigartig.
  36. # Hier kommt noch hin die IP Adressen erkennung welche noch auf dem Heimrechner hinterlegen ist
  37. $id_poll = uniqid();
  38. $id_vote = uniqid();
  39. $content_title = $_POST['title'];
  40.  
  41. # ---------------------------HIER WIRD DER POLL SELBST ERSTELLT----------------------------------------
  42. # die ' ' nicht vergessen bei den VALUES
  43. # poll kennt lediglich id, poll_name und timestamp_create
  44. # Dies muss nur einmal passieren
  45. $sql = "INSERT INTO poll (id, poll_name)
  46. VALUES ('$id_poll', '$content_title')";
  47. $conn->exec($sql);
  48.  
  49. # ---------------------------HIER WERDEN DIE OPTIONEN HINZUGEFÜGT----------------------------------------
  50. # poll_option kennt id, option_name, poll_id und ein placeholder1
  51. # poll_id referenziert die id von poll_create welche die gleiche sein muss um eine ausgabe sinnig zu machen
  52. # id ist die option id selbst, diese ist immer gleich für alle optionen.
  53.  
  54. for($i = 1; $i <= 30; $i++) {
  55. if(isset($_POST['question' . $i])) {
  56. $id_option = uniqid();
  57. $content_satzfrage = $_POST['question' . $i];
  58. $sql = "INSERT INTO poll_option (id, option_name, poll_id)
  59. VALUES ('$id_option', '$content_satzfrage', '$id_poll')";
  60. $conn->exec($sql);
  61. }
  62. }
  63.  
  64. # ---------------------------HIER WIRD DER VOTE HINTERLEGT----------------------------------------
  65. # POLL_VOTE kennt id, ip_used und timestamp_vote jedoch wird der timestamp wie bei poll automatisch von der db erstellt
  66. $sql = "INSERT INTO poll_vote (id, ip_used)
  67. VALUES ('$id_vote', '128.0.0.1')";
  68. $conn->exec($sql);
  69.  
  70. echo "Umfrage wurde erstellt. ";
  71. }
  72. catch(PDOException $e)
  73. {
  74. echo $sql . "<br>" . $e->getMessage();
  75. }
  76.  
  77. $conn = null;
  78. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement