Avatar billede fire-fox Nybegynder
27. juni 2008 - 17:43 Der er 28 kommentarer og
1 løsning

error ved reg

Hejsa

jeg er igang med en irc script ting som self skal bruges på irc men får følgende fejl...

SQL Error
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 '6c8a12209e4818416c7a0fac9fe555c4''' at line 1

in /var/www/virtual/xxxxxxxx/htdocs/irc.php, line 58

Her er scriptet: (det kunne sikkert gøres bedre)

<?
// hostname or ip of server
$servername='193.164.133.198';

// username and password to log onto db server
$dbusername='bot';
$dbpassword='PirateZoneAll';

// name of database
$dbname='piratezone';

////////////// Do not  edit below/////////

connecttodb($servername,$dbname,$dbusername,$dbpassword);
function connecttodb($servername,$dbname,$dbuser,$dbpassword)
{
global $link;
$link=mysql_connect ("$servername","$dbuser","$dbpassword");
if(!$link){die("Could not connect to MySQL");}
mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
}
$res = mysql_query("SELECT * FROM nicks WHERE userid = $userid");
//$row = mysql_fetch_row($res);
?>
<?
function sqlesc($x) {
    return "'".mysql_real_escape_string($x)."'";
}

function sqlerr($file = '', $line = '')
{
  print("<table border=0 bgcolor=blue align=left cellspacing=0 cellpadding=10 style='background: blue'>" .
    "<tr><td class=embedded><font color=white><h1>SQL Error</h1>\n" .
  "<b>" . htmlspecialchars(mysql_error()) . ($file != '' && $line != '' ? "<p>in $file, line $line</p>" : "") . "</b></font></td></tr></table>");
  die;
}

if ($res) {
print("Du har følgende nicks tilknyttet din konto:");
if ($row = mysql_fetch_array($res)) {
do {
$nick = $row['nick'];
print($nick.', ');
} while($row = mysql_fetch_array($res));
}
}
print("IRC-Register - Tilknyt et nyt ircnick til din bruger");
if ($_GET["act"] == "add") {
$regkode = sqlesc($_POST['regkode']);

//Check om koden eksisterer
$res = mysql_query("SELECT regkode FROM nicks WHERE regkode = $regkode");
$row = mysql_fetch_assoc($res);
if (!$row) {
print('Registreringskoden du har indtastet eksisterer ikke!<br>Du skal skrive !regnick inde på vores irc-kanal for at få regkoden.');
exit;
}
mysql_query("UPDATE nicks SET userid = '$userid' WHERE regkode = '$regkode'") or sqlerr(__FILE__, __LINE__);
$res = mysql_query("SELECT nick FROM nicks WHERE regkode = $regkode");
$row = mysql_fetch_assoc($res);
$nick = $row['nick'];
if ($error == 'yes'){
print('<div allign=center>Der skete en uventet fejl!</div>');
} else {
print('<div allign=center>Du har nu tilknyttet nicket '.$nick.' til din konto!</div>');
}
print('<meta http-equiv="refresh" content="3;URL=/irc.php" />');
} else {
print('<div allign=center><form method="post" action="irc.php?act=add">Indtast den kode du fik af botten: <input type="text" size=40 name="regkode" /><input type="submit" value="OK" style="height: 25px"></form></div>');
}
?>
Avatar billede fire-fox Nybegynder
27. juni 2008 - 17:44 #1
Nå FUCK jeg har ikke fjernet db login, men det er rettet nu :D så andre ikke kan komme ind
Avatar billede showsource Seniormester
27. juni 2008 - 18:41 #2
Du mangler nok ' omkring $regkode
Avatar billede fire-fox Nybegynder
27. juni 2008 - 19:26 #3
Får følgende fejl nu
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/virtual/xxxxxxxxx/htdocs/irc.php on line 53
Avatar billede kjeldsted Novice
27. juni 2008 - 19:29 #4
Rettede du $res = mysql_query("SELECT nick FROM nicks WHERE regkode = $regkode"); til $res = mysql_query("SELECT nick FROM nicks WHERE regkode = '$regkode'");...?
Avatar billede fire-fox Nybegynder
27. juni 2008 - 19:46 #5
yup og den giver følgende fejl:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/virtual/xxxxxxxxxx/htdocs/irc.php on line 36
Avatar billede kjeldsted Novice
27. juni 2008 - 19:53 #6
Hm. De to fejlkoder du har skrevet er ikke ens. Men hvor har vi så linje 36 og hvad står der på denne?
Avatar billede fire-fox Nybegynder
27. juni 2008 - 20:03 #7
beklager meget...

$res = mysql_query("SELECT regkode FROM nicks WHERE regkode = '$regkode'") or sqlerr(__FILE__, __LINE__);
$row = mysql_fetch_assoc($res);
Avatar billede showsource Seniormester
27. juni 2008 - 20:13 #8
Du kan prøve:
$res = mysql_query("SELECT regkode FROM nicks WHERE regkode = '$regkode'") or sqlerr(__FILE__, __LINE__);

if(mysql_num_rows($res) != 1) {
echo"Ingen rows fundet! ".$regkode;
exit;
}

