Kanske en dum rubrik, men kom inte på något bättre till detta. Hej, Det var som du sa, och jag flyttade slut mås-vingen till slutet av php-koden och då blir det inte dubbla poster.tomma poster till databasen
Nu till min fråga(problem) det är så att jag har en sida som heter post.php som jag skriver en rubrik,text och namn i och postar till databasen (allt okej), och sedan har jag en sida med dåligt namn bloggny.php som jag hämtar och läser det som jag postade i post.
Min tanke var att jag skulle skriva i post och trycka på submit.knappen och komma direkt till bloggny, men då får jag bara fram id och datum på inlägget. Så jag har lagt in vanliga länkar på dessa sidor så att jag skall kunna posta mitt medd. och sedan klicka på länken och komma till bloggny, men då kommer problemet att jag får fram både mitt riktiga medd. och en tom post med endast id och datum.
Det verkar som varje gång jag uppdatera sidan eller trycker på länken så kommer det en tom post i databasen, hur gör jag för att lösa detta.
post.php
<?php
// ===========================================================================================
//
if (isset($_POST['submit'])) {
}
// -------------------------------------------------------------------------------------------
//
// Create a new database object, we are using the MySQLi-extension.
//
//
$mysqli = new mysqli('localhost', 'anders', 'user64', 'blogg');
if (mysqli_connect_errno()) {
echo "Connect failed: ".mysqli_connect_error()."<br>";
}
$title= $_POST['title'];
$text = $_POST['text'];
$forfattare = $_POST['forfattare'];
$datum = date('Y-m-d H-i-s');
$query = "INSERT INTO blogg SET title='$title ', text='$text' , forfattare='$forfattare' , datum='$datum'" or die(mysqli_error());
$result = $mysqli->query($query, MYSQLI_USE_RESULT);
$result = array($result);
if ($mysqli->error) {
try {
throw new Exception("MySQL error $mysqli->error <br> Query:<br> $query", $msqli->errno);
} catch(Exception $e ) {
echo "Error No: ".$e->getCode(). " - ". $e->getMessage() . "<br >";
echo nl2br($e->getTraceAsString());
}
}
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/*
if (!$mysqli->query("INSERT INTO blogg SET title='$title ', text='$text' , forfattare='$forfattare' , datum='$datum'")) {
printf("Errormessage: %s\n", $mysqli->error);
}
*/
$mysqli->close();
// if($result) echo "<p>Gick bra, att posta!</p>";
// else echo "<p>Det var problem!</p>";
?>
<form method="post" action="post.php" name="matain" onSubmit="return skicka_OnClick();">
<p>
Titel:<br>
<input type="text" name="title" id="title" size="25" />
</p>
Text:<br>
<textarea name="text" rows="5" cols="30"></textarea>
</p>
Författare:<br>
<input type="text" name="forfattare" id="forfattare" size="25" />
</p>
<p>
<input type="submit" name="submit" value="Posta inlägg!" />
</p>
</form>
<p>Läs nya meddelande</p>
<script language="JavaScript">
function skicka_OnClick() {
var title = document.matain.title.value;
var text = document.matain.text.value;
var forfattare = document.matain.forfattare.value;
if((title.length != 0) && (text.length != 0) && (forfattare.length != 0)) {
return true;
} else {
alert("Du glömde att fylla i Rubrik, Inlägg eller Författare");
return false;
}
}
</script>
och bloggny.php
<?php
// ===========================================================================================
// -------------------------------------------------------------------------------------------
//
// Create a new database object, we are using the MySQLi-extension.
$mysqli = new mysqli('localhost', 'anders', 'user64', 'blogg');
if (mysqli_connect_errno()) {
echo "Connect failed: ".mysqli_connect_error()."<br>";
exit();
}
// -------------------------------------------------------------------------------------------
//
$query = "SELECT * FROM blogg;";
$res = $mysqli->query($query)
or die("Could not query database");
echo "<p>Query={$query}</p><p>Antal inlägg som visas: {$res->num_rows}</p>";
// -------------------------------------------------------------------------------------------
//
$html = <<< EOD
<table border='1'>
<tr>
<th>Id</th>
<th>Titel</th>
<th>Text</th>
<th>Författare</th>
<th>Datum</th>
</tr><p>posta nytt</p>
EOD;
while($row = $res->fetch_object()) {
$html .= <<< EOD
<tr>
<td>{$row->id}</td>
<td>{$row->title}</td>
<td>{$row->text}</td>
<td>{$row->forfattare}</td>
<td>{$row->datum}</td>
</tr>
EOD;
}
$html .= "</table>";
echo $html;
$res->close();
// -------------------------------------------------------------------------------------------
//
$mysqli->close();
exit;
echo "posta nytt"
?>Sv: tomma poster till databasen
Ser ut som att varje gång du laddar sidan så skrivs det till databasen på grund av att när du kollar om submit är satt så stänger du if satsen innan du kör koden.
if (isset($_POST['submit'])) {
}
Den sista } klammern borde vara efter den koden du bara vill köra ifall submit är satt.Sv:tomma poster till databasen
Men försökte ändra till att posta och komma till bloggny direkt, men då blir det bara tomt. Men kollar vidare på detta.