Gå til innhold

Hva i huleste er galt i dette scriptet?


Anbefalte innlegg

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
Videoannonse
Annonse

Klikk for å se/fjerne innholdet nedenfor
<?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";

 

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 av mhbakke
Lenke til kommentar

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

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

Å, 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

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 av mhbakke
Lenke til kommentar
<?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 av Quattro7
Lenke til kommentar

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 :dontgetit: Sjekket databasen nå etterpå, lå masse brukere der...

Endret av mhbakke
Lenke til kommentar

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 :p )...

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 av mhbakke
Lenke til kommentar

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 av Shadows0
Lenke til kommentar
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 :p )...

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...