webForumDet fria alternativet

Inlägg kommer inte med

PHP

8 svar · 261 visningar · startad av Webslave

Medlem sedan maj 2002647 inlägg
Frågan#1

Hej... en lite akut fråga:

På mitt hempulade forum så händer det ibland att en del inlägg inte kommer med... följande kod används för att lägga in den i MySQL:

<?PHP
session_start();

if(isset($_POST['submitpost'])){
	require("../../variables.php");
	
	require("../../get/checkUser.php");
	if($userCheck=="notok"){
		header("location: ../../?loc=error&reaason=notloggedin");
		exit;
	}
	else{

		$postText = htmlentities($_POST['postText']);
		$np = htmlentities($_POST['nowPlaying']);
		$date = date("Y-m-d H:i:s");

		$sql = "INSERT INTO forumposts(postTopicID,postDate,postPosterID,postText,postNowPlaying) VALUES('".$_POST['topicID']."','$date','".$_SESSION['yID']."','$postText','$np')";
		$result = mysql_query("$sql");

		$sql = "UPDATE forumtopics SET topicPosts = topicPosts+1, topicLastPostDate = '$date', topicLastPosterID = '".$_SESSION['yID']."' WHERE topicID = '".$_POST['topicID']."'";
		$result = mysql_query("$sql");

		$sql = "UPDATE forumforums SET forumPosts = forumPosts+1 WHERE forumID = '".$_POST['forumID']."'";
		$result = mysql_query("$sql");

		$sql = "UPDATE users SET uPosts = uPosts+1 WHERE uID = '".$_SESSION['yID']."'";
		$result = mysql_query("$sql");

  	mysql_close($connect);

	  header("location: ../../?loc=forum&forum=".$_POST['forumID']."&thread=".$_POST['topicID']);
  	exit;
	} 	
}
?>

Allt läggs till utom den första som ibland inte kommer med... några idéer?

Medlem sedan maj 2002647 inlägg
#2

Märkte även att saker som jag kopierat och lagt in i min textarea absolut inte vill med... hilfe?! Kan det vara några inställningar som spökar? Har aldrig haft dessa problem förut men har nu bytt webhotell så...

Medlem sedan mars 20032 667 inlägg
#3
$result = mysql_query("$sql");

bör på samtliga ställen vara:

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

Inga fnuttar runt $sql. Det skapas inget "returvärde" som du måste lägga i en variabel, samt att du får ett felmeddelande om något går snett, vilket underlättar att hitta ett fel.

Medlem sedan maj 2002647 inlägg
#4

har kört med:

$result = mysql_query("$sql");

... i 2 år och har aldrig märkt något konstigt med det... men jag testar och lägga till "or die()" så får vi se vad som händer och fötter

Medlem sedan mars 20032 667 inlägg
#5

Förlåt att jag hittade knasigheter i din kod, ska aldrig mer upprepa min hjälpsamhet. :moose

Medlem sedan maj 2002647 inlägg
#6

Men ojoj... här påpekade jag bara att det inte varit nå knas med det tidigare och så får man tummen ner... sucka. :P

Medlem sedan juni 20031 837 inlägg
#7

har ju ingen betydelse om du skriver
mysql_query("$sql");

eller
mysql_query($sql);

båda två motsvarar exakt samma sträng.

Medlem sedan maj 2002647 inlägg
#8

Okelidokeli... har nu lyckats fått fram ett felmeddelande:

You have an error in your SQL syntax near ''Oops... gl&ouml;mde bort det :\','')' at line 1

Raden den refererar till ser ut så här:

$sql = "INSERT INTO forumposts(postTopicID,postDate,postPosterID,postText,postNowPlaying) VALUES('".$_POST['topicID']."','$date','".$_SESSION['yID']."','$postText','$np')";

ibland kan "$np" vara tom för att användaren inte har fyllt i något... fältet är satt som varchar, not null i mysql.

Resten av koden ser ni högst upp.

Någon som ser något skumt?

Medlem sedan maj 2002647 inlägg
#9

Kom på mig själv... dum som jag är har jag inte addslashes på... (Sedan när folk skriver \ så händer sig queryn) får slänga in det och se vad som händer

276 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
142 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)