Shiibopi Skrevet 22. mars 2009 Del Skrevet 22. mars 2009 Jeg har laget et skjema som skal skrive info inn i en tabell: <form method="post" action="reg_sjekk.php" name="reg"> <input type="text" name="LAGBruker" /> Brukernavn<br /> <input type="password" name="LAGPassord" /> Passord<br /> <input type="text" name="LAGAdresse" /> Adresse<br /> <input type="text" name="LAGFnavn" /> Fornavn<br /> <input type="text" name="LAGEnavn" /> Etternavn<br /> <input type="submit" value="Registrer " /> Og i filen reg_sjekk.php har jeg: <?php //Connect til db mysql_connect("localhost", "blablabla", "blablabla") or die("Could not connect: " . mysql_error()); mysql_select_db("kurs5606"); // Legger til brukeren i databasen $mysql_sporring = "insert into BAWLKunde set Brukernavn='$POST_LAGBruker', Passord='$POST_LAGPassord', Fornavn='$POST_LAGFnavn', Etternavn='$POST_LAGEnavn' Adresse='$POST_LAGAdresse"; $resultat = mysql_query($mysql_sporring); // Sjekker resultatet if($resultat) { echo("Din bruker ble opprettet, du kan nå logge inn!"); } else { echo("Noe gikk galt!"); } ?> Når jeg kjører dette får jeg kun feilmeldingen jeg har satt inn der: "Noe gikk galt". Men i BAWLKunde tabellen min har jeg en rad som heter KNr som er primær nøkkel, og skal oppdateres med +1 for hver bruker som legges til, må denne også legges til i insert setninga? Noen som har noen pointere til hva jeg gjør feil, og muligens noe jeg kan gjøre for å forbedre? Lenke til kommentar
nomore Skrevet 22. mars 2009 Del Skrevet 22. mars 2009 Du henter du data i fra skjemaet feil, og derfor blir spørringen feil og du får ingen resultater(og dermed teksten 'Noe gikk galt!'). Se her for hvordan du skal hente data ut i fra skjemaet. Lenke til kommentar
Warz Skrevet 22. mars 2009 Del Skrevet 22. mars 2009 Det er ikke $POST_LAGBruker, skriv: $_POST['LAGBruker'] Lenke til kommentar
Warz Skrevet 22. mars 2009 Del Skrevet 22. mars 2009 (endret) Dessutten tviler jeg på at spørringen er riktig. Prøv heller INSERT INTO table_name VALUES (value1, value2, value3,...) I ditt tilfellet: $mysql_sporring = "INSERT INTO BAWLKunde (Brukernavn, Passord, Fornavn, Etternavn, Adresse)VALUES ('$_POST['LAGBruker']', '$_POST['LAGPassord']', '$_POST['LAGFnavn']', '$_POST['LAGEnavn']', '$_POST['LAGAdresse']'"; $resultat = mysql_query($mysql_sporring); EDIT: Ser at du også ønsker et stigende KNr... Dette setter du enkelt i mysql databasen. Sett KNr feltet til å ha "auto_increment", og dette vil bli gjort automatisk når du kjører spørringen over... Endret 22. mars 2009 av Warz Lenke til kommentar
Shiibopi Skrevet 22. mars 2009 Forfatter Del Skrevet 22. mars 2009 Takk for svar Får fortsatt en feil på spørringen: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING Har prøvd å søke litt rundt etter svar for hva som forårsaker det, men hittil har jeg ikke funnet ut av noe. Feilen ligger i det Warz ga meg tidligere, men regner med at det er noe med koden min som er problemet:P $mysql_sporring = "INSERT INTO BAWLKunde (Brukernavn, Passord, Fornavn, Etternavn, Adresse) VALUES ('$_POST['LAGBruker']', '$_POST['LAGPassord']', '$_POST['LAGFnavn']', '$_POST['LAGEnavn']', '$_POST['LAGAdresse']')"; Dette er det som ligger på linja der feilen er. Lenke til kommentar
nercix Skrevet 22. mars 2009 Del Skrevet 22. mars 2009 Kan også nemnast at her er det rett fram for SQL-injection. Lenke til kommentar
Shiibopi Skrevet 22. mars 2009 Forfatter Del Skrevet 22. mars 2009 Sjekka ut hva et SQL-Injection er.. og jeg får se om jeg gidder å finne ut av noe som skal forhindre det, men for øyeblikket lar jeg det være siden det bare er en enkel skoleoppgave. Klarte å løse problemet til slutt selv: $lagbruker = $_POST['LAGBruker']; $lagpassord = $_POST['LAGPassord']; $lagfnavn = $_POST['LAGFnavn']; $lagenavn = $_POST['LAGEnavn']; $lagadresse = $_POST['LAGAdresse']; $mysql_sporring = "INSERT INTO BAWLKunde (Brukernavn, Passord, Fornavn, Etternavn, Adresse) VALUES ('$lagbruker','$lagpassord','$lagfnavn','$lagenavn','$lagadresse')"; Er ikke helt sikker på hva som var problemet, men nå fungerer det hvertfall. Lenke til kommentar
Warz Skrevet 22. mars 2009 Del Skrevet 22. mars 2009 Sorry, Det jeg gjorde går ikke helt nei, glemte at ' vil bryte ut... men det du har gjort nå er bra. Hvis du skal sikre mot SQL injection gjør slik: mysql_real_escape_string($lagbruker) f.eks burde du kunne endre koden slik (ikke at jeg har testa): $lagbruker = mysql_real_escape_string($_POST['LAGBruker']); $lagpassord = mysql_real_escape_string($_POST['LAGPassord']); $lagfnavn = mysql_real_escape_string($_POST['LAGFnavn']); $lagenavn = mysql_real_escape_string($_POST['LAGEnavn']); $lagadresse = mysql_real_escape_string($_POST['LAGAdresse']); Mer info her http://no2.php.net/mysql_real_escape_string Lenke til kommentar
OIS Skrevet 23. mars 2009 Del Skrevet 23. mars 2009 For å bruke arrays i streng parsing må du gjøre echo "slik {$arr['key']}"; Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå