Avatar billede michaeltryl Seniormester
31. januar 2007 - 14:36 Der er 8 kommentarer og
1 løsning

kan ikke finde fejl i script

Jeg får følgende fejl i nedstående script
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 '' at line 2

håber der er en som kan se hvor fejlen er, jeg har stirret mig blind på det.
<?

    $adresse = mysql_real_escape_string($_REQUEST["adresse"]);
    $beskriv = mysql_real_escape_string($_REQUEST["beskriv"]);
   
    $rat = mysql_query("SELECT sideid FROM sider WHERE adresse = '$adresse'");
        $sideantal = mysql_num_rows($rat);//Tæller antaller af resultater

if (!empty($adresse) && !empty($beskriv) && $sideantal == '0')
{

$hent = mysql_query("SELECT email FROM brugere WHERE brugernavn = '$bruger'") or die(mysql_error());
$show = mysql_fetch_array($hent);
$email = $show[email];
 
    mysql_query("INSERT INTO rate (rateid, tekst, samlet, rate, antal)
    values(0, 'SIDE: $adresse', 0, 0, 0)") or die(mysql_error());

$rateid = mysql_result(mysql_query("SELECT LAST_INSERT_ID()"),0);

    mysql_query("INSERT INTO sider (sideid, adresse, beskrivelse, antal_ind, antal_ud, bekraeft, rateid)
    VALUES(0, '$adresse', '$beskriv', 0, 0, 0, '$rateid'") or die(mysql_error());

$sideid = mysql_result(mysql_query("SELECT LAST_INSERT_ID()"),0);

$tal = rand(0, 1000000);
$tal = md5($tal);
$start = 0;
$langde = 6;
$tal = substr($tal, $start, $langde);

        $header = "From: $fra";
        $emne ="Aktiver side på topliste";

    $plaintext  = "BEMÆRK DENNE MAIL ER SENDT AUTOMATISK OG KAN IKKE BESVARES\r\n";
    $plaintext .= "Du har tilmeldt en side på toplisten på $side.\r\n";
    $plaintext .= "Før du kan logge ind skal du klikke på eller kopiere dette link og indsætte det i din browser\r\n\r\n";
    $plaintext .= "$side/topliste/aktiver.php?sideid=$sideid&adresse=$adresse&b=$tal\r\n\r\n";
    $plaintext .= "For at optjen kliks på toplisten skal du indsætte denne kode på din side\r\n";
    $plaintext .= "<a href='$side/topliste/ind.php?id=$sideid&b=$tal'>$side</a>";
    $plaintext .= "hilsen webmaster";

        mail($email,$emne,$plaintext,$header);

    echo "<h2>Din side er nu tilmeldt, men før den er synlig på toplisten skal du klikke på det link, som er ";
    echo"i den mail du har modtaget. Derudover skal du indsætte denne kode på din side for at optjene kliks på toplisten.<br>";
    echo"<b>&lt;a href=&quot;$side/topliste/ind.php?id=$sideid&amp;b=$tal&quot;&gt;$side&lt;/a&gt;</b>";
   

    }
    else
    {
        echo "<h2>Siden du forsøger at tilmelde er allerede tilmeldt.<br>";
    }
?>
Avatar billede radion Nybegynder
31. januar 2007 - 15:40 #1
hvilken linie, er linie 2 i dit script?

kan det tænkes at nogle af dine REQUEST kald indeholder en " ?

fodnote: i stedet for REQUEST, bør du bruge POST, GET da du så kontrollerer hvor variablen kommer fra..
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 15:43 #2
prøv at skrive dine SQL ud, så kan du måske se om der mangler noget eller om der er "ulovlige" tegn..
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 15:46 #3
hmm ved nærmere læsning har jeg lige et spørgsmål.. hvor for du $bruger fra?
Avatar billede michaeltryl Seniormester
31. januar 2007 - 15:57 #4
linie 2 er
session_start();

$bruger får jeg fra en side jeg includere i toppen af siden
jeg har ændre de to REQUEST til
    $adresse = mysql_real_escape_string($_POST["adresse"]);
    $beskriv = mysql_real_escape_string($_POST["beskriv"]);
og de indeholder ikke "

helse sidens indhold er her

<?
session_start();
$_SESSION['page'] = $_SERVER['REQUEST_URI'];
chdir('../layout/');
include '../settings/connect.php';
include '../settings/settings.php';

if(!$_SESSION['logget_in'] == 1 OR $_SESSION['logget_in'] == "ikke")
{
$_SESSION['ikke_log'] = 1;
header("Location: $side");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}
$_SESSION['menu'] = "topliste";
//Al din kode herunder
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title></title>
<meta name="Description" content="">
<meta name="Keywords" content="">
<?
include 'head.php';
?>
</head>
<body>
<?
include 'header.php';
?>
       
                <h1>tilføj side</h1>
<?

    $adresse = mysql_real_escape_string($_POST["adresse"]);
    $beskriv = mysql_real_escape_string($_POST["beskriv"]);
   
    $rat = mysql_query("SELECT sideid FROM sider WHERE adresse = '$adresse'");
        $sideantal = mysql_num_rows($rat);//Tæller antaller af resultater

if (!empty($adresse) && !empty($beskriv) && $sideantal == '0')
{

$hent = mysql_query("SELECT email FROM brugere WHERE brugernavn = '$bruger'") or die(mysql_error());
$show = mysql_fetch_array($hent);
$email = $show[email];
 
    mysql_query("INSERT INTO rate (rateid, tekst, samlet, rate, antal)
    values(0, 'SIDE: $adresse', 0, 0, 0)") or die(mysql_error());

$rateid = mysql_result(mysql_query("SELECT LAST_INSERT_ID()"),0);

    mysql_query("INSERT INTO sider (sideid, adresse, beskrivelse, antal_ind, antal_ud, bekraeft, rateid)
    VALUES(0, '$adresse', '$beskriv', 0, 0, 0, '$rateid'") or die(mysql_error());

$sideid = mysql_result(mysql_query("SELECT LAST_INSERT_ID()"),0);

$tal = rand(0, 1000000);
$tal = md5($tal);
$start = 0;
$langde = 6;
$tal = substr($tal, $start, $langde);

        $header = "From: $fra";
        $emne ="Aktiver side på topliste";

    $plaintext  = "BEMÆRK DENNE MAIL ER SENDT AUTOMATISK OG KAN IKKE BESVARES\r\n";
    $plaintext .= "Du har tilmeldt en side på toplisten på $side.\r\n";
    $plaintext .= "Før du kan logge ind skal du klikke på eller kopiere dette link og indsætte det i din browser\r\n\r\n";
    $plaintext .= "$side/topliste/aktiver.php?sideid=$sideid&adresse=$adresse&b=$tal\r\n\r\n";
    $plaintext .= "For at optjen kliks på toplisten skal du indsætte denne kode på din side\r\n";
    $plaintext .= "<a href='$side/topliste/ind.php?id=$sideid&b=$tal'>$side</a>";
    $plaintext .= "hilsen webmaster";

        mail($email,$emne,$plaintext,$header);

    echo "<h2>Din side er nu tilmeldt, men før den er synlig på toplisten skal du klikke på det link, som er ";
    echo"i den mail du har modtaget. Derudover skal du indsætte denne kode på din side for at optjene kliks på toplisten.<br>";
    echo"<b>&lt;a href=&quot;$side/topliste/ind.php?id=$sideid&amp;b=$tal&quot;&gt;$side&lt;/a&gt;</b>";
   

    }
    else
    {
        echo "<h2>Siden du forsøger at tilmelde er allerede tilmeldt.<br>";
    }
?>               
               
<?
include 'footer.php';
?>
</body>

</html>
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 16:06 #5
har du prøvet at udskrive dine queries? evt. udskriv de variabler du bruger i dine queries, bare for at sikre dig at de ikke er tomme
Avatar billede michaeltryl Seniormester
31. januar 2007 - 16:36 #6
jeg har fundet fejlen
VALUES(0, '$adresse', '$beskriv', 0, 0, 0, '$rateid'") or die(mysql_error()); manglde en ) i slutningen   
values(0, '$adresse', '$beskriv', 0, 0, 0, '$rateid')") or die(mysql_error());

Tak for forsøget. Hvis i vil have point så kom med et svar.
Avatar billede sw_red_6 Nybegynder
01. februar 2007 - 08:54 #7
ikke nogen point til mig..
Avatar billede radion Nybegynder
01. februar 2007 - 08:56 #8
heller ikke her. fint du fandt ud af det :)
Avatar billede michaeltryl Seniormester
01. februar 2007 - 12:41 #9
lukker
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