webForumDet fria alternativet

Forum-script [går inte att skapa/spara ämnen]

PHP

20 svar · 1 026 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Försöker använda ett litet (gammalt) forum-script från phpsidan, men det verkar inte som att man kan skapa några ämnen.
Sidan bara uppdateras, "that´s it" liksom.

Tacksam för all hjälp.

newThread.php

<?php 
error_reporting(E_ALL);
	
	// Inkluderar funktionsfilen
	include ("functions.php");	
	
	// Om användaren inte är inloggad eller är avstängd ska man inte komma åt denna sidan!
	
	include ("config.php");
	$myStatus = mysql_db_query($myDatabase,"SELECT confirmed FROM McForum_users WHERE id = '$_COOKIE[userID]' AND confirmed = '0'") or die(mysql_error());

	if (!$_COOKIE['userID'])
	{ 
		header("Location: login.php"); 
		exit;
	}
	if (mysql_num_rows($myStatus) > 0)
	{
		header("Location: index.php"); 
		exit;		
	}
	
	if ($_GET['id']) $id = $_GET['id'];

	$headline = strip_tags($_POST['threadHeadline']);

	// Sparar inskriven tråd...
	if ($save)
	{ 
		include ("config.php");
	
	
		// Tittar om det finns en cookie lagrar med trådid, betyder att användaren skapade en ny tråd för 3 min sen
		// Måste stämma övverens med trådens ID
		if ($_COOKIE['threadID'] != $_POST['id'])
		{	
			mysql_db_query($myDatabase,"INSERT INTO McForum_thread (`head_id`,`id`,`first_id`,`headline`,`datum`,`by`,`views`) VALUES ('$id','','','$headline','".date("U")."','".$_COOKIE['userID']."','0')") or die(mysql_error());
		
			$tID = mysql_insert_id();
		
			mysql_db_query($myDatabase,"INSERT INTO McForum_awnsers (`head_id`,`thread_id`,`id`,`by`,`datum`,`headline`,`content`,`ip`) VALUES ('$id','".mysql_insert_id()."','','".$_COOKIE['userID']."','".date("Y-m-d H:i")."','$headline','".$_POST['message']."','".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
			mysql_db_query($myDatabase,"UPDATE McForum_thread SET first_id = '".mysql_insert_id()."' WHERE id = '$tID'") or die(mysql_error());
			
			// Läggen en cookie med id i två min
			setcookie("threadID", $_POST['id'], time()+2*60);
		}
		
			header("Location: viewForum.php?id=".$id."");
	}

	// Inkluderar huvudfilen
	include ("header.php");

	// Vi vill visa var i forumet vi befinner oss!
	echo showWhereWeAre($id,0,newThread);

	// Om användaren vill förhandsgranska
	if ($preview) showPreview($_POST['threadHeadline'],$_POST['message']);
	
	// Skriver ut form som fylls i av en konstig användare
	echo ("
		<form method=post action=".$_SERVER['PHP_SELF']." name=postThread onSubmit=\"return McCheckForm(this)\">
		<table width=100% cellpadding=1 cellspacing=1 border=0 bgcolor=#948E7F>
		<tr><td bgcolor=#FCFCFC>
		<table width=100% cellpadding=3 cellspacing=1 border=0 bgcolor=#FCFCFC>
		<tr bgcolor=#A0AAB3 class=phat><td height=23 align=left colspan=2>skapa ny tråd</td></tr>
		<tr><td width=150 bgcolor=#E4E8ED>Ämne:</td><td bgcolor=#ECEFF2><input type=text name=threadHeadline size=49 value='".$headline."'></td></tr>
		<tr><td width=150 bgcolor=#E4E8ED valign=top>Meddelande:</td><td bgcolor=#ECEFF2>
		<input type=button value=B style=\"font-weight:bold; width: 25px\" onClick=McCode('[b]fet[/b]');>
		<input type=button value=i style=\"font-style:italic; width: 25px\" onClick=McCode('[i]kursivt[/i]');>
		<input type=button value=u style=\"text-decoration: underline; width: 25px\" onClick=McCode('[u]understruket[/u]');>
		<input type=button value=Citat style=\"width: 50px\" onClick=McCode('[citat]citat[/citat]');>
		<input type=button value=Kod style=\"width: 37px\" onClick=McCode('[kod]kodsnutt[/kod]');>
		<input type=button value=Img style=\"width: 37px\" onClick=McCode('[img]bildlänk[/img]');><br>
		<table width=100% cellpadding=0 cellspacing=0 border=0>
		<tr><td height=10></td></tr>
		<tr><td width=300><textarea name=message cols=66 rows=15>".$_POST['message']."</textarea></td><td align=center valign=middle>
	"); 
	
		echo showSmilies(); 
	
	echo ("
		</td></tr>
		</table><br>
		</td></tr>
		<tr><td bgcolor=#E4E8ED></td><td bgcolor=#E4E8ED><input type=submit value='Skapa tråd' name=save style=\"width: 110px\"> <input type=submit value='Förhandsgranska' name=preview style=\"width: 110px\"></td></tr>
		</table>
		</td></tr>
		</table>
		<input type=hidden name=id value=".$id.">
		</form>
	");
	
	// Inkluderar fotfilen
	include ("footer.php");

?>

Följande fel genereras:

Notice: Undefined index: id in /home/kunder/*****/forum/newThread.php on line 23

Notice: Undefined variable: save in /home/kunder/*****/forum/newThread.php on line 28

Warning: Cannot modify header information - headers already sent by (output started at /home/kunder/*****/forum/newThread.php:23) in /home/kunder/*****/forum/header.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /home/kunder/*****/forum/newThread.php:23) in /home/kunder/*****/forum/header.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at /home/kunder/*****/forum/newThread.php:23) in /home/kunder/*****/forum/header.php on line 6

Warning: Cannot modify header information - headers already sent by (output started at /home/kunder/*****/forum/newThread.php:23) in /home/kunder/*****/forum/header.php on line 7
.......
Medlem sedan juli 20023 617 inlägg
#2

Prova att kommentera bort error_reporting.

Medlem sedan juni 20006 031 inlägg
#3

Notisen på rad 24 är nog för att du inte kollar om $_GET['id'] finns.

if ($_GET['id']) $id = $_GET['id'];

testa att ändra till

if (isset($_GET['id'])) $id = $_GET['id'];

Att du får varningar beror nog på att functions.php skriver något i webbläsaren, kanske bara ett mellanslag.

Medlem sedan juli 20041 271 inlägg
#4

fiddler skrev:

Prova att kommentera bort error_reporting.

Hade det så från början. Fick inga felmeddelanden då, men det fungerade inte då heller.

Pedda skrev:

Notisen på rad 24 är nog för att du inte kollar om $_GET['id'] finns.

if ($_GET['id']) $id = $_GET['id'];

testa att ändra till

if (isset($_GET['id'])) $id = $_GET['id'];

Att du får varningar beror nog på att functions.php skriver något i webbläsaren, kanske bara ett mellanslag.

Hjälpte tyvärr inte att ändra till:

if (isset($_GET['id'])) $id = $_GET['id'];

:(

Har bifogat functions.php.

Medlem sedan juli 20041 271 inlägg
#5

Hur lyckats att lösa de flesta felmeddelandena (tror jag).
Nu är det bara följande fel kvar:

Notice: Undefined variable: preview in /home/*****/forum/newThread.php on line 61

Line 61:

// Om användaren vill förhandsgranska
	if ($preview) showPreview($_POST['threadHeadline'],$_POST['message']);

Men det fungerar fortfarande inte att posta/spara ämnet, sidan uppdateras fortfarande men inget sparas.

Medlem sedan juli 20041 271 inlägg
#6

Har bifogat newThread.php samt functions.php.
Är tacksam ifall någon kan hjälpa mig att hitta felet.

Medlem sedan juli 20041 271 inlägg
#7

Ingen som vet?

Medlem sedan mars 200741 inlägg
#8

Felet beror på att interpretatorn uppfattar variabeln $preview som en blixt från klar himmel.

Var någonstans sätts/uppstår denna variabel tidigare? Du kanske glömt inkludera något?

Medlem sedan juli 20041 271 inlägg
#9

$preview är en funktion som hämtas från functions.php, mer än så vet jag tyvärr inte.

Medlem sedan okt. 20001 285 inlägg
#10

Verkar som om att när du ska posta el förhandsgranska så används javascript. Har du kollat så allt är ok där?

<form.. ..onSubmit="return McCheckForm(this)">

<input type="submit" value="Förhandsgranska" name="preview" style="width: 110px" />
Medlem sedan juli 20041 271 inlägg
#11

Fuel skrev:

Verkar som om att när du ska posta el förhandsgranska så används javascript, såg det i formtaggen. Har du kollat så allt är ok där?

onSubmit="return McCheckForm(this)"

<input type="submit" value="Förhandsgranska" name="preview" style="width: 110px">

Hmm, ok... har inte tänkt på det.
Alla script/funktioner finns i filen functions.php.
Är lite osäker på hur jag "felsöker" det hela, är därför tacksam för hjälp.

Har bifogat filerna.

Medlem sedan okt. 20001 285 inlägg
#12

du... prova byta ut

if ($preview) showPreview($_POST['threadHeadline'],$_POST['message']);

till

if ($_POST['preview']) { 
    showPreview($_POST['threadHeadline'],$_POST['message']); 
}
Medlem sedan juli 20041 271 inlägg
#13

Fuel skrev:

du... prova byta ut

if ($preview) showPreview($_POST['threadHeadline'],$_POST['message']);

till

if ($_POST['preview']) { 
    showPreview($_POST['threadHeadline'],$_POST['message']); 
}

Kanon! Det fungerade.
Nu går det att förhandsgrandska inlägget utan problem.
Tyvärr går det fortfarande inte att posta/spara inlägget. Sidan bara uppdateras.

Medlem sedan juli 20041 271 inlägg
#14

Här är scriptet/formuläret som ska posta/spara inlägget.

<?php 
error_reporting(E_ALL);
	
	// Inkluderar funktionsfilen
	include ("functions.php");	
	
	// Om användaren inte är inloggad eller är avstängd ska man inte komma åt denna sidan!
	
	include ("config.php");
	$myStatus = mysql_db_query($myDatabase,"SELECT confirmed FROM McForum_users WHERE id = '$_COOKIE[userID]' AND confirmed = '0'") or die(mysql_error());

	if (!$_COOKIE['userID'])
	{ 
		header("Location: login.php"); 
		exit;
	}
	if (mysql_num_rows($myStatus) > 0)
	{
		header("Location: index.php"); 
		exit;		
	}
	
	//if ($_GET['id']) $id = $_GET['id'];
                if (isset($_GET['id'])) $id = $_GET['id'];

	$headline = strip_tags($_POST['threadHeadline']);

	// Sparar inskriven tråd...
	//if ($save)
                if (isset($save))
	{ 
		include ("config.php");
	
	
		// Tittar om det finns en cookie lagrar med trådid, betyder att användaren skapade en ny tråd för 3 min sen
		// Måste stämma övverens med trådens ID
		if ($_COOKIE['threadID'] != $_POST['id'])
		{	
			mysql_db_query($myDatabase,"INSERT INTO McForum_thread (`head_id`,`id`,`first_id`,`headline`,`datum`,`by`,`views`) VALUES ('$id','','','$headline','".date("U")."','".$_COOKIE['userID']."','0')") or die(mysql_error());
		
			$tID = mysql_insert_id();
		
			mysql_db_query($myDatabase,"INSERT INTO McForum_awnsers (`head_id`,`thread_id`,`id`,`by`,`datum`,`headline`,`content`,`ip`) VALUES ('$id','".mysql_insert_id()."','','".$_COOKIE['userID']."','".date("Y-m-d H:i")."','$headline','".$_POST['message']."','".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
			mysql_db_query($myDatabase,"UPDATE McForum_thread SET first_id = '".mysql_insert_id()."' WHERE id = '$tID'") or die(mysql_error());
			
			// Läggen en cookie med id i två min
			setcookie("threadID", $_POST['id'], time()+2*60);
		}
		
			header("Location: viewForum.php?id=".$id."");
	}

	// Inkluderar huvudfilen
	include ("header.php");

	// Vi vill visa var i forumet vi befinner oss!
	//echo showWhereWeAre($id,0,newThread);
                if (isset($showWhereWeAre)) echo $id,0,newThread;

	// Om användaren vill förhandsgranska

if ($_POST['preview']) { 
    showPreview($_POST['threadHeadline'],$_POST['message']); 
}
	
	// Skriver ut form som fylls i av en konstig användare
	echo ("
		<form method=post action=".$_SERVER['PHP_SELF']." name=postThread onSubmit=\"return McCheckForm(this)\">

		<table width=100% cellpadding=1 cellspacing=1 border=0 bgcolor=#948E7F>
		<tr><td bgcolor=#FCFCFC>
		<table width=100% cellpadding=3 cellspacing=1 border=0 bgcolor=#FCFCFC>
		<tr bgcolor=#A0AAB3 class=phat><td height=23 align=left colspan=2>skapa ny tråd</td></tr>
		<tr><td width=150 bgcolor=#E4E8ED>Ämne:</td><td bgcolor=#ECEFF2><input type=text name=threadHeadline size=49 value='".$headline."'></td></tr>
		<tr><td width=150 bgcolor=#E4E8ED valign=top>Meddelande:</td><td bgcolor=#ECEFF2>
		<input type=button value=B style=\"font-weight:bold; width: 25px\" onClick=McCode('[b]fet[/b]');>
		<input type=button value=i style=\"font-style:italic; width: 25px\" onClick=McCode('[i]kursivt[/i]');>
		<input type=button value=u style=\"text-decoration: underline; width: 25px\" onClick=McCode('[u]understruket[/u]');>
		<input type=button value=Citat style=\"width: 50px\" onClick=McCode('[citat]citat[/citat]');>
		<input type=button value=Kod style=\"width: 37px\" onClick=McCode('[kod]kodsnutt[/kod]');>
		<input type=button value=Img style=\"width: 37px\" onClick=McCode('[img]bildlänk[/img]');><br>
		<table width=100% cellpadding=0 cellspacing=0 border=0>
		<tr><td height=10></td></tr>
		<tr><td width=300><textarea name=message cols=66 rows=15>".$_POST['message']."</textarea></td><td align=center valign=middle>
	"); 
	
		echo showSmilies(); 
	
	echo ("
		</td></tr>
		</table><br>
		</td></tr>
		<tr><td bgcolor=#E4E8ED></td><td bgcolor=#E4E8ED><input type=submit value='Skapa tråd' name=save style=\"width: 110px\"> <input type=submit value='Förhandsgranska' name=preview style=\"width: 110px\"></td></tr>
		</table>
		</td></tr>
		</table>
		<input type=hidden name=id value=".'$id'.">
		</form>
	");
	
	// Inkluderar fotfilen
	include ("footer.php");

?>
Medlem sedan okt. 20001 285 inlägg
#15

Det beror på att.. du saknar $_POST framför dina variabler som du tar emot från formuläret

if (isset($_POST['id'])) { $id = $_POST['id']; }
$headline = strip_tags($_POST['threadHeadline']);
if (isset($_POST['save'])) {

Jag förmodar att ID skickas via formuläret..

Medlem sedan juli 20041 271 inlägg
#16

Uppskattar verkligen din hjälp.
Fick följande fel nu när jag postade formuläret:

Notice: Undefined index: threadID in /home/kunder/*****/newThread.php on line 67
Unknown column 'content ' in 'field list'

Har detta nu:

<?php 
error_reporting(E_ALL);
	
	// Inkluderar funktionsfilen
	include ("functions.php");	
	
	// Om användaren inte är inloggad eller är avstängd ska man inte komma åt denna sidan!
	
	include ("config.php");
	$myStatus = mysql_db_query($myDatabase,"SELECT confirmed FROM McForum_users WHERE id = '$_COOKIE[userID]' AND confirmed = '0'") or die(mysql_error());

	if (!$_COOKIE['userID'])
	{ 
		header("Location: login.php"); 
		exit;
	}
	if (mysql_num_rows($myStatus) > 0)
	{
		header("Location: index.php"); 
		exit;		
	}
	
if (isset($_POST['id'])) { $id = $_POST['id']; } 
$headline = strip_tags($_POST['threadHeadline']); 
if (isset($_POST['save'])) {

		include ("config.php");
	
	
		// Tittar om det finns en cookie lagrar med trådid, betyder att användaren skapade en ny tråd för 3 min sen
		// Måste stämma övverens med trådens ID
		if ($_COOKIE['threadID'] != $_POST['id'])
		{	
			mysql_db_query($myDatabase,"INSERT INTO McForum_thread (`head_id`,`id`,`first_id`,`headline`,`datum`,`by`,`views`) VALUES ('$id','','','$headline','".date("U")."','".$_COOKIE['userID']."','0')") or die(mysql_error());
		
			$tID = mysql_insert_id();
		
			mysql_db_query($myDatabase,"INSERT INTO McForum_awnsers (`head_id`,`thread_id`,`id`,`by`,`datum`,`headline`,`content`,`ip`) VALUES ('$id','".mysql_insert_id()."','','".$_COOKIE['userID']."','".date("Y-m-d H:i")."','$headline','".$_POST['message']."','".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
			mysql_db_query($myDatabase,"UPDATE McForum_thread SET first_id = '".mysql_insert_id()."' WHERE id = '$tID'") or die(mysql_error());
			
			// Läggen en cookie med id i två min
			setcookie("threadID", $_POST['id'], time()+2*60);
		}
		
			header("Location: viewForum.php?id=".$id."");
	}

	// Inkluderar huvudfilen
	include ("header.php");

	// Vi vill visa var i forumet vi befinner oss!
	//echo showWhereWeAre($id,0,newThread);
                if (isset($showWhereWeAre)) echo $id,0,newThread;

	// Om användaren vill förhandsgranska
	//if ($preview) showPreview($_POST['threadHeadline'],$_POST['message']);

if ($_POST['preview']) { 
    showPreview($_POST['threadHeadline'],$_POST['message']); 
}
	
	// Skriver ut form som fylls i av en konstig användare
	echo ("
		<form method=post action=".$_SERVER['PHP_SELF']." name=postThread onSubmit=\"return McCheckForm(this)\">

		<table width=100% cellpadding=1 cellspacing=1 border=0 bgcolor=#948E7F>
		<tr><td bgcolor=#FCFCFC>
		<table width=100% cellpadding=3 cellspacing=1 border=0 bgcolor=#FCFCFC>
		<tr bgcolor=#A0AAB3 class=phat><td height=23 align=left colspan=2>skapa ny tråd</td></tr>
		<tr><td width=150 bgcolor=#E4E8ED>Ämne:</td><td bgcolor=#ECEFF2><input type=text name=threadHeadline size=49 value='".$headline."'></td></tr>
		<tr><td width=150 bgcolor=#E4E8ED valign=top>Meddelande:</td><td bgcolor=#ECEFF2>
		<input type=button value=B style=\"font-weight:bold; width: 25px\" onClick=McCode('[b]fet[/b]');>
		<input type=button value=i style=\"font-style:italic; width: 25px\" onClick=McCode('[i]kursivt[/i]');>
		<input type=button value=u style=\"text-decoration: underline; width: 25px\" onClick=McCode('[u]understruket[/u]');>
		<input type=button value=Citat style=\"width: 50px\" onClick=McCode('[citat]citat[/citat]');>
		<input type=button value=Kod style=\"width: 37px\" onClick=McCode('[kod]kodsnutt[/kod]');>
		<input type=button value=Img style=\"width: 37px\" onClick=McCode('[img]bildlänk[/img]');><br>
		<table width=100% cellpadding=0 cellspacing=0 border=0>
		<tr><td height=10></td></tr>
		<tr><td width=300><textarea name=message cols=66 rows=15>".$_POST['message']."</textarea></td><td align=center valign=middle>
	"); 
	
		echo showSmilies(); 
	
	echo ("
		</td></tr>
		</table><br>
		</td></tr>
		<tr><td bgcolor=#E4E8ED></td><td bgcolor=#E4E8ED><input type=submit value='Skapa tråd' name=save style=\"width: 110px\"> <input type=submit value='Förhandsgranska' name=preview style=\"width: 110px\"></td></tr>
		</table>
		</td></tr>
		</table>
		<input type=hidden name=id value=".'$id'.">
		</form>
	");
	
	// Inkluderar fotfilen
	include ("footer.php");

?>
Medlem sedan okt. 20001 285 inlägg
#17

du verkar sakna "content" fältet i din databas tabell

vad händer om du låter

if (isset($_POST['id'])) { $id = $_POST['id']; }

gå tillbaka till

if (isset($_GET['id'])) { $id = $_GET['id']; }

Är ganska trött nu, så jag vet inte om jag hänger med i felsökningen :)

Medlem sedan juli 20041 271 inlägg
#18

Fuel skrev:

du verkar sakna "content" fältet i din databas tabell

Fick bara det felet efter jag hade klistrat in den koden du skrev innan du postade...

if (isset($_POST['id'])) { $id = $_POST['id']; } 
$headline = strip_tags($_POST['threadHeadline']); 
if (isset($_POST['save'])) {

Ändrade tillbaka igen och ändarde till koden ovan. Felmeddelandet försvann, men formuläret sparas fortfarande inte. :(

Medlem sedan juli 20041 271 inlägg
#19

Fuel skrev:

du verkar sakna "content" fältet i din databas tabell

vad händer om du låter

if (isset($_POST['id'])) { $id = $_POST['id']; }

gå tillbaka till

if (isset($_GET['id'])) { $id = $_GET['id']; }

Är ganska trött nu, så jag vet inte om jag hänger med i felsökningen :)

Hände inte så mycket, tyvärr.
Samma sak som tidigare, sidan bara uppdateras men inget sparas.

Medlem sedan okt. 20001 285 inlägg
#20

ok .. måste sova lite nu , återkommer senare idag om det inte har löst sig :)

275 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)