webForumDet fria alternativet

Tillbaka till rätt sida...

PHP

6 svar · 308 visningar · startad av jeme

Medlem sedan mars 200518 inlägg
Frågan#1

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 &lt;br&gt; och ett nytt stycke blir då alltså &lt;br&gt;&lt;br&gt;.</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!");
		      } 
		    
			 			  
	     ?>
Medlem sedan juli 20023 617 inlägg
#2

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");
Medlem sedan nov. 20041 740 inlägg
#3

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.

Medlem sedan mars 200518 inlägg
#4

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?

Medlem sedan juli 20023 617 inlägg
#5

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.

Medlem sedan mars 200518 inlägg
#6

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

Medlem sedan juni 20006 031 inlägg
#7

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!

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)