jag har ett formulär som skickar data till en databas, men om jag skiver in ett inlägg och skickar iväg det och sen klickar på "uppdatera" i webläsaren så blir det dubbel inlägg,alltså två likadana inlägg, hur kommer jag runt det?
uppdaterar sidan
13 svar · 353 visningar · startad av mr.mainline
När du har lagt till i databasen så skickar du vidare till nästa sida med header location
Då slipper du risken att nån uppdaterar sidan.
får inte det att funka,har denna koden
mysql_query("INSERT INTO bedomning (datum, klass, bedomning, domare, handler, bild) VALUES ('$datum', '$klass', '$bedomning', '$domare', '$handler', '$bild') ");
header("Location: visa_kritik.php"); //skicka vidare
På vilket sätt fungerar det inte?
Felmeddelande?
nej inget fel meddelande, utan jag skickar vidare till visa_sidan.php,men får fortfarande dubbel inlägg när jag uppdaterar i webläsaren.
Kan vi få se lite mer kod?
visst kommer här.
<?php
$conn=mysql_connect("localhost", "******", "******");
mysql_select_db("******");
$datum = $_POST['datum'];
$klass = $_POST['klass'];
$bedomning = $_POST['bedomning'];
$domare = $_POST['domare'];
$handler = $_POST['handler'];
$bild = $_POST['bild'];
// lägg in värdena i databasen
mysql_query("INSERT INTO bedomning (datum, klass, bedomning, domare, handler, bild) VALUES ('$datum', '$klass', '$bedomning', '$domare', '$handler', '$bild') ");
header("Location: visa_kritik.php"); //skicka vidare
?>
<form method="post" action="bedomning.php" name="matain" onSubmit="return CheckForm();">
Datum:<br><input name="datum" type="text">
tex. 2005-06-02<br>
Klass:<br>
<input name="klass" type="text"><br>
Domare:<br><input name="domare" type="text"><br>
Bedömning:<br>
<textarea name="bedomning" cols="40" rows="10"></textarea>
<br>
Handler:<br><input name="handler" type="text"><br>
Bild:<br><input name="bild" type="text">
<strong>tex 1.jpg (filens namn)</strong><br>
<br>
<input name="submit" type="submit" value="Skicka">
</form><br>
<hr>
<?
//Hämta
$sql=("SELECT * FROM bedomning ORDER BY id DESC") or die("kunde inte hämta data från databasen");
$rs=mysql_query($sql, $conn) or die("kunde inte hämta från databasen");
//Funktioner
include("func.php");
// Starta tabellen
while($rad=mysql_fetch_array($rs)){
echo '<table width="100%" border="0" cellpadding="1" height="399">';
echo '<tr>';
echo'<td width="100%" height="395" valign="top">';
echo'<table width="100%" border="0">';
echo'<tr>';
echo'<td width="78%" height="146" valign="top">'.$rad['datum'].'<br><b>'.$rad['klass'].'</b><br><b> Domare:</b>'.$rad['domare'].'<br><br><b>Bedömning:</b><br><i>'. '<p>'.$rad['bedomning'].'</i></p></td>';
echo '<td width="22%"><img src=/ulrika/upload/'.$rad['bild'].'><br><i>Handler:</i> '.$rad['handler'].'</td>';
echo'</tr>';
echo'</table><br><hr>';
}
//Slut
?>
Edit
<?php
$conn=mysql_connect("localhost", "******", "******");
mysql_select_db("******");
if (isset($_POST['submit'])) {
$datum = $_POST['datum'];
$klass = $_POST['klass'];
$bedomning = $_POST['bedomning'];
$domare = $_POST['domare'];
$handler = $_POST['handler'];
$bild = $_POST['bild'];
// lägg in värdena i databasen
mysql_query("INSERT INTO bedomning (datum, klass, bedomning, domare, handler, bild) VALUES ('$datum', '$klass', '$bedomning', '$domare', '$handler', '$bild') ");
header("Location: visa_kritik.php"); //skicka vidare
exit; // du måste ha exit här
}
?>
Tänkte inte innan jag skrev, men nu ska det nog funka.
får bara en vit sida nu ,utan fel meddelande
Är det efter att du har klickat på submit som sidan blir vit?
Skickas du inte vidare till visa_kritik.php?
ja det är efter jag klickat på submit som sidan blir vit,nix jag skickas inte vidare,här är koden för visa_kritik.php
//Hämta
$sql=("SELECT * FROM bedomning ORDER BY id DESC") or die(mysql_error());
$rs=mysql_query($sql, $conn) or die("Err: SQL query");
//Funktioner
include("func.php");
while($rad=mysql_fetch_array($rs)){
echo '<table width="100%" border="0" cellpadding="1" height="399">';
//Skriv ut tabellen
echo '<tr>';
echo'<td width="99%" height="395" valign="top">';
echo'<table width="100%" border="0">';
echo'<tr>';
echo'<td width="78%" height="146" valign="top">'.$rad['datum'].'<br><b>'.$rad['klass'].'</b><br><b> Domare:</b>'. $rad['domare'].'<br><br><b>Bedömning:</b><br><em>'.$rad['bedomning'].'</em></td>';
echo '<td width="22%"><img src=/ulrika/upload/'.$rad['bild'].'><br><em>Handler:</em> '.$rad['handler'].'</td>';
echo'</tr>';
echo'</table><br>';
echo'<hr size "1">';
}
//Slut
?>
Felet måste ligga i bedomning.php
Förmodligen har du ett blanksteg eller liknande innan headern.
Kontrollera detta och försök igen.
Observera att inget får skrivas ut till webbläsaren innan headern, inte ens ett mellanslag.
det var felet,nu funkar det,tack ska du ha.