2013-02-22 4 views
2

Je construis un quiz basé sur PHP pour le site Web. Je suis un débutant. J'ai codé pour obtenir les questions et les options de la base de données et les afficher sous la forme dans ma page. Quand l'utilisateur sélectionne l'option que je veux les réponses à être insérées à ma base de données.J'ai écrit un peu de code bsic. Voici mon code Le tableau pour la question est d'avoir 7rows (qid, question, optiona, optionb, optionc, optiond, answeroption), table de réponses est d'avoir simple2rows (qid, réponse)comment insérer les options sélectionnées dans une base de données

 if(isset($_POST['next'])) 
{ 
    $a=$_POST['a']; 
} 
if(!isset($a)) 
{ 
    $a=0; 
} 
include('connection.php'); 
mysql_query("INSERT INTO answers (username,qid, option) 
VALUES ($username,a-1,'$_POST('option'))"); 

$sql1="SELECT * FROM exam1 LIMIT 1 OFFSET $a"; 
$result=mysql_query($sql1); 
echo "<form method='post' action='quiz.php'>"; 
while ($row = mysql_fetch_array($result)) 
{ 
    echo $row['question']. "<br/>"; 
    echo "<input type='radio' value='optiona' name='option'>" .$row['optiona']; 
    echo "<input type='radio' value='optionb' name='option'>" .$row['optionb']; 
    echo "<input type='radio' value='optionc' name='option'>" .$row['optionc']; 
    echo "<input type='radio' value='optiond' name='option'>" .$row['optiond']; "<br/>"; 
} 
$c=$a-1; 
$b=$a+1; 
echo "<input type='hidden' value='$c' name='a'>"; 
echo "<input type='submit' name='previous' value='previous'> "; 
echo "<input type='hidden' value='$b' name='a'>"; 
echo "<input type='submit' name='next' value='next'> "; 
echo "<input type='reset' name='reset' value='Reset'>"; 
echo "</form>"; 

?>

+0

Pouvez-vous être plus précis quant à l'endroit où se produit l'erreur? Bien que je vois un dans la cinquième déclaration d'écho dans la boucle while, où il y a un point-virgule (;) au lieu d'un point (.). Vous voulez concaténer ces chaînes que vous voyez :) Aussi, je vous recommande de ne pas utiliser l'écho comme ça, mais simplement quitter php comme ça: '?>', Tapez votre code HTML, puis entrez à nouveau comme php MrHug

Répondre

2

Vous devez étudier la syntaxe PHP de base. $_POST n'est pas une fonction. C'est an array. par exemple.

$var = $_POST['var']; 
      ^-- ^--- note the bracketing. 

Même si le code n'a pas fonctionné, vous seriez ouverts à SQL injection attacks.

+0

"Vous devez étudier la syntaxe PHP de base", et apprendre à lire les journaux d'erreurs. – daniloisr

2

Big big atention! J'espère que c'est juste une note de code de test finale!

Votre code est Injecter ici vulnérablement $a=$_POST['a'];

Je vous conseille de le remplacer par celui-ci $a= filter_input(INPUT_POST, 'a', FILTER_SANITIZE_STRING); c'est un échappé d'attaques!

J'espère que cela vous aidera

Questions connexes