Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

webbserverprogrammering/exercises/quiz/

admin.php
dbconnection.php
glömtLösen.php
index.php
quiz.php
quiz_css.css
rättning.php
skapaTabell.php
verify.php

admin.php

257 lines UTF-8 Windows (CRLF)
<?php 
error_reporting
(-1);
ini_set('display_errors'1);
ini_set('output_buffering'0); 
session_start();
include(
'dbconnection.php');
if (isset(
$_SESSION["inloggad"]) && $_SESSION["inloggad"] === true) {
 if (isset(
$_POST["quizNamn"]) && $_POST["quizNamn"]!=null) {
  
$sql "INSERT INTO QUIZ (namn, antalFrågor) 
  VALUES (?, 0)"
;
  
$stmt $dbconn->prepare($sql);
  
$data = array($_POST["quizNamn"]);
  
$stmt->execute($data);
 }
 elseif(isset(
$_POST["fråga"]) && isset($_POST["svar1"]) && isset($_POST["rätt"]) &&
  
$_POST["fråga"]!=null && $_POST["svar1"]!=null && $_POST["rätt"]!=null) {
 
# Lägg till fråga
  
$sql "INSERT INTO QUIZFrågor (fråga, quizID) VALUES (?, ?)";
 
$stmt $dbconn->prepare($sql);
 
$data = array($_POST["fråga"], $_POST["väljQuiz"]);
 
$stmt->execute($data);

 
$vilkenquiz $_POST['väljQuiz'];
 
$sql "UPDATE QUIZ SET antalFrågor = antalFrågor + 1 
 WHERE id = 
$vilkenquiz";
 
$stmt $dbconn->prepare($sql);
 
$stmt->execute();

 
$sql "SELECT * FROM QUIZFrågor WHERE fråga=?";
 
$stmt $dbconn->prepare($sql); 
 
$stmt->execute(array($_POST["fråga"]));
 
$res $stmt->fetch(PDO::FETCH_ASSOC);
 
$frågeID $res["id"];

 for (
$i=1$i <= 4$i++) { 
      
# Lägg till svar
  
$x "svar".$i;
  if (isset(
$_POST[$x]) && $_POST[$x] !="") {
   
$sql "INSERT INTO QUIZSvar (frågeID, svar, rätt) VALUES (?, ?, ?)";
   if (
$_POST["rätt"]==$x$y 1;
   else 
$y 0;
   
$stmt $dbconn->prepare($sql);
   
$data = array($frågeID$_POST[$x], $y);
   
$stmt->execute($data);
  }
 }
}
if (isset(
$_GET["loggaUt"]) && $_GET["loggaUt"]) {
 
$_SESSION["inloggad"] = false;
 
header("Location:../");
}
if (isset(
$_GET["taBort"])) {
 
$sql "DELETE FROM QUIZResultat WHERE id=?";
 
$stmt $dbconn->prepare($sql);
        
# the data we want to insert
 
$data = array($_GET["taBort"]);
        
# execute width array-parameter
 
$stmt->execute($data);
}
if (isset(
$_GET["taBortAnv"])) {
 
$sql "DELETE FROM QUIZAnvändare WHERE id=?";
 
$stmt $dbconn->prepare($sql);
        
# the data we want to insert
 
$data = array($_GET["taBortAnv"]);
        
# execute width array-parameter
 
$stmt->execute($data);
}
?>
<!doctype html>
<html>
<head>
 <meta charset="utf-8">
 <title>QUIZ - Admin</title>
 <link rel="stylesheet" type="text/css" href="quiz_css.css">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
 <form action="" method="post">
  <table>
   <tr>
    <td><strong>Skapa quiz</strong></td>
    <td></td>
   </tr>
   <tr>
    <td>Namn</td>
    <td><input type="text" name="quizNamn"></td>
    <td><input type="submit" value="Lägg till quiz"></td>
   </tr>
   <tr>
    <td><strong>Skapa fråga</strong></td>
    <td></td>
    <td></td>
   </tr>
   <tr>
    <td>Välj quiz</td>
    <td>
     <select name="väljQuiz">
      <?php
      $sql 
"SELECT * FROM QUIZ ORDER BY namn ASC";
      
$stmt $dbconn->prepare($sql);

      
$data = array();  
      
$stmt->execute($data);
      while (
$res $stmt->fetch(PDO::FETCH_ASSOC)) {
       echo 
"<option value=".$res['id']."> ".$res['namn']." </option>";
      }
      
?>
     </select>
    </td>
    <td></td>
   </tr>
   <tr>
    <td>Fråga</td>
    <td><input type="text" name="fråga"></td>
    <td>Rätt svar:</td>
   </tr>
   <tr>
    <td>Svar 1.</td>
    <td><input type="text" name="svar1"></td>
    <td><input type="radio" name="rätt" value="svar1"></td>
   </tr>
   <tr>
    <td>Svar 2.</td>
    <td><input type="text" name="svar2"></td>
    <td><input type="radio" name="rätt" value="svar2"></td>
   </tr>
   <tr>
    <td>Svar 3.</td>
    <td><input type="text" name="svar3"></td>
    <td><input type="radio" name="rätt" value="svar3"></td>
   </tr>
   <tr>
    <td>Svar 4.</td>
    <td><input type="text" name="svar4"></td>
    <td><input type="radio" name="rätt" value="svar4"></td>
   </tr>
   <tr>
    <td>4 svar är ej krav</td>
    <td></td>
    <td><input type="submit" value="Lägg till fråga"></td>
   </tr>
   <tr>
    <td></td>
    <td></td>
    <td></td>
   </tr>
  </table>
 </form>
 <?php 
 $sql 
"SELECT *, QUIZResultat.id as rid , QUIZResultat.antalFrågor as qAntal FROM QUIZResultat 
 INNER JOIN QUIZAnvändare ON QUIZResultat.användarID=QUIZAnvändare.id 
 INNER JOIN QUIZ ON QUIZResultat.quizID=QUIZ.id"
;
 
$stmt $dbconn->prepare($sql);

 
$data = array();  
 
$stmt->execute($data);
 
$output "<table id='restabell'><caption>Registrerade resultat:</caption>
 <tr class='sticky'>
  <th>resID</th>
  <th>Användare</th>
  <th>namn</th>
  <th>Quiz</th>
  <th>namn</th>
  <th>antal rätt</th>
  <th>/utav</th>
  <th>tidsstämpel</th>
  <th>ta bort</th>
 </tr>"
;
 while (
$res $stmt->fetch(PDO::FETCH_ASSOC)) {
  
$output .= "<tr>".
  
"<td>".htmlentities($res['rid'])."</td>".
  
"<td>".htmlentities($res['användarID'])."</td>".
  
"<td>".htmlentities($res['användarnamn'])."</td>".
  
"<td>".htmlentities($res['quizID'])."</td>".
  
"<td>".htmlentities($res['namn'])."</td>".
  
"<td>".htmlentities($res['antalRätt'])."</td>".
  
"<td>".htmlentities($res['qAntal'])."</td>".
  
"<td>".htmlentities($res['tid'])."</td>".
  
"<td><a href='?taBort=".$res['id']."'>drop</a></td>".
  
"</tr>";
 }
 
$output .= "</table>";
 echo 
"$output";

 
$sql "SELECT * FROM QUIZAnvändare";
 
$stmt $dbconn->prepare($sql);
 
$data = array();  
 
$stmt->execute($data);
 
$output "<table><caption>Användare</caption><tr>
 <td>ID</td>
 <td>Användarnamn</td>
 <td>epost</td>
 <td>registrerades</td>
 <td>ta bort</td>
 </tr>"
;
 while (
$res $stmt->fetch(PDO::FETCH_ASSOC)) {
  
$output .= "<tr>".
  
"<td>".htmlentities($res['id'])."</td>".
  
"<td>".htmlentities($res['användarnamn'])."</td>".
  
"<td>".htmlentities($res['epost'])."</td>".
  
"<td>".htmlentities($res['reg_date'])."</td>".
  
"<td><a href='?taBortAnv=".$res['id']."'>drop</a></td>".
  
"</tr>";
 }
 
$output .= "</table>";
 echo 
"$output";?>
 <form action="" method="get">Se frågor och facit
   <select name="väljquiz" onchange="this.form.submit()">
    <option>Välj quiz </option>
    <?php
    $sql 
"SELECT * FROM QUIZ ORDER BY namn ASC";
    
$stmt $dbconn->prepare($sql);

    
$data = array();  
    
$stmt->execute($data);
    while (
$res $stmt->fetch(PDO::FETCH_ASSOC)) {
     echo 
"<option value=".$res['id']."> ".$res['namn']." </option>";
    }
    
?>
   </select>

  </form>
  <?php 
  
if (isset($_GET["väljquiz"])) {
   
$sql "SELECT * FROM QUIZ WHERE id=? " ;
   
$stmt $dbconn->prepare($sql);
   
$data = array($_GET["väljquiz"]);
   
$stmt->execute($data);
   
$res $stmt->fetch(PDO::FETCH_ASSOC);

   echo 
"<form><h2>".$res["namn"]."</h2>";
   
   
$sql "SELECT * FROM QUIZFrågor WHERE quizID=?";
   
$stmt $dbconn->prepare($sql);
   
$data = array($_GET["väljquiz"]);  
   
$stmt->execute($data);
   
$antalFrågor 0;
   while (
$resFr $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo 
"<br><span>".$resFr['fråga']."</span><br>";
    
$antalFrågor++;
    
$sql "SELECT * FROM QUIZSvar WHERE frågeID=?";
    
$stmt2 $dbconn->prepare($sql);
    
$data = array($resFr['id']);  
    
$stmt2->execute($data);
    while (
$resSv $stmt2->fetch(PDO::FETCH_ASSOC)) {
     echo 
"<input type='radio' ".($resSv['rätt'] ? 'checked' '').">".$resSv['svar']."</span><br>";
    }
   }
   echo 
"</form>";
  }
 
?>
 <br><a href="?loggaUt=true">Logga ut</a>
</body>

<?php
}
?>