Avatar billede janorakel Nybegynder
31. august 2003 - 21:25 Der er 18 kommentarer og
1 løsning

Hvad er galt i 1. linie?

Hmm, har dette script... Det har virket, men nu får jeg denne fejl:
You have an error in your SQL syntax near ' , )' at line 1
Og det er en database connection.
Filen ligger som /admin/ny_bruger.php og connectionfilen ligger i /Connections-mappen.

Jeg har prøvet alt, men det virker ikke...
Her er scriptet:

<?php require_once('/Connections/local2.php'); ?>
<?php require('/admin/tjeklogin.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
  $editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}

if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO brugere (navn, password, fornavn, efternavn, password) VALUES (%s, md5(%s), $s, $s, $s)",
                      GetSQLValueString($HTTP_POST_VARS['navn'], "text"),
                      GetSQLValueString($HTTP_POST_VARS['password'], "text"),
                      GetSQLValueString($HTTP_POST_VARS['fornavn'], "text"),
                      GetSQLValueString($HTTP_POST_VARS['efternavn'], "text"),
                      GetSQLValueString($HTTP_POST_VARS['email'], "text"));

  mysql_select_db($database_local2, $local2);
  $Result1 = mysql_query($insertSQL, $local2) or die(mysql_error());

  $insertGoTo = "/admin/admin.php";
  if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?>
<html>
<head>
<title>indtast post</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../css/greenstyle1.css" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<body>
<div id="Layer1" style="Z-INDEX: 1; LEFT: 149px; WIDTH: 273px; POSITION: absolute; TOP: 4px; HEIGHT: 23px"><em><strong><font size="2">Opret
  ny bruger</font></strong></em></div>
<div align="left"><em><strong><font size="2"> </font></strong></em></div>
<p align="center">&nbsp;</p>
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
  <div align="center">
    <table width="930" align="left">
      <tr valign="baseline">
        <td height="31" align="right" nowrap>&nbsp;</td>
        <td align="right" nowrap><div align="left"><strong><em>Brugeroplysninger:</em></strong></div></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr valign="baseline">
        <td width="95" height="21" align="right" nowrap>&nbsp;</td>
        <td width="229" align="right" nowrap><div align="left">Brugernavn:</div></td>
        <td width="487"><input name="navn" size="50" maxlength="100" ></td>
        <td width="99">&nbsp;</td>
      </tr>
      <tr valign="baseline">
        <td align="right" nowrap>&nbsp;</td>
        <td align="right" nowrap><div align="left">Password:</div></td>
        <td><input name="password" size="50" maxlength="100" ></td>
        <td>&nbsp;</td>
      </tr>
      <tr valign="baseline">
        <td align="right" nowrap>&nbsp;</td>
        <td align="right" nowrap><div align="left">Fornavn:</div></td>
        <td colspan="2"><input name="fornavn" size="50" maxlength="100" ></td>
      </tr>
      <tr valign="baseline">
        <td height="21" align="right" nowrap>&nbsp;</td>
        <td align="right" nowrap><div align="left">Efternavn:</div></td>
        <td colspan="2"><input name="efternavn" size="50" maxlength="100" ></td>
      </tr>
      <tr valign="baseline">
        <td align="right" nowrap>&nbsp;</td>
        <td align="right" nowrap><div align="left">E-mail</div></td>
        <td colspan="2"><input name="email" size="50" maxlength="100" ></td>
      </tr>
      <tr valign="baseline">
        <td align="right" nowrap><div align="left"></div></td>
        <td align="right" nowrap>&nbsp;</td>
        <td colspan="2"><input type="submit" value="Tilf&oslash;j den nye bruger"></td>
      </tr>
    </table>
    <input type="hidden" name="MM_insert" value="form1">
  </div>
</form>
<p align="center">&nbsp;</p>
 

</body>
</html>
Avatar billede ztyxx Nybegynder
31. august 2003 - 21:26 #1
prøv
<?php require_once('Connections/local2.php'); ?>
Avatar billede squashguy Nybegynder
31. august 2003 - 21:28 #2
lav en echo på din $insertSQL, så finder du sikkert svaret
Avatar billede janorakel Nybegynder
31. august 2003 - 21:30 #3
Har jeg prøvet, og jeg får:
You have an error in your SQL syntax near ' , )' at line 1
Avatar billede squashguy Nybegynder
31. august 2003 - 21:31 #4
hvis du laver en echo, skulle den gerne spytte din færdige sql-sætning ud. problemet er som oftest at du henter "tomme" værdier ind
Avatar billede squashguy Nybegynder
31. august 2003 - 21:32 #5
smid echo ind før denne linie

$Result1 = mysql_query($insertSQL, $local2) or die(mysql_error());
Avatar billede jakoba Nybegynder
31. august 2003 - 21:33 #6
lav en echo betyder at tilføje en linie
    echo "<br>" .$insertSQL ."<br>";    // skriv kommandoen så vi kan kikke på den.
Avatar billede janorakel Nybegynder
31. august 2003 - 21:35 #7
INSERT INTO brugere (navn, password, fornavn, efternavn, password) VALUES (NULL, md5(NULL), , , )
You have an error in your SQL syntax near ' , )' at line 1
Avatar billede janorakel Nybegynder
31. august 2003 - 21:35 #8
hmm, det har virket..
Avatar billede ztyxx Nybegynder
31. august 2003 - 21:37 #9
skal du ikke have ' er om de values der ikke er tal...
Avatar billede janorakel Nybegynder
31. august 2003 - 21:39 #10
øhm, hvor - det tror jeg ikke.
Avatar billede janorakel Nybegynder
31. august 2003 - 21:40 #11
Her?
$insertSQL = sprintf("INSERT INTO brugere (navn, password, fornavn, efternavn, password) VALUES (%s, md5(%s), $s, $s, $s)",
Avatar billede janorakel Nybegynder
31. august 2003 - 21:40 #12
lol, der er dollartegn...
Avatar billede ztyxx Nybegynder
31. august 2003 - 21:40 #13
ja...
Avatar billede squashguy Nybegynder
31. august 2003 - 21:43 #14
ja $s kan du nok ikke bruge her :)
Avatar billede janorakel Nybegynder
31. august 2003 - 21:43 #15
Smid nogle svar i mellemtiden -- er tilbage om 15 min.
Avatar billede jakoba Nybegynder
31. august 2003 - 21:44 #16
Jweg vil tro at
    VALUES (NULL, md5(NULL), , , )
kommer af:
    VALUES ( $bruger->phpvar1 , md5($bruger->password), $phpvar2, $phpvar3, $phpvar4 )

men du har ikke oprettet noget objekt der hedder $bruger og de andre variable er ikke defineret, så der bliver ikke indsat nogen variabelværdier.

mvh JakobA
Avatar billede squashguy Nybegynder
31. august 2003 - 22:17 #17
hvad værre er, jeg sad også og sov; og så først $s da du nævnte det :p
Avatar billede janorakel Nybegynder
01. september 2003 - 07:15 #18
Haha, ja det var også sidst på weekenden - godt det er hverdag igen!
Det hele virker nu, og der stod endda password som 2 values i ovenstående script.
Men egentlig underligt, at den udskriver en fejl for 1. linie...
Nogen som vil have point for indsatsen?
Avatar billede janorakel Nybegynder
01. september 2003 - 18:37 #19
Så gafler jeg dem selv!
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