Avatar billede nickyc Nybegynder
10. september 2005 - 18:05 Der er 15 kommentarer og
1 løsning

Melder ingen fejl, men vil ikke smide i db?

Har et problem her:

Den skriver SQL'en ud korrekt, men det smider det ikke i databasen...

Se script her:
<?
//Hent forbindelse
include("includes/config.inc.php");

//Hent info fra form og laver det til variabler
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$birthday = $_REQUEST['birthday'];
$gender = $_REQUEST['gender'];
$area = $_REQUEST['area'];
$children = $_REQUEST['children'];
$jobtype = $_REQUEST['jobtype'];
$interest = $_REQUEST['interest'];
$profile = $_REQUEST['profile'];

//Fjern alle "farlige tags"
$username = strip_tags($username);
$password = strip_tags($password);
$name = strip_tags($name);
$email = strip_tags($email);
$profile = strip_tags($profile);

//Fjern eventuelle mellemrum fra variablerne
$username = str_replace(" ","",$username);
$password = str_replace(" ","", $password);
$email = str_replace(" ","", $email);

//Minimum længder på Username & Passwords
$min_userlength = "6";
$min_passlength = "6";

//Lav et check på længderne
if(strlen($username) < $min_userlength and strlen($password) < $min_passlength)

{
die("User/password var ikke langt nok - Det skal minimum være 6 bogstaver langt!");
}

//Lav et check på om "Username" allerede eksisterer
$SQL = "SELECT * FROM users WHERE Brugernavn = '$username'";
$query = mysql_query($SQL);

if(mysql_num_rows($query) > 0)
{

echo '<script>alert("Brugernavnet du indtastede er allerede i brug - Prøv venligst med et nyt Brugernavn");</script>';
echo '<script>history.back(1);</script>';
exit;

}
echo $SQL;
//Lav et check på om emailen der blev indtastet allerede har en bruger
$SQL = "SELECT * FROM users WHERE Email = '$email'";
$query = mysql_query($SQL);

if(mysql_num_rows($query) > 0)
{

echo '<script>alert("Emailen du har brugt har allerede en bruger! Slet evt denne bruger for at oprette ny");</script>';
echo '<script>history.back(1);</script>';
exit;

}
echo $SQL;
//Indsæt nu data i databasen!
$SQL = "INSERT INTO users (Brugernavn, Password, Navn, Email, Fødselsdag, Køn, Bopæl, Børn, Beskæftigelse, Hobbyer, Profiltekst) VALUES ('$username', '$password', '$name', '$email', '$birthday', '$gender', '$area', '$children', '$interest', '$profile')";

if(mysql_query($SQL))
{

    echo '<script>alert("Du er nu oprettet som bruger på Meet-me")</script>';
    mail($email, "Velkommen til Meet-me", "Velkommen til Meet-me - Dit brugernavn er: $username og dit password er: $password");
    echo '<script>document.location.href="index.php"</script>';
}
echo $SQL;
?>

--------------------------

Og den når jeg har udfyldt formen og trykker skriver den fx. følgende SQL ud:

SELECT * FROM users WHERE Brugernavn = 'NickyCXX'
SELECT * FROM users WHERE Email = 'hej@hej.dk'
INSERT INTO users (Brugernavn, Password, Navn, Email, Fødselsdag, Køn, Bopæl, Børn, Beskæftigelse, Hobbyer, Profiltekst) VALUES ('NickyCXX', 'kodeord', 'Nicky Christensen', 'hej@hej.dk', '1985', 'm', '13', '0', '6', 'dette er en test')
Avatar billede jakobdo Ekspert
10. september 2005 - 18:17 #1
Prøv evt alle din sql'er at tjek om sql'en går godt!
Efter din sql'er med select, lav da:
if(mysql_num_rows($sql)==0)
  echo mysql_errno() . ": " . mysql_error() . "<br>\n";

og efter din insert into lav da:
if(mysql_affected_rows()==0)
  echo mysql_errno() . ": " . mysql_error() . "<br>\n";
Avatar billede jakobdo Ekspert
10. september 2005 - 18:17 #2
Så burde du få info om der evt er fejl i din sql'er!
Avatar billede nickyc Nybegynder
10. september 2005 - 18:33 #3
Får kun denne:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\websteder\meet-me projekt\register-ok.php on line 56
0:
Avatar billede jakobdo Ekspert
10. september 2005 - 18:34 #4
if(mysql_num_rows($sql)==0)
Skal self. rettes til:
if(mysql_num_rows($query)==0)
Avatar billede nickyc Nybegynder
10. september 2005 - 18:44 #5
Så skriver den dette ud:

0:
SELECT * FROM users WHERE Brugernavn = 'NickyCXX'0:
SELECT * FROM users WHERE Email = 'hej@hej.dk'INSERT INTO users (Brugernavn, Password, Navn, Email, Fødselsdag, Køn, Bopæl, Børn, Beskæftigelse, Hobbyer, Profiltekst) VALUES ('NickyCXX', 'shaggy', 'Nicky Christensen', 'hej@hej.dk', '1985', 'm', '13', '0', '6', 'dette er en test')

