webForumDet fria alternativet

Det går inte att lägga till information i databasen

PHP

3 svar · 252 visningar · startad av FunTrix

Medlem sedan okt. 2003118 inlägg
Frågan#1

Hej!
jag har ett litet problem här där jag inte får det att fungera så att jag kan lägga till informationen som du fyller i formuläret i min databas, jag har kollat och kollat men kan inte hitta något fel, jag har även kollat värdena i databasen vilka stämmer överens med scriptet, så hjälp vad är det för fel?

<form method="POST" action="tipsa.php">
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Hemsidans
namn:*</font><br>
<input name="namn" type="text" size="45">
<br>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Hemsidans
adress: *<br>
<input name="adress" type="text" value="http://" size="45">
<br>
Kategori: (t.ex. nöje)*<br>
<input name="kategori" type="text" size="45">
<br>
Din e-mail: *<br>
<input name="mail" type="text" size="45">
<br>
<input type="submit" name="Submit" value="Skicka">
</font>
</form>

  \<?php if(empty($\_POST\['namn'\]))
		     $namn = "not set";
		  if(empty($\_POST\['adress'\]))   
	         $adress = "not set";
	      if(empty($\_POST\['kategori'\]))
	         $kategori = "not set";
	      if(empty($\_POST\['mail'\]))
	         $mail = "not set";
	
		  if(!empty($\_POST\['namn'\]))
		  {
			  $namn   = $\_POST\['namn'\];
			  $adress    = $\_POST\['adress'\];
			  $kategori  = $\_POST\['kategori'\];
			  $mail    = $\_POST\['mail'\];
			  
			  $connection = mysql_connect("localhost", "", "") or die("Kunde inte skapa koppling!");
		   
		  	  mysql_select_db("free61283") or die("Kunde inte välja databas");
		  
		   	  $laggTill = "INSERT INTO lankguidetips (namn, adress, kategori, mail) VALUES ('$namn', '$adress', '$kategori', '$mail')";
		  	  mysql_query($laggTill) or die("Det gick inte att lägga till information!");
		  
		      mysql_close($connection);
		      
		      print("Information lades framgångsrikt till i databasen!");
		      print("\<hr noshade size=1 color=#000000\>");
	      } 
	    
		 			  
     ?\>

jag har även en liten fråga gällande när man har fyllt i informationen och medelandet att det lagts till lr inte lagts till i databasen så försvinner allt under där man lagt php scriptet på sidan, finns det något sätt som man kan undvika detta på? för det känns rätt irreterande när delar av designen försvinner osv...

Medlem sedan mars 20025 907 inlägg
#2

Får du inget felmeddelande av något slag?

Medlem sedan juni 200032 967 inlägg
#3

Ett tips är också att ha mysql_error() i die-instruktionen så man kan få reda på eventuella fel från MySQL.

Edit: när du postar kod, använd [php]-taggar för att ge bättre läsbarhet.

Medlem sedan mars 20034 471 inlägg
#4

Re: Det går inte att lägga till information i databasen

Blir följande bättre?

//Lägg till näst sist i formen:
  <input type="hidden" name="test" value="1">
  //resten av formen

<?php
if(isSet($_POST['test'])) { 
   // din PHP-kod ovan
} // Stänger den yttersta if-satsen (mitt tillägg)
else print ("Inget skickat än!");
?>

Varför? Jo för att utesluta att du laddar sidan tipsa.php utan att ha fyllt i formen, exvis om allt detta ligger i samma fil, första gången sidan laddas, eller därför att du på något annat udda vis kommer till tipsa.php utan att ha passerat formifyllandet.

272 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)