// Kolla om användaren tippat förut
$i = 0;
$sql = "SELECT COUNT(*) FROM spel_allsv2007 WHERE user_id='{$_SESSION['sess_user_id']}' AND match_id='{$_POST['match_id'][$i]}'";
$result = mysql_query($sql);
if (mysql_result($result, 0) > 0) {
$error[] = 1;
$i++;
}
Frågan#1
Försöker få till en formulärkontroll så att användaren endast kan skicka formuläret en gång.
Med denna kod får jag inga felmeddelanden. Det går dock att lägga in tips hur många gånger som helst.
Tanken är att kontrollen skall se om user_id har tippat på match_id om inte skall tipset läggas till.
Bif koden:
Kontrollen har jag lagt på rad 17 och error_list på rad 35.
<?php
session_start(); // Alltid överst på sidan
include "conn.php"; // Databasanslutningen
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_match_id'])){
header("Location: test.php");
exit;
}
if (!isset($_SESSION['sess_user_id'])){
header("Location: index.php");
exit;
}
// Kolla om tippat förut
$sql = "SELECT COUNT(*) FROM spel_allsv2007 WHERE user_id='{$_SESSION['sess_user_id']}' AND match_id='{$_POST['match_id'][$i]}'";
$result = mysql_query($sql);
if (mysql_result($result, 0) > 0) {
$error[] = 1;
}
if (!isset($error)){
if (isset($_POST['submit'])) {
$i = 0;
foreach($_POST['match_id'] as $match) {
$sql = "INSERT INTO spel_allsv2007 (user_id, match_id, tips) VALUES('{$_SESSION['sess_user_id']}','{$_POST['match_id'][$i]}','{$_POST['tips_'.$_POST['match_id'][$i]]}')";
mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
$i++;
}
header("Location: user_tips.php");
exit;
}
}
$error_list[1] = "Du har redan tippat på den här eller dessa matcher!";
if (isset($error)) {
foreach ($error as $err) {
echo $error_list[$err]."<br />";
}
}
?>
<form action="spel.php" method="post" name="submit">
<?PHP
$sql = "SELECT * FROM allsv2007 WHERE date > CURRENT_TIMESTAMP() AND date = ' {$_SESSION['sess_date']} '" or die(mysql_error());
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
$date[$row['date']][] = array($row['match_id'], $row['matcher']);
}
if (isset($date) && !empty($date)) {
echo '<table>';
foreach ($date as $day => $value){
echo '<tr>';
echo '<td></td>';
echo '<td>' . '<b>' . $day. '</b>' . '</td>';
echo '<td align="center"><b>1</b></td>';
echo '<td align="center"><b>X</b></td>';
echo '<td align="center"><b>2</b></td>';
echo '</tr>';
foreach ($value as $game)
{
echo '<tr>';
echo '<td align ="right">'. $game[0].'.</td>';
echo '<td>'. $game[1].'</td>';
echo '<td><input type="radio" value="1" name="tips_'.$game[0].'"></td>
<td><input type="radio" value="X" name="tips_'.$game[0].'"></td>
<td><input type="radio" value="2" name="tips_'.$game[0].'"><input type="hidden" name="match_id[]" value="'.$game[0].'"></td>';
echo '</tr>';
}
}
echo '</table>';
}else{
echo 'Du kan inte spela på denna match, Spelstopp har inträtt!';
}
?>
<input type="submit" name="submit" value="Skicka">
</form>