Gå til innhold

Feil i forum sql/php


Anbefalte innlegg

Heisann, jeg og en kompis holder på med et mafia script, der kom vi over forumet som vi fant en feil på.

 

Det som er feil er at om en skal poste en ny post så blir ikke posten postet.

 

Her er php coden:


<?php
$forum_get_threads = 'gen_forum';
$forum_get_replies = 'gen_forum_svar';
$nosticky = $SQL->query("SELECT * FROM `$forum_get_threads` WHERE `sticky`='nei' AND `slettet`='nei'");
$issticky = $SQL->query("SELECT * FROM `$forum_get_threads` WHERE `sticky`='ja' AND `slettet`='nei'");
$stickyimg = "<img src=\"grafikk/sticky.png\" alt=\"Sticky\">";

if($div->level($id) >= 2 && !empty($_GET['tom'])){
	$SQL->query("UPDATE `gen_forum` SET `slettet`='ja' WHERE `slettet`='nei' AND `sticky`='nei'");
	$div->redirect('index.php?valg=genforum','1');
}

if(isset($_POST['slettmerk']) && $div->level($id) >= 2){
	$ids = $_POST['slettid'];
	echo $ids;
	if(empty($ids)){
		//$div->redirect('index.php?valg=genforum','0');
	} else {
		foreach($ids AS $ID){
			$SQL->query("UPDATE `gen_forum` SET `slettet`='ja' WHERE `id`='$ID'");
		}
	}
}

if($div->level($id) >= 2){
?>

<form action="" method="post">
<? } ?>
<table>
<tr>
	<th colspan="<? if($div->level($id) >= 2){ echo '5'; } else { echo '4'; } ?> ">Generelt forum</th>
</tr>
<tr>
	<th>Tittel</th>
	<th>Skrevet av</th>
	<th>Lest</th>
	<th>Siste svar</th>
	<? if($div->level($id) >= 2){ ?><th>Slett</th><? } ?></tr>
<?php
while($sticky = mysql_fetch_object($issticky)){
	echo "\n\t<tr>\n\t\t<td class=\"sticky\">".$stickyimg." <a href=\"index.php?valg=genforumles&id=".$sticky->id."\" title=\"Les tråden ".$sticky->tittel."\">".$sticky->tittel."</td>\n\t\t<td class=\"sticky\"><a href=\"index.php?valg=visprofil&bruker=".addslashes($sticky->skrevetav)."\" title=\"Vis profil\">".addslashes($sticky->skrevetav)."</a><br><small>".$sticky->dato."</small></td>\n\t\t<td class=\"sticky\">Kommer</td>\n\t\t<td class=\"sticky\">kommer</td>";
	if($div->level($id) >= 2){
		echo "\n\t\t<td class=\"sticky\"><input type=\"checkbox\" name=\"slettid[]\" value=\"".$sticky->id."\">";
	}
	echo "\n</tr>";
}
while($nos = mysql_fetch_object($nosticky)){
	echo "\n\t<tr>\n\t\t<td><a href=\"index.php?valg=genforumles&id=".$nos->id."\" title=\"Les tråden ".$nos->tittel."\">".$nos->tittel."</td>\n\t\t<td><a href=\"index.php?valg=visprofil&bruker=".addslashes($nos->skrevetav)."\" title=\"Vis profil\">".addslashes($nos->skrevetav)."</a><br><small>".$nos->dato."</small></td>\n\t\t<td>Kommer</td>\n\t\t<td>kommer</td>";
	if($div->level($id) >= 2){
		echo "\n\t\t<td><input type=\"checkbox\" name=\"slettid[]\" value=\"".$sticky->id."\">";
	}
	echo "\n</tr>";
}
?>
<tr>
	<td colspan="<? if($div->level($id) >= 2){ echo '5'; } else { echo '4'; } ?> ">
		<a href="index.php?valg=skrivtrad&forum=gen" title="Lag et emne" class="submit">Opprett emne</a> - 
		<a href="index.php?valg=minetrader" title="Mine aktive emner" class="submit">Mine aktive tråder</a>
		<? if($div->level($id) >= 2){ ?>
		<br>
		<a href="index.php?valg=genforum&tom=ja" title="Tøm forum" class="submit">Tøm forum</a> -
		<input type="submit" name="slettmerk" value="Slett merkede" class="submit">
		<? } ?>
		</td>
</tr>
</table>
<? if($div->level($id) >= 2){ ?>
</form>
<? } ?>

 

Post tråd

 

 

<?php
$forum = addslashes($_GET['forum']);
$sql2 = $SQL->query("SELECT * FROM `brukere` WHERE `id`='$id'");
$r2 = mysql_fetch_object($sql2);

