$errorCount = 0; if($fornavn == "") { echo "Du skal indtaste dit fornavn.<br>"; $errorCount++; } if($efternavn== "") { echo "Du skal indtaste dit efternavn.<br>"; $errorCount++; }
if($alder == "") { echo "Du skal indtaste din alder.<br>"; $errorCount++; } if($adresse== "") { echo "Du skal indtaste din adresse.<br>"; $errorCount++; }
mysql_connect("localhost","root",""); mysql_select_db("mydatabase") or die ("kan ikke kontakte databasen");
if($errorCount == 0)
{ mysql_query("INSERT INTO nykunder * ('$_POST[fornavn]', '$_POST[efternavn]', '$_POST[alder]', '$_POST[adresse]')") OR DIE(mysql_error()); if(!$insert) echo "Der skete en fejl. Prøv igen. <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; else echo "Brugeren blev oprettet. <a href=\"default.php\">Forside</a><br>"; }?>
</div>
</div>
</div>
</body>
Men den kan ikke indsætte noget. den returnerer flg.:
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 '* ('tage', 'valdemar', '62', 'her')' at line 1
mysql_query("INSERT INTO nykunder VALUES ('$_POST[fornavn]', '$_POST[efternavn]', '$_POST[alder]', '$_POST[adresse]')") OR DIE(mysql_error());
Et lille trick jeg gerne bruger, er at indsætte en række direkte i phpmyadmin og så kopiere den sql den viser efterfølgende. Så skal du "bare" erstatte værdierne med dine $_POST-variabler.
Hvis man absolut vil opretholde den rigtige 2002-2004 stemning (dengang web sider havde en "Virker bedst i IE 6" nederst paa siden) kan man ogsaa bruge mysql_real_escape_string.
mysql_query("INSERT INTO nykunder VALUES (NULL ,'$_POST[fornavn]', '$_POST[efternavn]', '$_POST[alder]', '$_POST[adresse]')") OR DIE(mysql_error());
Nu sender den det hele til db, men den brokker sig over denne linje i indsæt:
Notice: Undefined variable: insert in C:\wamp\www\mydatabase\indsaet.php on line 46
if(!$insert)
er det forkert at bruge det? eller er det koden der er forkert?
Til arne_v:
Jeg skal nok forsøge at få lidt mere sikkerhed ind inden jeg smider det på nettet.
Til jer begge to: mysqli har jeg aktiveret, pdo ved jeg intet om. Det er helt på selvlært niveau dette her, derfor også så mange faldgruber. Af samme grund er jeg dybt taknemlig for at der er nogen der har overskud til at hjælpe mig og andre med samme (manglende) indsigt i formularhåndtering.
At fornavn mangler, virker underligt. Et trick jeg altid bruger, når jeg laver disse forms og er lidt usikker på hvilke data jeg rent faktisk får med videre fra min form, er at skrive denne kode øverst i min "form-handler" kode.
Hos dig vil det være i toppen af din indsaet.php fil.
echo '<pre>'; print_r($_POST); echo '</pre>';
Så kan du præcist se hvilke data du får med og hvad deres "navne" er.
Ja, det med fornavnet forstår jeg heller ikke rigtigt. Har tænkt på om det kan være forårsaget af at jeg ikke skriver NULL for ID, men blot fornavn, efternavn osv. har ikke prøvet det af. Men nu virker det, blot brikker den sig over if(!$insert). Håber at jeg finder løsningen. Vil tilføje de tre linier i min indsaet.php.
Det er lige det der skal til, så nu må det være på tide at du smider et svar. Tak for hjælpen. Jeg roder mig helt sikkert ind i flere problemer undervejs, så jeg er nok at finde her igen. :)
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.