webForumDet fria alternativet

skicka data till en databas

Databaser & SQL

3 svar · 253 visningar · startad av dude

Medlem sedan aug. 2002386 inlägg
Frågan#1

Hej!
Hur bär man sig åt för att skicka data, till en MySQL-databas, som har matats in via ett formulär på en php-sida??
Jag har alltid skrivit såhär:

$sql = "INSERT INTO gast SET 
             namn='$namn',
            efternamn='$efternamn',
            email='$email',
            inlagg='$inlagg',
           datum='$datum',
			 "; 
     if (@mysql_query($sql)) { 
	Tack & hej!
     } else { 
       echo("<P>Något gick snett" . 
            mysql_error() . "</P>"); 
     }

Men det fungerar tyvärr inte på mitt nya webhotell, supporten säger bara såhär:
din kod innehåller
specifikationer som slutade användas för över 1 år sedan på
uppdaterade och säkrade servrar.

ehh... ja, vad jag undrar är vad jag ska skriva för att få in datan i databasen... Skicka gärna med någon länk så jag kan läsa på om detta ämnet...

Medlem sedan dec. 200012 464 inlägg
#2
$sql = "INSERT INTO gast SET 
             namn='$namn',
            efternamn='$efternamn',
            email='$email',
            inlagg='$inlagg',
           datum='$datum'
			 "; 
     if (mysql_query($sql)) { 
	Tack & hej!
     } else { 
       echo("<P>Något gick snett" . 
            mysql_error() . "</P>"); 
     }

Det är alltid intressant att se ett (eventuellt) felmeddelande från databashanteraren.

Medlem sedan mars 20025 907 inlägg
#3

Antar att det är register_globals() som är avstängt på din nya server. För att komma åt värdena som postades via ett forumulär (med method="post") så får du skriva $_POST['email'] istället för $email. Skickar du datan med method="get" istället, så blir det $_GET['email'].

Det finns jobbiga brister i register_globals så det är antagligen därför det är avstängt. Läs länken ovan.

Medlem sedan mars 2001308 inlägg
#4

OBS det finns briser i koden ovan.

Man ska aldrig bara posta in något ifrån ett formulär rakt in i en databas. Man ber om problem då. Du måste göra en kontroll
på datan så att den inte innehåller något som inte ska postas till databasserver. t ex | samt '

annars kan du tillåta att vem som hällst läser ut data och publiserar på skärmen. ' tecken måste ersättas med dubbelsnuffe annars så kommer strängen att avslutas och angriparen kan ge andra komandon till servern.

287 ms totalt · 3 externa anrop · v20260731065814-full.eb2a8c97
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
161 ms — hämta tråd, inlägg och bilagor (db)