if($forum == "gen"){
	$for = addslashes($r2->gjeng);
} elseif($forum == "ot"){
	$for = "ot";
} elseif($forum == "generelt"){
	$for = "generelt";
} elseif($forum = "gen_forum"){
	$for = "Du skriver i Generelt Forum";
} else {
	$div->redirect('index.php','0');
}

echo $for;

if(isset($_POST['skriv'])){
	$qrysperr = $SQL->query("SELECT * FROM `sperrer` WHERE `id`='$id' AND `sperre`='forum'");
	$sprerow = mysql_fetch_object($qrysperr);
	$venter = $sprerow->neste - $time;
	$neste = $time + 120;

	echo $for;

	if($sprerow->neste > $time && $div->level($id) == 1){
		echo "Du må vente <span id=\"vent\">$venter</span> sekunder før du kan svare/skrive på forumet igjen!";
	} elseif(empty($_POST['tittel']) || empty($_POST['tekst'])){
		echo "Du må fylle ut alle felt!";
	} else {
		$sql1 = sprintf("INSERT INTO `gen_forum` SET `tittel`=%s, `skrevetav`=%s, `tekst`=%s, `slettet`=%s, `sticky`=%s, `dato`=%s, `forum`=%s", $sec->qs($_POST['tittel']), $sec->qs($bruker), $sec->qs($_POST['tekst']), $sec->qs('nei'), $sec->qs($_POST['stick']), $sec->qs($dato), $sec->qs($for));
		$SQL->query($sql1); // or die('Error: '.mysql_error());
		$SQL->query("INSERT INTO `sperrer` SET `id`='$id', `sperre`='forum', `neste`='$neste'");
		echo "Tråden er opprettet!";
	}
}
$out = NULL;
$out = "\n<form action=\"index.php?valg=skrivtrad&forum=".$_GET['forum']."\" method=\"post\">\n\t<table>\n\t\t<tr>\n\t\t\t<th colspan=\"2\">Opprett tråd</th>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>Tittel:</td>\n\t\t\t<td><input type=\"text\" name=\"tittel\" class=\"input\"></td>\n\t\t</tr>\n\t\t";
if($div->level($id) >= 2){
	$out .= "\n\t\t<tr>\n\t\t\t<td>Sticky:</td>\n\t\t\t<td><input type=\"radio\" name=\"stick\" value=\"ja\">Ja -<input type=\"radio\" name=\"stick\" value=\"nei\">Nei</td>\n\t\t</tr>";
}
$out .= "\n\t\t<tr>\n\t\t\t<td>Tekst:</td>\n\t\t\t<td><textarea name=\"tekst\" cols=\"35\" rows=\"8\" class=\"textarea\"></textarea></td>\n\t\t</tr>";
$out .= "\n\t\t<tr>\n\t\t\t<td><input type=\"submit\" name=\"skriv\" value=\"Skriv\" class=\"submit\"></td>\n\t\t\t<td><a href=\"index.php?valg=genforum&akt=vis\" title=\"Vis Forum\">Vis Forum</a></td>\n\t\t</tr>";
$out .= "\n\t</table>\n</form>";
echo $out;
?>

 

Database Greiene :p

 

--
-- Tabellstruktur for tabell `gen_forum`
--

