Håller på att skapa en nyhetssida. Prblemet jag har är att jag vill att om skribenten inte anger en url för en bild skall det bli en standard url som läggs in i databasen automatiskt. Felet jag får med nedanstående kod är att så fort jag öppnar sidan läggs en nyhet in med bara en bild och datum. Varför?
$title = $_POST['title'];
$text = $_POST['text'];
$picture = $_POST['picture'];
$alt = $_POST['alt'];
if (empty($title)) {
echo "<b>Fyll i titel!</b><br>";
}
else
if (empty($text))
{
echo "<b>Ange text!</b><br>";
}
if (empty($picture))
{
$picture = 'pics/div/swaf.jpg';
}
else
{
$picture = $_POST['picture'];
}
{
$res = mysql_select_db($mysql_database);
$datum = date("Y-m-d");
$laggTill = "INSERT INTO nyheter (title, text, date, picture, alt) VALUES ('$title', '$text', '$datum', '$picture', '$alt')";
mysql_query($laggTill) or die("Det gick inte att lägga till information!");
mysql_close($conn);
print("Information lades framgångsrikt till i databasen!");
print("<hr noshade size=1 color=#000000>");
}
Det som händer om du kör den filen, är att om titeln är tom hostar den till att du skall fylla i titel och går vidare och så vidare. Det finns inga stopp.
Ett exempel är:
if (empty($title)) {
$_SESSION[felmeddelande] = '<b>Fyll i titel!</b>';
header("Location: form.php");
exit;
}
Raderna:
if (empty($title)) {
echo "<b>Fyll i titel!</b><br>";
}
else
if (empty($text))
{
echo "<b>Ange text!</b><br>";
}
är lite galna. Ta bort else.
För att ange ett standardvärde, så är det ju samma manöver som
Har testat de ändringar du föreslagit men får fortfarande samma fel. Så fort jag öppnar sidan med koden så läggs en post in i databasen trotts att fält är tomma och att skribenten inte sparat posten. Tar jag bort picture raderna helt fungerar det som det skall iövrigt.
Nja, har du verkligen utgått från mina exempel? Tror inte det.
Det som jag skrivit är exempel och inte helt applicerbara utan en del förändringar av grundkoden. Men då jag inte har all kod och ser ditt upplägg blir det svårt.
Felet i din kod ovan är att det inte finns stopp ifall något av formulärfälten är tomma.
Prova t.ex. att skriva så här för varje formulärpost, jag använder "alt" som exempel:
if (empty($_POST['alt']))
{
echo "FEL!";
exit;
}
Nu kommer skriptet att stanna om något formulärfält är tomt.
Steg 2 är att hitta på något som skall göras ifall fältet är tomt, och det ersätter du "exit" med sen.
Hmm..lurade migsjälv lite. Hade missat exit men tabellen i databasen tog inte in tomma rader förutom på picture därav fungerade det hyfsat ok när jag inte hade picture med. Tackar för hjälpen.
259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25