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å.
12 svar · 384 visningar · startad av mr.mainline
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>
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å.
ojdå...men fortfarade samma fel.
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
samma fel!
ni kan testa på https://www.freddeholm.com/forum.php/
Får du ingen felutskrift om du lägger till en die-instruktion då?
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/
Jag kan iofs inte se att du någonstans kör funktionen matain()...
@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 . "')";
:)
Där var det :-) nu funkar det,man blir så blind på all kod :-)
funktionen matain, kommer från boken PHP 5 programering så man tycker den ska vara rätt.
Glöm inte att acceptera svar. :)
har jag ju gjort!