Anders Moen Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Bare lurer på hva som er galt her. Jeg burde jo skjønne det selv nå, men jeg skjønner det bare ikke =/ <?php if (isset($_POST['submit'])) { $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("forum", $con); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $password = md5($password); $email = mysql_real_escape_string($_POST['email']); $name = mysql_real_escape_string($_POST['name']); $posts = "0"; $group = "Member"; $sql = "INSERT INTO members (username, password, email, name, posts, group) VALUES ('$username', '$password', '$email', '$name', '$posts', '$group')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo " Welcome to the forum " . $_POST['username'] . "!<br /> You can now login and start posting at our community. "; mysql_close($con); } else { ?> <form action="" method="post"> <p>Username<br /><input type="text" name="username" /></p> <p>Password<br /><input type="password" name="password" /></p> <p>Name<br /><input type="text" name="name" /></p> <p>Email<br /><input type="text" name="email" /></p> <p><input type="submit" name="submit" value="Add category" /></p> </form> <?php } ?> Trykker jeg på submit knappen, så får jeg feilmeldingen: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group) VALUES ('username', '5f4dcc3b5aa765d61d8327deb882cf99', 'email', 'name', ' at line 1 Nå skrev jeg bare "username" i brukernavn feltet, "password" i passord feltet osv. Noen som vet hva som er feil? =/ Lenke til kommentar
Bakke Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 (endret) Klikk for å se/fjerne innholdet nedenfor <?phpif (isset($_POST['submit'])) { $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("forum", $con); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $password = md5($password); $email = mysql_real_escape_string($_POST['email']); $name = mysql_real_escape_string($_POST['name']); $posts = "0"; $group = "Member"; mysql_query("INSERT INTO members (username, password, email, name, posts, group) VALUES ($username, $password, $email, $name, $posts, $group)"); if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo " Welcome to the forum " . $_POST['username'] . "!<br /> You can now login and start posting at our community. "; mysql_close($con); } else { ?> <form action="" method="post"> <p>Username<br /><input type="text" name="username" /></p> <p>Password<br /><input type="password" name="password" /></p> <p>Name<br /><input type="text" name="name" /></p> <p>Email<br /><input type="text" name="email" /></p> <p><input type="submit" name="submit" value="Add category" /></p> </form> <?php } ?> Er ikke så veldig pro innen php, men du kan jo prøve med endringene jeg lagde Endret 8. mars 2007 av mhbakke Lenke til kommentar
Mats Danielsen Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 På denne linjen her: $sql = "INSERT INTO members (username, password, email, name, posts, group) VALUES ('$username', '$password', '$email', '$name', '$posts', '$group')"; Mangler et ( $sql = ("INSERT INTO members (username, password, email, name, posts, group) VALUES ('$username', '$password', '$email', '$name', '$posts', '$group')"); Lenke til kommentar
Runar0 Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 GROUP er ein sql commando og derfor bør du ikkje bruke det som navn på felt. Du kan for eksempel kalle felta for user_uname, user_password, user_email, user_name, user_posts, user_groups. Dette burde fikse problemet Lenke til kommentar
Anders Moen Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 Å, kanskje det forklarer hvorfor det ikke ville fungere da? Skal prøve å rename fra group til noe annet, som rank eller noe slikt. Men takk til dere to andre óg. Mats-dani, jeg har aldri brukt paranteser rundt de igjen, så jeg tviler på at det er problemet, men takk alikevel. Skal prøve litt seinere (sjuk så jeg orker ikke nå), så skal vi se om det fungerer Lenke til kommentar
Bakke Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 (endret) Har støtt på nesten samme problem, bare at jeg får blank feil melding... Har sett på scriptet en stund nå uten å finne noen feil, så lurte på om noen her kunne hjelpe meg? Mitt script: Klikk for å se/fjerne innholdet nedenfor <?php$brukernavn = $_POST["brukernavn"]; $passord = $_POST["passord"]; $passord = md5($passord); $brukernavn = strip_tags($brukernavn); $con = mysql_connect("SQL06.FREEMYSQL.NET","min bruker","mitt passord"); if (!$con) { die('Kunne ikke koble til database: ' . mysql_error()); } mysql_select_db("mhbakke", $con); $sql = "INSERT INTO users (username, password) VALUES ('$brukernavn', '$passord')"; if (!mysql_query($sql, $con)); { die("Feil: " . mysql_error()); } echo "Bruker lagt til."; mysql_close($con); ?> Endret 8. mars 2007 av mhbakke Lenke til kommentar
Quattro7 Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 (endret) <?php $brukernavn = $_POST["brukernavn"]; $passord = $_POST["passord"]; $passord = md5($passord); $brukernavn = strip_tags($brukernavn); $connection = mysql_connect('SQL06.FREEMYSQL.NET', 'brukernavn', 'passord'); $db = mysql_select_db('mhbakke'); $sql = "INSERT INTO `users` SET `username` = '$brukernavn', `password` = '$passord''"; mysql_query($sql); if(mysql_error()) { die(mysql_error()); } else { echo "Bruker lagt til."; } ?> Endret 7. mars 2007 av Quattro7 Lenke til kommentar
Anders Moen Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 SET er jo for oppdatér da. Tviler på at det fungerer, siden du bruker INSERT INTO tabell SET username = '$username' osv og SET er den man bruker på UPDATE tabell SET noe = '$noe' osv. Så, sorry, men tror ikke den koden din vil fungere Quattro7. Lenke til kommentar
Quattro7 Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 (endret) Vet. Har retta feilen. Endret 7. mars 2007 av Quattro7 Lenke til kommentar
Bakke Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 (endret) Takk, koden fungerte den. Lurer på om den gamle min og faktisk fungerte, fant noe tull med opplastinga av filer (så jeg kan ha prøvd første utkast av scriptet om og om igjen)... Edit: Feilen med mitt script var at jeg får feilmelding selv om brukeren blir lagt til Sjekket databasen nå etterpå, lå masse brukere der... Endret 7. mars 2007 av mhbakke Lenke til kommentar
Mez Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Kan det være no med at du har et felt som heter group (det er en mysql funksjon som heter group også...) Lenke til kommentar
Anders Moen Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 Mhm, fikk vite det litt lengre oppi her Lenke til kommentar
Mez Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Oops.. og jeg som trodde jeg hadde klart å skumlese gjennom hele.. sorry Lenke til kommentar
Anders Moen Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 Haha, det går bra vett. Fint å få det bekreftet at det faktisk er det óg, vett. Hehe Lenke til kommentar
Bakke Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 (endret) Har og et problem med login scriptet, jeg får feil bruker navn og passord selv om det er rett... Håpet noen andre kunne se feilen (jeg har influensa akkuratt nå, så hode henger ikke helt med )... Klikk for å se/fjerne innholdet nedenfor <?php$brukernavn = $_POST["brukernavn"]; $brukernavn = strip_tags($brukernavn); $passord = $_POST["passord"]; $passord = md5($passord); if (!$brukernavn || !$passord) { die("Du skrev ikke inn all nødvendig informasjon."); } mysql_connect("SQL06.FREEMYSQL.NET","brukernavn","passord"); if (mysql_error()) { die("Kunne ikke koble til database: " . mysql_error()); } mysql_select_db("mhbakke"); $select = mysql_query("SELECT * FROM users WHERE username='$brukernavn' AND password='$passord'"); $numrows = mysql_num_rows($select); if ($numrows == 0) { echo "Feil brukernavn eller passord!"; } else { echo "Du er nå logget inn som {$brukernavn}..."; $_SESSION["brukernavn"] = $brukernavn; $_SESSION["logget_inn"] = "yes"; } ?> Endret 8. mars 2007 av mhbakke Lenke til kommentar
WindowsVista Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Er passordet kryptert i MD5 i databasen? Lenke til kommentar
Bakke Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Ja, passordet er kryptert i databasen... Lenke til kommentar
Runar0 Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 (endret) Legg til PHP <?php $select = mysql_query("SELECT * FROM users WHERE username='$brukernavn' AND password='$passord'") or die (mysq_error()); ?> og se kva som blir printet Endret 7. mars 2007 av Shadows0 Lenke til kommentar
CruellaDeVille Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Har og et problem med login scriptet, jeg får feil bruker navn og passord selv om det er rett... Håpet noen andre kunne se feilen (jeg har influensa akkuratt nå, så hode henger ikke helt med )... 8101816[/snapback] Det funker hos meg, så da kan det være 1) Tabellen er tom 2) Brukernavn/passord er feil 3) passord er ikke md5-hashet 4) ingen databasetilkobling (lurt å legge på en mysql_error()) 5) skjemafelter heter ikke brukernavn/passord Hvis du prøver å hente ut noe på en annen side fra session og det feiler kan det være fordi du ikke har session_start() noe sted som jeg kan se iallfall. Lenke til kommentar
Bakke Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Fikk ikke noen feil melding etter at jeg la til "or die(mysql_error());". Det er heller ikke session som er problemet... Skjemafeltene har rett navn, og jeg har sjekket databasen med phpMyAdmin (så brukeren eksisterer)... 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å