Avatar billede xbobby Nybegynder
30. juli 2003 - 10:45 Der er 11 kommentarer og
2 løsninger

data fra inputfelter skal lægges i database sql

Hej med jer.

Jeg har brug for at få data fra inputfelter i en almindelige form lagt i en database (SQL), hvordan gør jeg det?

Lad os sige at databasen er oprettet og forbindelsen til nettet er ok og kontakt til databasen er ok..

Vi kunne kalde databasen for ’quiz’, tabellen for ’test’ og lad os sige at der er tre kolonner, som vi kunne kalde for ’svar1’, ’svar2’, ’svar3’.

Hvordan gør jeg det på den nemmeste og bedste måde?
Avatar billede medions Nybegynder
30. juli 2003 - 10:45 #1
www.netcafe.dk <- der står hvordan du gør under PHP/MySQL!

//>Rune
Avatar billede avminarm Juniormester
30. juli 2003 - 11:04 #2
prøv at ser på www.mbn.dk - der er en begynder guide til MySQL - den er rigtig god :-)

Rune>> tror du ikke du mener www.webcafe.dk ;o)
Avatar billede medions Nybegynder
30. juli 2003 - 11:11 #3
avmianrm> Hehe, jov, webcafe.dk ;o)Ø

//>Rune
Avatar billede repsac Nybegynder
30. juli 2003 - 11:33 #4
SQL-forespørgslen:
INSERT INTO test ('svar1', 'svar2', 'svar3') VALUES('hundehvalp', 'solur', '9000 mugne bananer')

Så bliver de tre værdier 'hundehvalp', 'solur',... indsat på henholdsvis feltet 'svar1', feltet 'svar2' og feltet 'svar3'...
- der er også andre måder at gøre det på, men denne måde (med brug af VALUES) foretrækker jeg :)
Avatar billede xbobby Nybegynder
30. juli 2003 - 13:50 #5
Til respac
Hvordan laver du koblingen mellem det du skriver og så inputfelterne?
Avatar billede macane Nybegynder
30. juli 2003 - 19:33 #6
lad os antage du har 1 form med 3 input felter i.
Din svar form side

//svarform.html//
<form method="POST" action="svar.php">
<input type="text" name="svar1" size="20">
<input type="text" name="svar2" size="20">
<input type="text" name="svar3" size="20">
<input type="submit" value="Send" name="send">
</form>

//svar.php//
<?
$svar1 = $_POST['svar1'];
$svar2 = $_POST['svar2'];
$svar3 = $_POST['svar3'];
$sql = mysql_query("INSERT INTO test ('svar1', 'svar2', 'svar3') VALUES('$svar1', '$svar2', '$svar3')")
?>

php overfører data i $_POST['varnavn'] og $_GET['varnavn']

Håber det kan hjælpe dig
Med Venlig Hilsen
Christan
Avatar billede repsac Nybegynder
30. juli 2003 - 21:31 #7
Husk så i øvrigt at lave www.php.net/addslashes på dit input, så brugerne ikke kan fifle med SQL-forespørgslen :)
Avatar billede xbobby Nybegynder
31. juli 2003 - 15:52 #8
Jeps så lykkedes det jeg endte op med at bruge denne her sql sætning:

$insertSQL = "update test set svar1='$svar1', svar2='$svar2', svar3='$svar3' where id = 1";

Som jeg ser det så er der to der har gjort at jeg fandt frem til løsningen og det er respac (kontakten til databasen) og macane (Forbindelsen mellem inputfelterne og databasen), så hvad med at I slog halv skade og fik 30 point hver? 

I skal have tak for hjælpen - for nu køre det rigtigt godt! :-)
Avatar billede xbobby Nybegynder
31. juli 2003 - 15:57 #9
Til respac
Gider du gi mig en kort dansk forklaring til hvordan jeg skal beskytte mine inputfelter :-)
Avatar billede repsac Nybegynder
31. juli 2003 - 23:17 #10
Velbekomme :)

Forestil dig en SQL-forespørgsel som følgende:
SELECT * FROM userauth WHERE username = '$username' AND password = '$password'
Derpå kunne man se om det lykkedes at hive noget ud af databasen eller ej, og dermed om brugeren der forsøger at logge ind har lov til det -- dvs. om brugernavn og kodeord er rigtigt...
Men(!) hvis jeg nu skriver
' OR '' = '
Så vil SQL-forespørgslen være:
SELECT * FROM userauth WHERE username = '$username' AND password = '' OR '' = ''
... og da det altid gælder at '' = '' så vil jeg kunne logge ind...

Hvis man bruger addslashes på det input man får fra brugeren bliver "farlige" tegn (i dette tilfælde ') "escape'et", dvs. der bliver sat et \ foran, hvilket "neutraliserer" tegnet... hvis man havde brugt addslashes i ovenstående eksempel vil SQL-forespørgslen se således ud:
SELECT * FROM userauth WHERE username = '$username' AND password = '\' OR \'\' = \''
... og da kodeordet givetvis ikke er  \' OR \'\' = \'  så er alt jo godt...

Forståeligt?
- I hope so :)
Avatar billede xbobby Nybegynder
01. august 2003 - 10:19 #11
Da jeg ikke har fået nogen vilde indvendinger fra repac og macane klasker jeg 30 point af sted til hver af jer :-)
Avatar billede xbobby Nybegynder
01. august 2003 - 10:23 #12
Tak for dit udførlige svar repsac - det er klar snak :-)
Avatar billede avminarm Juniormester
01. august 2003 - 10:38 #13
men tag lige et kig på mbn.dk alligvel - der er altså ok hvis man er begynder ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester