Avatar billede cmau Nybegynder
16. februar 2005 - 17:01 Der er 14 kommentarer og
1 løsning

You have an error in your SQL syntax.

Hejsa jeg får en meget lang fejl, nemlig denne:

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 1
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Koden er her:

<?
session_start();

include('sql.php');

$brugernavn = $_POST[brugernavn];
$kode = md5($_POST[kode]);

$tjek = mysql_query("SELECT * FROM woox_brugere WHERE brugernavn = '$brugernavn' AND kode = '$kode'") or die(mysql_error());

$aktiv = mysql_fetch_array($tjek);

if(mysql_num_rows($tjek) == '0') {

header("Location: main.php?side=forkert_login");

} elseif($aktiv[aktiv] == 'nej') {

header("Location: main.php?side=forkert_aktiv");

} else {

$row = mysql_fetch_array($tjek);

$_SESSION[brugernavn] = $row[brugernavn];
$_SESSION[brugerid] = $row[id];


mysql_query("UPDATE woox_brugere SET online= 'ja' WHERE id=".$_SESSION[brugerid]."")  or die(mysql_error());

}
?>
<SCRIPT type="text/javascript">
java script:history.back(1)
</script>Hvis der ikke sker noget så tryk <a href="index.php">her</a>.
Avatar billede Slettet bruger
16. februar 2005 - 17:12 #1
prøv at skrive @session_start();
Avatar billede cmau Nybegynder
16. februar 2005 - 17:29 #2
Hvorfor det? Normal session_start(); har altid virket for mig. Den eneste grund til at fejlen begyndte at komme var at jeg skulle gøre sådan at den først tjekker om brugeren findes og hvis den gør det så skal den tjekke om brugeren er aktiv, og hvis den ikke er aktiv skriver den header("Location: main.php?side=forkert_aktiv"); og hvis bruger ikke fantes eller koden var forkert skrev den header("Location: main.php?side=forkert_login");

Men kan ikke få det til at virke :/

Prøver lige med @ inden
Avatar billede cmau Nybegynder
16. februar 2005 - 17:30 #3
Får samme fejl, med @
Avatar billede cmau Nybegynder
16. februar 2005 - 17:32 #4
Tror det er fordi jeg har placeret nogle { og } forkert!
Avatar billede coderdk Praktikant
16. februar 2005 - 18:47 #5
Er det på din egen server eller er det hostet et sted?
Avatar billede cmau Nybegynder
16. februar 2005 - 18:58 #6
Den er hostet hos b-one, men jeg har brugt session mange gange. Jeg tror på en eller anden måde jeg kom til at ændre for meget i php filen, da jeg skulle smide ind så ikke aktiverede bruger ikke kunne logge ind.
Avatar billede cmau Nybegynder
16. februar 2005 - 19:24 #7
Hvis jeg fjernede dette:

else {

$row = mysql_fetch_array($tjek);

$_SESSION[brugernavn] = $row[brugernavn];
$_SESSION[brugerid] = $row[id];


mysql_query("UPDATE woox_brugere SET online= 'ja' WHERE id=".$_SESSION[brugerid]."")  or die(mysql_error());

}

Så giver den ingen fejl :S.. så fejlen må være der
Avatar billede coderdk Praktikant
16. februar 2005 - 19:26 #8
Sker der noget hvis du "gør det ordentligt":

else {

$row = mysql_fetch_array($tjek);

$_SESSION['brugernavn'] = $row[brugernavn];
$_SESSION['brugerid'] = $row[id];

mysql_query("UPDATE woox_brugere SET online= 'ja' WHERE id=".$_SESSION['brugerid']."")  or die(mysql_error());

}
Avatar billede coderdk Praktikant
16. februar 2005 - 19:26 #9
Hmm ja ' om brugernavn og id i $row også ;)
Avatar billede cmau Nybegynder
16. februar 2005 - 19:31 #10
16/02-2005 19:26:26 > virker ikke

16/02-2005 19:26:48 > hvad mener du?
Avatar billede hmortensen Nybegynder
16. februar 2005 - 19:32 #11
Du bruger mysql_fetch_array() 2 gange, uden at resette pointeren i array'et.

Prøv sådan her:
else {

$_SESSION['brugernavn'] = $aktiv['brugernavn'];
$_SESSION['brugerid'] = $aktiv['id'];

mysql_query("UPDATE woox_brugere SET online= 'ja' WHERE id=".$_SESSION['brugerid'])  or die(mysql_error());

}
Avatar billede cmau Nybegynder
16. februar 2005 - 19:32 #12
Hvis jeg ændre:

mysql_query("UPDATE woox_brugere SET online= 'ja' WHERE id=".$_SESSION['brugerid']."")  or die(mysql_error());

til:

mysql_query("UPDATE woox_brugere SET online = 'ja' WHERE id='$_SESSION[brugerid]'")  or die(mysql_error());

giver den ikke fejl, men logger heller ikke ind. Den går bare tilbage!
Avatar billede hmortensen Nybegynder
16. februar 2005 - 19:33 #13
Coderdk mener at du skal sætte '' om indexet i arrays, når det er en streng:

$array['index'] og ikke $array[index]
Avatar billede cmau Nybegynder
16. februar 2005 - 19:34 #14
TAAAK hmortensen !!! Nu virker det :D :D Smider du svar?
Avatar billede hmortensen Nybegynder
16. februar 2005 - 19:35 #15
Det var så lidt
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