CREATE TABLE IF NOT EXISTS `gen_forum` (
 `id` bigint(255) NOT NULL auto_increment,
 `tittel` varchar(255) collate latin1_general_ci NOT NULL,
 `skrevetav` varchar(255) collate latin1_general_ci NOT NULL,
 `dato` varchar(255) collate latin1_general_ci NOT NULL,
 `tekst` mediumtext collate latin1_general_ci NOT NULL,
 `sticky` enum('ja','nei') collate latin1_general_ci NOT NULL,
 `slettet` enum('ja','nei') collate latin1_general_ci NOT NULL,
 `sisteav` varchar(255) collate latin1_general_ci NOT NULL,
 `sistedato` varchar(255) collate latin1_general_ci NOT NULL,
 `lest` bigint(255) NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ;

--
-- Dataark for tabell `gen_forum`
--


-- --------------------------------------------------------

--
-- Tabellstruktur for tabell `gen_forum_svar`
--

CREATE TABLE IF NOT EXISTS `gen_forum_svar` (
 `id` bigint(255) NOT NULL auto_increment,
 `svarid` bigint(255) NOT NULL,
 `skrevetav` varchar(255) collate latin1_general_ci NOT NULL,
 `dato` varchar(255) collate latin1_general_ci NOT NULL,
 `tekst` mediumtext collate latin1_general_ci NOT NULL,
 `slettet` enum('ja','nei') collate latin1_general_ci NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;

--
-- Dataark for tabell `gen_forum_svar`
--

 

 

Det var alle tingene innenfor forumet.

Endret av maggaz
Lenke til kommentar
Videoannonse
Annonse

Slik jeg ser det har du vell ikke koblet til en database? da er det ikke rart det ikke funker. Du må jo først koble php filen opp mot en database for at du skal kunne vise innlegget etterpå.

 

EDIT: Om du ikke har gjort dette/ikke vet hvordan så er det vell egentlig pointless å lage mafia script, siden mye av det som er i et mafia spill må jobbe opp mot en database.

Endret av SniKaZ
Lenke til kommentar

Det er kobla opp til en database da...

 

Ja, det er flott.

Men post hele scriptet, ikke kun det som viser forumet. Blir mye lettere å hjelpe, da.

 

 

Hva mener du med det? Det er hele scriptet til forumet.

 

Du trenger ikke mer enn det?

Lenke til kommentar

Hva mener du med det? Det er hele scriptet til forumet.

 

Du trenger ikke mer enn det?

Hvis koden du postet er hele "forumet" er det ikke rart det ikke fungerer. Vet du i det hele tatt hva den koden gjør? Har du skrevet den selv?

 

 

 

Det er ikke jeg som har coda, det er en venn av meg.

Lenke til kommentar

Det er ikke jeg som har coda, det er en venn av meg.

Da spør du vennen din pent hvor resten av koden er. Det du har postet er kun en liten del av koden for å vise tråder, samt avgjøre om de er annonseringer (sticky) eller ikke. Den har ingenting med lagring av nye innlegg å gjøre.

Lenke til kommentar

Ifølge han er det hele coden, han coda den selv og han sier det er en liten feil en plass men han finner ikke det ut, så jeg vet ikke.

Så innleggene blir lagret i en database?

 

EDIT: Du har jo ingen INSERT INTO og sånt i den koden der, så ser ikke helt hvordan de forum innleggene du legger inn skal bli lagret.

 

Til dere som kan litt mer en meg, er det noe i hele tatt i den koden der som faktisk har noe med å lagre innlegg?

Endret av SniKaZ
Lenke til kommentar

Her er skriv tråd coden.

 

 

<?php
$forum = addslashes($_GET['forum']);
$sql2 = $SQL->query("SELECT * FROM `brukere` WHERE `id`='$id'");
$r2 = mysql_fetch_object($sql2);

if($forum == "gen"){
	$for = addslashes($r2->gjeng);
} elseif($forum == "ot"){
	$for = "ot";
} elseif($forum == "generelt"){
	$for = "generelt";
} elseif($forum = "gen_forum"){
	$for = "Du skriver i Generelt Forum";
} else {
	$div->redirect('index.php','0');
}

echo $for;

if(isset($_POST['skriv'])){
	$qrysperr = $SQL->query("SELECT * FROM `sperrer` WHERE `id`='$id' AND `sperre`='forum'");
	$sprerow = mysql_fetch_object($qrysperr);
	$venter = $sprerow->neste - $time;
	$neste = $time + 120;

	echo $for;

	if($sprerow->neste > $time && $div->level($id) == 1){
		echo "Du må vente <span id=\"vent\">$venter</span> sekunder før du kan svare/skrive på forumet igjen!";
	} elseif(empty($_POST['tittel']) || empty($_POST['tekst'])){
		echo "Du må fylle ut alle felt!";
	} else {
		$sql1 = sprintf("INSERT INTO `gen_forum` SET `tittel`=%s, `skrevetav`=%s, `tekst`=%s, `slettet`=%s, `sticky`=%s, `dato`=%s, `forum`=%s", $sec->qs($_POST['tittel']), $sec->qs($bruker), $sec->qs($_POST['tekst']), $sec->qs('nei'), $sec->qs($_POST['stick']), $sec->qs($dato), $sec->qs($for));
		$SQL->query($sql1); // or die('Error: '.mysql_error());
		$SQL->query("INSERT INTO `sperrer` SET `id`='$id', `sperre`='forum', `neste`='$neste'");
		echo "Tråden er opprettet!";
	}
}
$out = NULL;
$out = "\n<form action=\"index.php?valg=skrivtrad&forum=".$_GET['forum']."\" method=\"post\">\n\t<table>\n\t\t<tr>\n\t\t\t<th colspan=\"2\">Opprett tråd</th>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>Tittel:</td>\n\t\t\t<td><input type=\"text\" name=\"tittel\" class=\"input\"></td>\n\t\t</tr>\n\t\t";
if($div->level($id) >= 2){
	$out .= "\n\t\t<tr>\n\t\t\t<td>Sticky:</td>\n\t\t\t<td><input type=\"radio\" name=\"stick\" value=\"ja\">Ja -<input type=\"radio\" name=\"stick\" value=\"nei\">Nei</td>\n\t\t</tr>";
}
$out .= "\n\t\t<tr>\n\t\t\t<td>Tekst:</td>\n\t\t\t<td><textarea name=\"tekst\" cols=\"35\" rows=\"8\" class=\"textarea\"></textarea></td>\n\t\t</tr>";
$out .= "\n\t\t<tr>\n\t\t\t<td><input type=\"submit\" name=\"skriv\" value=\"Skriv\" class=\"submit\"></td>\n\t\t\t<td><a href=\"index.php?valg=genforum&akt=vis\" title=\"Vis Forum\">Vis Forum</a></td>\n\t\t</tr>";
$out .= "\n\t</table>\n</form>";
echo $out;
?>

Lenke til kommentar

Her er skriv tråd coden.

 

 

<?php
$forum = addslashes($_GET['forum']);
$sql2 = $SQL->query("SELECT * FROM `brukere` WHERE `id`='$id'");
$r2 = mysql_fetch_object($sql2);

if($forum == "gen"){
	$for = addslashes($r2->gjeng);
} elseif($forum == "ot"){
	$for = "ot";
} elseif($forum == "generelt"){
	$for = "generelt";
} elseif($forum = "gen_forum"){
	$for = "Du skriver i Generelt Forum";
} else {
	$div->redirect('index.php','0');
}

echo $for;

if(isset($_POST['skriv'])){
	$qrysperr = $SQL->query("SELECT * FROM `sperrer` WHERE `id`='$id' AND `sperre`='forum'");
	$sprerow = mysql_fetch_object($qrysperr);
	$venter = $sprerow->neste - $time;
	$neste = $time + 120;

	echo $for;

	if($sprerow->neste > $time && $div->level($id) == 1){
		echo "Du må vente <span id=\"vent\">$venter</span> sekunder før du kan svare/skrive på forumet igjen!";
	} elseif(empty($_POST['tittel']) || empty($_POST['tekst'])){
		echo "Du må fylle ut alle felt!";
	} else {
		$sql1 = sprintf("INSERT INTO `gen_forum` SET `tittel`=%s, `skrevetav`=%s, `tekst`=%s, `slettet`=%s, `sticky`=%s, `dato`=%s, `forum`=%s", $sec->qs($_POST['tittel']), $sec->qs($bruker), $sec->qs($_POST['tekst']), $sec->qs('nei'), $sec->qs($_POST['stick']), $sec->qs($dato), $sec->qs($for));
		$SQL->query($sql1); // or die('Error: '.mysql_error());
		$SQL->query("INSERT INTO `sperrer` SET `id`='$id', `sperre`='forum', `neste`='$neste'");
		echo "Tråden er opprettet!";
	}
}
$out = NULL;
$out = "\n<form action=\"index.php?valg=skrivtrad&forum=".$_GET['forum']."\" method=\"post\">\n\t<table>\n\t\t<tr>\n\t\t\t<th colspan=\"2\">Opprett tråd</th>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>Tittel:</td>\n\t\t\t<td><input type=\"text\" name=\"tittel\" class=\"input\"></td>\n\t\t</tr>\n\t\t";
if($div->level($id) >= 2){
	$out .= "\n\t\t<tr>\n\t\t\t<td>Sticky:</td>\n\t\t\t<td><input type=\"radio\" name=\"stick\" value=\"ja\">Ja -<input type=\"radio\" name=\"stick\" value=\"nei\">Nei</td>\n\t\t</tr>";
}
$out .= "\n\t\t<tr>\n\t\t\t<td>Tekst:</td>\n\t\t\t<td><textarea name=\"tekst\" cols=\"35\" rows=\"8\" class=\"textarea\"></textarea></td>\n\t\t</tr>";
$out .= "\n\t\t<tr>\n\t\t\t<td><input type=\"submit\" name=\"skriv\" value=\"Skriv\" class=\"submit\"></td>\n\t\t\t<td><a href=\"index.php?valg=genforum&akt=vis\" title=\"Vis Forum\">Vis Forum</a></td>\n\t\t</tr>";
$out .= "\n\t</table>\n</form>";
echo $out;
?>

Det der kan ikke vere hele koden, om det er det, så mangler dere mye.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...