Webbserv1: Källkod
Webbserverprogrammering 1

Show sourcecode

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

webbsrvprg/projects/quiz/

quiz.php
quiz_create.php
quiz_created.php
quiz_home.php
quiz_login.php
quiz_results.php
quiz_signup.php

quiz_create.php

114 lines UTF-8 Windows (CRLF)
<?php
session_start
();
?>
<!doctype html>
<html>

<body>
<?php
include ('../../dbconnection.php');
$message null;
  if (isset(
$_POST["create"])) {
    
$name $_POST["quizName"];
    
$amount $_SESSION["q"];
    try {    
      
$sql "INSERT INTO quiz (quizName, quizAmount) 
      VALUES (?, ?)"
;
      
$stmt $dbconn->prepare($sql);
      
$data = array($name$amount);
      
$stmt->execute($data);

      
$sql "SELECT * FROM quiz WHERE quizName='$name'";
      
$stmt $dbconn->prepare($sql);
      
$data = array();
      
$stmt->execute($data);
      
$res $stmt->fetch(PDO::FETCH_ASSOC);
      
$quizId htmlentities($res['id']);
      
      for (
$u 1$u <= $_SESSION["q"]; $u++) {
        
$question $_POST["question_$u"];
        
$sql "INSERT INTO questions (quizId, question) 
        VALUES (?, ?)"
;
        
$stmt $dbconn->prepare($sql);
        
$data = array($quizId$question);
        
$stmt->execute($data);

        
$sql "SELECT * FROM questions WHERE question='$question'";
        
$stmt $dbconn->prepare($sql);
        
$data = array();
        
$stmt->execute($data);
        
$res $stmt->fetch(PDO::FETCH_ASSOC);
        
$questionId htmlentities($res['id']);

        for (
$i 1$i <= 3$i++) {
          
$answer $_POST["answer".$i."_".$u];
          
$correct $_POST["correct_$u"];
          if (
$correct == $i) {
            
$correct 1;
          }
          else {
            
$correct 0;
          }
          
$sql "INSERT INTO answers (quizId, questionId, answer, correct) 
          VALUES (?, ?, ?, ?)"
;
          
$stmt $dbconn->prepare($sql);
          
$data = array($quizId$questionId$answer$correct);
          
$stmt->execute($data);
        }
      }
      
header('Location: /~noahet/webbsrvprg/projects/quiz/quiz_created.php');
            
    }
    catch(
PDOException $e)  {
        echo 
$sql "<br>" $e->getMessage();
    }
    
    
$dbconn null;
  } else {
    
$message .= "<br />Du måste fylla i fälten!<br /><br />";
  }
echo 
$message;
?>
<form method="post" action=""> 

  Quiznamn
  <input type="text" name="quizName" value="<?php echo $_POST["quizName"] ?? ""?>" size=40 maxlength=100 required><br><br>
  <?php
  
if (!isset($_SESSION["q"])) {
    
$_SESSION["q"] = 0;
  }
  if (
$_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["newQ"])) {
    
createQ();
  }
  function 
createQ() {
    
$_SESSION["q"] += 1;
    for (
$u 1$u <= $_SESSION["q"]; $u++) {
      
$question htmlspecialchars($_POST["question_$u"] ?? '');
      
$answer1 htmlspecialchars($_POST["answer1_$u"] ?? '');
      
$answer2 htmlspecialchars($_POST["answer2_$u"] ?? '');
      
$answer3 htmlspecialchars($_POST["answer3_$u"] ?? '');
      
$correct $_POST["correct_$u"] ?? '';
  
      echo 
"Fråga $u: <input type='text' name='question_$u' value='$question' size='40' maxlength='100' required><br><br>";
  
      echo 
"Svarsalternativ 1: <input type='text' name='answer1_$u' value='$answer1' size='40' maxlength='100' required><br>";
      echo 
"Svarsalternativ 2: <input type='text' name='answer2_$u' value='$answer2' size='40' maxlength='100' required><br>";
      echo 
"Svarsalternativ 3: <input type='text' name='answer3_$u' value='$answer3' size='40' maxlength='100' required><br>";
  
      echo 
"Korrekt svar: <select name='correct_$u'>
      <option value='1'"
.($correct == 'selected':'').">1</option>
      <option value='2'"
.($correct == 'selected':'').">2</option>
      <option value='3'"
.($correct == 'selected':'').">3</option>
      </select><br><br><br>"
;
  }
  }
  
  
?>

  <button type="submit" name="newQ">Lägg till fråga</button><br><br>
  <button type="submit" name="create">Skapa quiz</button>
</form>
<form>
</form>
</body>
</html>