Avatar billede henrik_nielsen Nybegynder
24. maj 2005 - 19:41 Der er 14 kommentarer og
1 løsning

Problemer med insert into

Hej eksperter.

Jeg har et underligt problem med en insert into.

Her er hele min kode:

<html>

<head>

<link rel="stylesheet" href="css/css.css" type="text/css">

</head>

<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false">

<?
include("mysql/mysql.php");

if($_POST[action] == "opret") {

if($_POST[brugernavn] == "") {
print "Du skal skrive et brugernavn!";

} else {

if(strlen($_POST[brugernavn]) < "3") {
print "Dit brugernavn er for lille, mindst 3 tegn!";

} else {

if(strlen($_POST[brugernavn]) > "15") {
print "Dit brugernavn er for langt, max 15 tegn!";

} else {

if($_POST[kodeord] == "") {
print "Du skal skrive et kodeord!";

} else {

if(strlen($_POST[kodeord]) < "6") {
print "Dit kodeord er for lille, mindst 6 tegn!";

} else {

if(strlen($_POST[kodeord]) > "10") {
print "Dit kodeord er for langt, max 10 tegn!";

} else {

$tjek_bruger = mysql_query("SELECT * FROM community WHERE brugernavn LIKE '$_POST[brugernavn]'");
if(mysql_num_rows($tjek_bruger) != "0") {
print "<b>$_POST[brugernavn]</b> er allerede oprettet!";

} else {

if(substr($_POST[brugernavn],0,1) == " ") {
print "Dit brugernavn må ikke starte med mellemrum!";

} else {

$navn = strlen($_POST[brugernavn]);
if(substr($_POST[brugernavn],$navn-1,$navn) == " ") {
print "Brugernavnet må ikke slutte med mellemrum!";

} else {

if($_POST[email] == "") {
print "Din email mangler!";

} else {

$email = $_POST[email];
if (substr_count($email,'@')==0) {
echo("Ugyldig email adresse!");

} else {

if(ereg("<", $_POST[brugernavn])) {
echo("Brugernavn må ikke indeholde html tags.<br>");

} else {

if (eregi("[^a-z0-9] ",$_POST[brugernavn])) {
echo("Ulovlige tegn fundet!);

} else {

$dato = date(d/m/Y H:i:s);
$ip = $_SERVER[REMOTE_ADDR];
$brugernavn = htmlspecialchars($_POST[brugernavn]);
$kodeord = htmlspecialchars($_POST[kodeord]);
$email = htmlspecialchars($_POST[email]);

mysql_query("INSERT INTO community SET (brugernavn, kodeord, email, dato, ip) VALUES ('$brugernavn', '$kodeord', '$email', '$dato', '$ip')"); // den kode der er noget i vejen med

print "<b>$brugernavn</b> er nu oprettet og klar til brug! Der er sendt en mail til din email med nogen vigtige informationer som du bør gemme.";
}
}
}
}
}
}
}
}
}
}
}
}
}
}
?>

<form action="opret.php" method="POST">
<input type="hidden" name="action" value="opret">

Brugernavn <br>
<input type="text" name="brugernavn"><br>
Kodeord <br>
<input type="password" name="kodeord"><br>
Email <br>
<input type="text" name="email"><br><br>
<input type="submit" name="submit" value="Opret bruger">

</form>

</body>

</html>

Nu gav jeg jer hele koden, da jeg tror det er noget længere oppe der er galt :S.

Når jeg tester filen siger den:

Parse error: parse error, unexpected T_STRING in /hsphere/local/home/dounie/dounie.dk/community/opret.php on line 90

Og linje 90 er altså:

mysql_query("INSERT INTO community SET (brugernavn, kodeord, email, dato, ip) VALUES ('$brugernavn', '$kodeord', '$email', '$dato', '$ip')");

Håber nogen kan hjælpe.

- Henrik.
Avatar billede henrik_nielsen Nybegynder
24. maj 2005 - 19:43 #1
har prøvet med:

mysql_query("INSERT INTO community SET (brugernavn, kodeord, email, dato, ip) VALUES ('$brugernavn', '$kodeord', '$email', '$dato', '$ip')") or die(mysql_error());
Avatar billede busschou Praktikant
24. maj 2005 - 19:43 #2
mysql_query("INSERT INTO community (brugernavn, kodeord, email, dato, ip) VALUES ('$brugernavn', '$kodeord', '$email', '$dato', '$ip')");
Avatar billede busschou Praktikant
24. maj 2005 - 19:44 #3
Det er syntaksen i sql... men der må være noget med en streng et sted
Avatar billede henrik_nielsen Nybegynder
24. maj 2005 - 19:46 #4
Jeg ka simpelthen ikke finde den fejl.
Avatar billede busschou Praktikant
24. maj 2005 - 19:47 #5
har du prøvet
$sql = "INSERT INTO community (brugernavn, kodeord, email, dato, ip) VALUES ('$brugernavn', '$kodeord', '$email', '$dato', '$ip')";
mysql_query($sql) or die(mysql_error());

Måske fejlen så giver en anden linje
Avatar billede henrik_nielsen Nybegynder
24. maj 2005 - 19:48 #6
Den giver den samme fejl :-/
Avatar billede hmortensen Nybegynder
24. maj 2005 - 19:50 #7
Her mangler en "
echo("Ulovlige tegn fundet!);
Avatar billede henrik_nielsen Nybegynder
24. maj 2005 - 19:50 #8
Min tabel ser sådan her ud:

CREATE TABLE `community` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `brugernavn` varchar(50) NOT NULL default '',
  `kodeord` varchar(50) NOT NULL default '',
  `email` varchar(50) NOT NULL default '',
  `dato` varchar(20) NOT NULL default '',
  `ip` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;
Avatar billede henrik_nielsen Nybegynder
24. maj 2005 - 19:51 #9
Kanon :D det virker nu, tusinde tak. Smid da lige et svar så du kan få dine points =).
Avatar billede hmortensen Nybegynder
24. maj 2005 - 19:53 #10
Må være busschou :)
Avatar billede busschou Praktikant
24. maj 2005 - 19:53 #11
by the way
Det kan stadig kun virke hvis du retter din sql som jeg skrev...ellers ville du få en sql fejl ;o)
Avatar billede busschou Praktikant
24. maj 2005 - 19:53 #12
tja to fejl to svar ? ;o)
Avatar billede hmortensen Nybegynder
24. maj 2005 - 19:55 #13
Nej, ta du den bare.

Et tip til at finde sådan en fejl:
Sæt makøren i den linie med fejlen, og søg i opad gående retning efter ".
Vil i mange tilfælde afsløre fejlen.
Avatar billede busschou Praktikant
24. maj 2005 - 19:57 #14
en anden ting.. (længe siden jeg har kodet php).. men findes der ikke "elseif" ?
Ville jeg tro var "smartere" end den lange opbygning af næstede "if else if"
Avatar billede hmortensen Nybegynder
24. maj 2005 - 19:59 #15
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