dudeMedlem sedan aug. 2002386 inlägg 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...
LarsGMedlem sedan dec. 200012 464 inlägg $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.
PeeerMedlem sedan mars 20025 907 inlägg 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.
lazatMedlem sedan mars 2001308 inlägg 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.