Så virker ik til der er nogen fejl eller?
Avatar billede jakobdo Ekspert
10. september 2005 - 18:46 #6
Vis mig lige koden efter:
//Indsæt nu data i databasen!
og til slut!
Avatar billede nickyc Nybegynder
10. september 2005 - 18:47 #7
$SQL = "INSERT INTO users (Brugernavn, Password, Navn, Email, Fødselsdag, Køn, Bopæl, Børn, Beskæftigelse, Hobbyer, Profiltekst) VALUES ('$username', '$password', '$name', '$email', '$birthday', '$gender', '$area', '$children', '$interest', '$profile')";

if(mysql_query($SQL))
{

    echo '<script>alert("Du er nu oprettet som bruger på Meet-me")</script>';
    mail($email, "Velkommen til Meet-me", "Velkommen til Meet-me - Dit brugernavn er: $username og dit password er: $password");
    echo '<script>document.location.href="index.php"</script>';
}
if(mysql_affected_rows()==0)
  echo mysql_errno() . ": " . mysql_error() . "<br>\n";
echo $SQL;
?>
Avatar billede jakobdo Ekspert
10. september 2005 - 18:52 #8
Hvis du tager SQL'en:
INSERT INTO users (Brugernavn, Password, Navn, Email, Fødselsdag, Køn, Bopæl, Børn, Beskæftigelse, Hobbyer, Profiltekst) VALUES ('NickyCXX', 'shaggy', 'Nicky Christensen', 'hej@hej.dk', '1985', 'm', '13', '0', '6', 'dette er en test')
og smider den direkte i phpmyadmin, får du så nogen fejl?
Avatar billede nickyc Nybegynder
10. september 2005 - 18:57 #9
Får denne fejl:

SQL-forespørgsel:

INSERT INTO users (Brugernavn, Password, Navn, Email, Fødselsdag, Køn, Bopæl, Børn, Beskæftigelse, Hobbyer, Profiltekst) VALUES ('NickyCXX', 'shaggy', 'Nicky Christensen', 'hej@hej.dk', '1985', 'm', '13', '0', '6', 'dette er en test')
MySQL returnerede: 

#1136 - Column count doesn't match value count at row 1
Avatar billede jakobdo Ekspert
10. september 2005 - 19:01 #10
Her har jeg felter og værdier.
Profil tekst sættes ikke!
Tjek også lige alle felter er korrekt i forhold til din tabel.

Brugernavn,'NickyCXX'
Password, 'shaggy'
Navn, 'Nicky Christensen'
Email, 'hej@hej.dk'
Fødselsdag, '1985'
Køn, 'm'
Bopæl, '13'
Børn, '0'
Beskæftigelse, '6'
Hobbyer, 'dette er en test'
Profiltekst
Avatar billede nickyc Nybegynder
10. september 2005 - 20:51 #11
Hvorfor er det nu lige at $interest ikke kommer med i INSERT sætningen ?

Hvis jeg skriver den ud skriver den ud med det man vælger, men den smider det ikke med i SQL'en ? - Har du ikke en løsning ?
Avatar billede jakobdo Ekspert
10. september 2005 - 20:55 #12
Problemet er ikke interest!
Se her:
Børn, Beskæftigelse, Hobbyer, Profiltekst
'$children', '$interest', '$profile'
Du mangler $jobtype
Avatar billede nickyc Nybegynder
10. september 2005 - 20:58 #13
selve databasen ser sådanne ud:

  id  int(11)    Nej    auto_increment             
  Brugernavn  varchar(255) latin1_swedish_ci  Nej                 
  Password  varchar(255) latin1_swedish_ci  Nej                 
  Navn  varchar(255) latin1_swedish_ci  Nej                 
  Email  varchar(255) latin1_swedish_ci  Nej                 
  Billede  mediumblob  BINARY Nej                 
  Fødselsdag  varchar(255) latin1_swedish_ci  Nej                 
  Køn  varchar(255) latin1_swedish_ci  Nej                 
  Bopæl  varchar(255) latin1_swedish_ci  Nej                 
  Børn  varchar(255) latin1_swedish_ci  Nej                 
  Beskæftigelse  varchar(255) latin1_swedish_ci  Nej                 
  Hobbyer  varchar(255) latin1_swedish_ci  Nej                 
  Profiltekst  text latin1_swedish_ci  Nej                 
  TypeID  varchar(255) latin1_swedish_ci  Nej  0               

------------

Håber du kan tyde det :)
Avatar billede nickyc Nybegynder
10. september 2005 - 20:59 #14
Det passede, nu virker det :) Dum fejl :)

Ligger du et svar ?
Avatar billede jakobdo Ekspert
10. september 2005 - 21:03 #15
Svar!
Avatar billede jakobdo Ekspert
10. september 2005 - 21:06 #16
Takker for point!
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