Titta på funktionen nl2br för radbryt (https://www.php.net)
För att skicka besökaren vidare kan du använda:
header("Location: grattis.php");
6 svar · 308 visningar · startad av jeme
Jag försöker göra en sida där man kan skriva in ett meddelande. Allt fungerar med själva inlägget men hur ska jag få den att gå till rätt sida när meddelandet har lagts till databasen? Sidan den ska till heter grattis.php och det här scriptet ligger på grattis_add.php.
Verkar hela upplägget dåligt får ni gärna ge förslag på bättre...
Har ni ytterligare tips på hur man får radbryt att bli radbryt tar jag gärna emot det med ;-)
Så här ser koden ut:
<p><b>Lägg in ett nytt grattis</b></p>
<hr noshade size="1" color="#cccccc">
<p>Vill ni göra ett radbryt skriver ni <br> och ett nytt stycke blir då alltså <br><br>.</p>
<hr noshade size="1" color="#cccccc">
<form method="POST" action="grattis_add.php">
<table width="100%">
<tr>
<td valign="top"><b>Datum</b><br/>
<input type="text" size="30" name="datum"><p/>
<b>Namn</b><br/>
<input type="text" size="30" name="namn"><p/>
<b>Rubrik</b><br/>
<input type="text" size="30" name="rubrik"><p/></td><td rowspan="2"><b>Text</b><br/>
<textarea cols="20" rows="12" name="text"></textarea><p/></td>
</tr>
<tr>
<td><input type="submit" size="30" value="Lägg till!"><p/></td>
</tr>
</table>
</form>
<?php if(empty($_POST['datum']))
$datum = "not set";
if(empty($_POST['namn']))
$namn = "not set";
if(empty($_POST['rubrik']))
$rubrik = "not set";
if(empty($_POST['text']))
$text = "not set";
if(!empty($_POST['datum']))
{
$datum = $_POST['datum'];
$namn = $_POST['namn'];
$rubrik = $_POST['rubrik'];
$text = $_POST['text'];
$connection = mysql_connect("localhost", "***", "***") or die("Kunde inte skapa koppling!");
mysql_select_db("***") or die("Kunde inte välja databas");
$laggTill = "INSERT INTO grattis (datum, namn, rubrik, text) VALUES ('$datum', '$namn', '$rubrik', '$text')";
mysql_query($laggTill) or die("Det gick inte att lägga till information!");
mysql_close($connection);
print("Information lades till i databasen!");
}
?>
Titta på funktionen nl2br för radbryt (https://www.php.net)
För att skicka besökaren vidare kan du använda:
header("Location: grattis.php");
Du skickar vidare besökaren med funktionen header();
header("Location: grattis.php");
Har ni ytterligare tips på hur man får radbryt att bli radbryt tar jag gärna emot det med ;-)
Testa med funktionen nl2br().
$text = nl2br($text);
/r Jaha. Det finns nackdelar med tabb-surfning. Man är inte alltid riktigt med i vad som händer i trådarna.
Nu är inte jag så haj på det här men vart ska jag lägga in header funktionen och vart i koden lägger jag in nl2br?
nl2br använder du när du plockat ut din text från databasen. Om du har texten i variabeln $text så skriver du:
$text = nl2br($text);
och sen skriver du ut den.
Header-funktionen lägger du in efter din mysql_close()-rad. Du får dock inte skriva ut något innan den raden så det vore bäst om du lägger php-koden före html-koden.
Jag får det här felmeddelandet när jag lägger in header functionen där...
Warning: Cannot modify header information - headers already sent by (output started at /customers/botkyrkabk.se/botkyrkabk.se/httpd.www/grattis/grattis_add.php:5) in /customers/botkyrkabk.se/botkyrkabk.se/httpd.www/grattis/grattis_add.php on line 59
fiddler skrev:
Du får dock inte skriva ut något innan den raden så det vore bäst om du lägger php-koden före html-koden.
Felmeddelandet får du pga att något skrivs ut på sidan innan header() precis som fiddler säger. Ingen html får skrivas ut innan!