Just nu i M3-nätverket
Gå till innehåll

Nyhetsscript


Accipiter

Rekommendera Poster

Hejsan!

Har fått lite bukt på PHP nu :)

Gjort en sida och så. Fast jag skulle vilja ha ett nyhetsscript på sidan. Någon som har något att rekommendera?

 

Länk till kommentar
Dela på andra webbplatser

Nu sitter jag och gör ett nyhetsscript själv, eller försöker i alla fall. Och så har jag kommit till den delen då jag ska posta allt till min databas och har skrivit såhär:

 

if($_POST["user"] == "nyhet"){

$sql = "INSERT INTO nyheter (user,news,posted) VALUES($user, $nyhet, NOW())";

$insert = mysql_query($sql)or die(mysql_error());

}

 

Och då gnäller den med felmeddelanden.

Vad är felet i den koden?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Du har några fel i din kod.

Ett är att du inte har omslutit din data i SQL-frågan med '-tecken.

Ett annat är att du använder dig av det gamla åtkomstsättet, och inte med $_POST som man ska (vilket du faktiskt även gör i ett fall).

 

Så här ska koden se ut:

if ($_POST["user"] == "nyhet") {
$sql = "INSERT INTO nyheter (user,news,posted) VALUES('" . addslashes($_POST["user"]) . "', '" . addslashes($_POST["nyhet"]) . "', NOW())";
$insert = mysql_query($sql) or die(mysql_error());
}

 

Läs mer om varför man ska använda addslashes() under punkt två här:

//eforum.idg.se/viewmsg.asp?EntriesId=392579#392588

 

 

Länk till kommentar
Dela på andra webbplatser

Det blir fortfarande samma error när jag försöker, av någon konstig anledning.

 

Den säger såhär när jag försöker öppna saken i IE:

"Notice: Undefined index: user in C:\Program\Apache Group\Apache2\htdocs\nyhet.php on line 23"

 

[inlägget ändrat 2003-04-13 17:53:35 av Accipiter]

Länk till kommentar
Dela på andra webbplatser

Nja, som du ser är är det en notis, alltså inte ett riktigt fel.

 

Antingen kan du stänga av notices i början av skriptet med:

error_reporting (E_ALL ^ E_NOTICE);

 

Eller så kan du fixa det som orsakar det, vilket oftast är exempelvis en associativ matris (som i detta fall) vilken inte innehåller det index som angivits.

Om du på rad 23 har $_POST["user"] exempelvis, men inte har skickat med något fält "user", så kommer den klaga.

Ändra då detta till en if-sats med isset():

if (isset($_POST["user"]) && $_POST["user"] == "nyhet") ...

eller ignorera felet mha ett @-tecken:

if (@$_POST["user"] == "nyhet") ...

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...