Just nu i M3-nätverket
Jump to content

Nyhetsscript


Accipiter

Recommended Posts

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?

 

Link to comment
Share on other sites

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?

 

 

 

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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") ...

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...