webForumDet fria alternativet

Felande variabler

6 svar · 467 visningar · startad av PollyJuice

PollyJuiceMedlem sedan mars 2006124 inlägg
#1

Återigen ett litet problem som jag inte begriper mig på. Jag försöker skapa en phpkod som hämtar data ur ett formulär och lägger in det i en databas. Jag har testat att skriva "INSERT INTO medlem VALUES ('a','b')" och det funkar alldeles utmärkt, men om jag försöker med följande:

<?php

	  $sig = $_POST["signatur"];
	  $med = $_POST["meddelande"];

       //Anslut till databas

	  $query = "INSERT INTO medlem(signatur, meddelande) VALUES ($sig, $med)";
	// Exekvera SQLsatsen och lagra resultatet i variabeln $result
	  $result = mysql_query($query);
	  
	//Avsluta databaskopplingen

?>

Varför hämtar den inte upp data ur variablerna? Ska tillägga att i formuläret så har textfälten id:na signatur respektive meddelande.

PollyJuiceMedlem sedan mars 2006124 inlägg
#2

Ändrade till

$query = "INSERT INTO medlem(signatur, meddelande) VALUES ('$sig','$med')";

och nu skriver den lydigt in i kolumnen signatur, men inte i kolumnen meddelande..?

spangoMedlem sedan juni 20008 205 inlägg
#3

Jag skulle misstänka att meddelande inte är ett textfält utan ett numeriskt fält, kan det månne stämma? Sen skulle jag rekommendera dig att tänka på vad som händer om någon slänger in t.ex. ett citationstecken i $sig eller $med. (Hint: Googla på "PHP SQL injection")

PollyJuiceMedlem sedan mars 2006124 inlägg
#4

signatur = text, meddelande = textarea i formuläret; båda är varchar i databasen

The_HulkMedlem sedan juni 20031 837 inlägg
#5

visa gärna lite av din html-kod.

Du har för övrigt placerat tråden i fel forum, Javascript istället för PHP.

/red
Innan du skriver in det i databasen kan du kontroller att du verkligen får de data du förväntar dig i dina variabler genom att skriva ut dem på sidan.

<?php

	  $sig = $_POST["signatur"];
	  $med = $_POST["meddelande"];

echo "sig: $sig, med: $med";

?>
PollyJuiceMedlem sedan mars 2006124 inlägg
#6

ja, jag har bett att den ska flyttas till php-delen :r

Så oerhört pinsamt detta är... jag upptäckte felet. I själva HTML-filen, hade jag skrivit

<input type="text" id="signatur" size="50" name=
"signatur" />

men

<textarea cols="70" rows="5" id="meddelande" name="textarea"></textarea>

!

Så fort jag bytt ut name="textarea" mot name="meddelande", så ordnade sig allt.

Tack för hjälpen, och tack Spango för tipset om sql injection - jag ska kolla upp det och se vad jag kan göra.

JojoxxMedlem sedan juni 20004 308 inlägg
#7

Tråden flyttad till PHP-forumet.

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)