$row = mysql_fetch_assoc($res);
Avatar billede kjeldsted Novice
27. juni 2008 - 20:14 #9
Hm. pt. er mit bedste bud en tryk fejl i linje 35. Men formoder du har tjekket det ordentlig. Har du desuden rette mere i ovenstående kode end at tilføje  or sqlerr(__FILE__, __LINE__); til linje 35?
Avatar billede fire-fox Nybegynder
27. juni 2008 - 20:16 #10
nope har ikke rettet mere end at tilføje den sqlerr
Avatar billede fire-fox Nybegynder
27. juni 2008 - 20:22 #11
Da jeg prøvede showsource mulighed


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 'd00afdeafe11d50fcecedac911e278aa''' at line 1

in /var/www/virtual/xxxxxxxxx/htdocs/irc.php, line 32
Avatar billede kjeldsted Novice
27. juni 2008 - 20:25 #12
Hm. Det burde ikke gøre en forskel hér. Men prøv evt. med:

$res = mysql_query("SELECT `regkode` FROM `nicks` WHERE `regkode`='$regkode'"") or sqlerr(__FILE__, __LINE__);
$row = mysql_fetch_assoc($res);
Avatar billede showsource Seniormester
27. juni 2008 - 20:29 #13
Jeg hopper altid ud/ind af php i sql: ( og bruger backtickets )
Hvad med $regkode? Hvad kan den indeholde?

echo"Test: ".$regkode."<p>";
$res = mysql_query("SELECT `regkode` FROM `nicks` WHERE `regkode` = '".$regkode."'") or sqlerr(__FILE__, __LINE__);
$row = mysql_fetch_assoc($res);
Avatar billede fire-fox Nybegynder
27. juni 2008 - 20:39 #14
nope gjorde ingen forskel...
Avatar billede fire-fox Nybegynder
27. juni 2008 - 20:42 #15
regkoden indeholder en passhash hvis man kan kalde det det som skal bruge på den her side som ikke lige virker hehe

regkode = d00afdeafe11d50fcecedac911e278aa
Avatar billede fire-fox Nybegynder
27. juni 2008 - 22:00 #16
sq en underlig fejl...
Avatar billede olebole Juniormester
27. juni 2008 - 22:34 #17
<ole>

Hvad udskrives, hvis du skriver:

$sql = "SELECT `regkode` FROM `nicks` WHERE `regkode` = '".$regkode."'";
$res = mysql_query($sql) or die ($sql."<br>".mysql_error());
$row = mysql_fetch_assoc($res);

/mvh
</bole>
Avatar billede fire-fox Nybegynder
27. juni 2008 - 22:41 #18
Den skriver ikke en skid :(

i får lige sqlen kan være det hjælper...

CREATE TABLE `nicks` (
  `id` int(16) NOT NULL auto_increment,
  `nick` varchar(32) NOT NULL default '',
  `regkode` text NOT NULL,
  `userid` int(16) default NULL,
  `language` varchar(255) NOT NULL default 'english',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM  AUTO_INCREMENT=6107 ;

`regkode` skal indeholde sådan noget her 1d26ca003fe5bdf1e10a485ab9be94bf
Avatar billede olebole Juniormester
27. juni 2008 - 22:43 #19
Hvis den ikke skriver noget, er det vel slet ikke dér fejlen ligger. Så er det nok i en af de andre SQL-sætninger  =)
Avatar billede fire-fox Nybegynder
27. juni 2008 - 22:45 #20
Garantert :) men hvor LoL :P syndes jeg har kigget alt igennem og kan bare ikke finde fejlen
Avatar billede olebole Juniormester
27. juni 2008 - 22:47 #21
Prøv at skrive de andre kald efter samme recept. Så må du da kunne finde fejlen
Avatar billede fire-fox Nybegynder
27. juni 2008 - 22:50 #22
Måske det er denne her "$userid = $CURUSER['id'];"
Avatar billede olebole Juniormester
27. juni 2008 - 23:24 #23
Det kan jeg ikke have nogen idé om. Jeg kan ikke finde noget i den stil i den kode, du viser  =)
Avatar billede fire-fox Nybegynder
27. juni 2008 - 23:28 #24
du kan ikke hvad
Avatar billede olebole Juniormester
27. juni 2008 - 23:34 #25
Hvad er "$userid = $CURUSER['id'];"? Jeg kan ikke se det i den kode, du viser
Avatar billede fire-fox Nybegynder
27. juni 2008 - 23:38 #26
curuser skal bruges til hvis man er medlem på en side så skal den gå ind og smide den id ind i "userid" som er i sqlen...

så den del skal jeg lige have fundet i mybb som det script skal arbejde sammen med havde jeg totalt glemt i kampens hede :)
Avatar billede fire-fox Nybegynder
27. juni 2008 - 23:47 #27
Nej du kan ikke se den da jeg troede den ikke skulle bruges, men jeg kom så i tanke om den skal bruges. Da det er det userid man har på siden den skal add i feltet "userid" :)

men kan man linke til 2 forskellige sql databaser på samme tid? det er på krævet...

da den host siden ligger på ikke vil tilbage "enhver vært" i forbindelses type, da min bot skal skrive til sqlen med det userid
Avatar billede fire-fox Nybegynder
28. juni 2008 - 22:01 #28
dem der har været med her smid lige svar, jeg har opgivet indtil videre overgår min forstand :)
Avatar billede fire-fox Nybegynder
09. december 2009 - 17:47 #29
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