webForumDet fria alternativet

det lägger inte sig i db

12 svar · 384 visningar · startad av mr.mainline

mr.mainlineMedlem sedan feb. 2003777 inlägg
#1

Jag hittade ett paging system som jag la till mitt forum, och jag får inga felmeddelande med när jag fyller i formuläret så lägg det inte in i db.

<?php
					  
					  
function matain() {
$datum = date("Y-m-d H:i:s");
$länk = mysql_connect ("localhost", "******","*******");
$databas = mysql_select_db("******");
$namn = $_POST['namn'];
$inlagg = $_POST['inlagg'];
$epost = $_POST['email'];
$sql="INSERT INTO forum(namn,inlagg,email,datum) VALUES('$namn','$inlagg','$email','$datum')";
mysql_query("$sql");
mysql_close ($länk);
}
?>
<script language="JavaScript">
function skicka_OnClick() {
	var nam = document.matain.namn.value;
	var inl = document.matain.inlagg.value;
	var epo = document.matain.epost.value;	
	if((nam.length != 0) && (inl.length != 0) && (epo.length != 0)) {
		return true;
	} else {
		alert("Du glömde att fylla i Namn, Epost eller Inlägg");
		return false;
	}
}
</script>
<?
$con = mysql_connect("localhost","******","******") 
  or die("Error connecting to db<br>".mysql_error()); 
$db = mysql_select_db("******") 
  or die("Error selecting db<br>".mysql_error()); 
 
// Nu bestämmer vi antal per sida och kollar vi upp totala antalet 
$limit = 3; // Antal per sida 
$result = mysql_query("SELECT count(*) as count FROM forum") 
  or die("Error fetching number in DB<br>".mysql_error()); 
$row = mysql_fetch_array($result); 
$numrows = $row['count']; // Antal i databasen 
 
// Sedan kollar vi om startvariabeln är satt 
if (!isset($_GET['start']) || $_GET['start'] == "") 
  $start = 0; 
else 
  $start = $_GET['start']; 
 
// Då räknar vi ut hur många sidor det blev 
$pages = intval($numrows/$limit); 
if ($numrows%$limit) 
  $pages++; 
 
// Hämta länk till förstasidan och föregående sida 
if ($start > 0) { 
  $numlink = '<a href="?start=0">««</a> '; 
  $numlink .= '<a href="?start='.($start - $limit).'">«</a> '; 
} else { 
  $numlink = '«« '; 
  $numlink .= '« '; 
} 
 
// Hämta sidonummer 
for ($i = 1; $i <= $pages; $i++) { 
  $newoffset = $limit*($i-1); 
  if ($start == $newoffset) 
    $numlink .= '['.$i.'] '; 
  else 
    $numlink .= '<a href="?start='.$newoffset.'">'.$i.'</a> '; 
} 
 
// Hämta länk till nästa sida 
if ($numrows > ($start + $limit)) 
  $numlink .= '<a href="?start='.($start + $limit).'">»</a> '; 
else 
  $numlink .= '» '; 
 
// Hämta sista sidan 
if ($start != $newoffset) 
  $numlink .= '<a href="?start='.$newoffset.'">»»</a> '; 
else 
  $numlink .= '»»' ;
 
// Skriv ut sidorna 
echo $numlink ."<br>"; 
echo "<hr>";

 
// Nu kan vi hämta datan från databasen och skriva ut den 
$result = mysql_query("SELECT * FROM forum ORDER BY id DESC LIMIT ".$start.",".$limit."") 
  or die("Error fetching data<br>".mysql_error()); 
 
while ($row = mysql_fetch_array($result)){ 
echo nl2br($row['inlagg'] );
echo   "<h1><b>".$row['namn']."</b> ". $row['datum']."</h1>" ;
echo "<hr>";
   
}
mysql_close ($con);
?>

och så här ser formuläret ut:

<form method="post" action="forum.php" name="matain" onSubmit="return skicka_OnClick();">
<p>Namn:<br>
<input type="text" name="namn">
<br>
e-mail:<br>
<input type="text" name="epost">
<br>
Inlägg:<br>
<textarea name="inlagg" rows="8" cols="15"></textarea>
<br>
<br>
<input type="submit" name="nytt" value="< Skicka">
</form>

PeddaMedlem sedan juni 20006 032 inlägg
#2

I formuläret heter fältet epost
Sen gör du om:
$epost = $_POST['email'];
ska ju vara
$epost = $_POST['epost'];
Och när du lägger in i databasen kallar du den ju $email när den heter $epost.

Fixa detta och se om det funkar då.

mr.mainlineMedlem sedan feb. 2003777 inlägg
#3

ojdå...men fortfarade samma fel.

@ndersMedlem sedan juni 200032 969 inlägg
#4
mysql_query("$sql");

skall väl vara

mysql_query($sql);

Det är ju inte strängen $sql du ska exekvera, utan innehållet i variabeln $sql.

mvh

mr.mainlineMedlem sedan feb. 2003777 inlägg
#5

samma fel!
ni kan testa på https://www.freddeholm.com/forum.php/

@ndersMedlem sedan juni 200032 969 inlägg
#6

Får du ingen felutskrift om du lägger till en die-instruktion då?

mr.mainlineMedlem sedan feb. 2003777 inlägg
#7

nix,det ända som häder är att sidan laddas om, men inget nytt inlägg kommer,som sagt kolla på https://www.freddeholm.com/forum.php/

@ndersMedlem sedan juni 200032 969 inlägg
#8

Jag kan iofs inte se att du någonstans kör funktionen matain()...

QimenMedlem sedan juni 20015 009 inlägg
#9

@nders skrev:

mysql_query("$sql");

skall väl vara

mysql_query($sql);

Det är ju inte strängen $sql du ska exekvera, utan innehållet i variabeln $sql.

mvh

Även om det känns väldigt fel att göra på det sättet så ska det fungera, allt inom "" exekveras och därmed lär ju $sql också exekveras.

Men denna raden lär skapa en del problem:

('$namn','$inlagg','$email','$datum')

som bör vara:

('" . $namn . "','" . $inlagg . "','" . $email . "','" . $datum . "')";

:)

mr.mainlineMedlem sedan feb. 2003777 inlägg
#10

Där var det :-) nu funkar det,man blir så blind på all kod :-)

mr.mainlineMedlem sedan feb. 2003777 inlägg
#11

funktionen matain, kommer från boken PHP 5 programering så man tycker den ska vara rätt.

QimenMedlem sedan juni 20015 009 inlägg
#12

Glöm inte att acceptera svar. :)

mr.mainlineMedlem sedan feb. 2003777 inlägg
#13

har jag ju gjort!

141 ms totalt · 3 externa anrop · v20260731065814-full.7de19299
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)