SQL Query geeft geen resultaat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 19:24:00
Quote Anchor link
Vervolg op mijn vorige topic.... das nooit goed!

Maar ik kom er niet uit, de databaseresultaten krijg ik niet uitgelezen, ze geven allemaal ' '...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php

session_start();

include('../connection.php');

if(isset($_POST['username'],$_POST['password'])) {
    
    // Bouw query op om gegevens te testen
    
    $query = sprintf("SELECT `username`,`email`,`ingame_name`,`am_money`,`am_coins`,`premium`,`premium_ends` FROM `users` WHERE `username` = '%s' AND `password` = '%s' LIMIT 1", $_POST['username'], sha1($_POST['password']));
    
    // Maak verbinding met de database en voer de query uit
    
    $connection = mysql_pconnect($connection_host,$connection_user,$connection_pass);
    $database = mysql_select_db($connection_db);
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);
    $num_rows = mysql_num_rows($result);
    
    // Controleer of er een match is gevonden voor combinatie gebruikersnaam/wachtwoord, stuur anders terug
    
    if($num_rows =! 1) {
        header("Location: ".$_SERVER['HTTP_REFERER']);
        exit;
    }
else {
        
        // Start een sessie en geef user vars mee
        
        unset($_SESSION['userinfo']);
        
        $_SESSION['userinfo'] = array();
        $_SESSION['userinfo']['username'] = $row['username'];
        $_SESSION['userinfo']['email'] = $row['email'];
        $_SESSION['userinfo']['ingamename'] = $row['ingame_name'];
        $_SESSION['userinfo']['money'] = $row['am_money'];
        $_SESSION['userinfo']['coins'] = $row['coins'];
        $_SESSION['userinfo']['premium'] = $row['premium'];
        $_SESSION['userinfo']['premium_ends'] = $row['premium_ends'];
        $_SESSION['userinfo']['loggedin'] = date("Y m d H:i");
        
        $_SESSION['login'] == true;
        
        echo '<script type="text/javascript">window.alert(\'Gebruikersnaam: '.$row['username'].' // Ingame-naam: '.$row['ingame_name'].'\');</script>';
        
        // Stel een cookie in om automatisch naar de loginpagina te gaan
        
        if((isset($_POST['gotologinpage'])) && (!empty($_POST['gotologinpage'])) && ($_POST['gotologinpage'] == 1)) {
            setcookie("autologinpage",true,time()+(86400 * 365),'/');
        }
else {
            setcookie("autologinpage",false,0,'/');
        }

        
        // Stuur door naar spel
        
        header("Location: ./");
    }

    
    mysql_close($connection);
    mysql_free_result($result);
    
}
else {
    header("Location: ".$_SERVER['HTTP_REFERER']);
}


?>


Op dit moment is het zo dat als ik hier de sha1 functie weghaal, en in de database de hash vervang door de waarde die hij moet vertegenwoordigen, werkt het wel
Gewijzigd op 01/01/1970 01:00:00 door Jan-Jelle Kester
 
PHP hulp

PHP hulp

04/11/2024 21:48:15
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 19:24:00
Quote Anchor link
En ja, de database is gevuld !
 
- SanThe -

- SanThe -

05/10/2009 19:34:00
Quote Anchor link
Gebruik geen backtics en maak eens een nette foutafhandeling.

Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 19:40:00
Quote Anchor link
Ik krijg geen errors... Alleen dat de headers al verzonden zijn (door de echo om te kijken of er resultaat is). Verder geen extra info....
 
- SanThe -

- SanThe -

05/10/2009 19:46:00
Quote Anchor link
SanThe schreef op 05.10.2009 19:34:
Gebruik geen backtics en maak eens een nette foutafhandeling.

Verder klopt regel 23 niet en regel 42 is nutteloos.
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 19:48:00
Quote Anchor link
42 is idd nutteloos ;) dankje. En helemaal bedankt voor die vergelijking, dat is idd een fout ivm snel typen.

En waarom geen backtics gebruiken?
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 19:55:00
Quote Anchor link
Het probleem wordt nog gekker, als ik de SHA1 functie weghaal en de hash uit mijn db vervang door een 'gewone' string (bijv. in db admin opslaan ipv d033e22ae348aeb5660fc2140aec3585), dan werkt het wel....

Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Jan-Jelle Kester
 
Hipska BE

Hipska BE

05/10/2009 19:57:00
Quote Anchor link
Waarom wel?

Ze zorgen toch enkel maar voor problemen...
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 19:59:00
Quote Anchor link
Het moet wel veilig ;) en het is niet de bedoeling dat ik iemands wachtwoord kan zien, veel mensen zijn nog zo gek overal hetzelfde ww voor te gebruiken.
 
- SanThe -

- SanThe -

05/10/2009 20:07:00
Quote Anchor link
Dan zal je databaseveld wel te klein zijn voor de sha(). Minimaal 40 characters.
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 20:08:00
Quote Anchor link
hij is 40 lang... ik maak hem ff 41 miss helpt dat
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 20:10:00
Quote Anchor link
hmm nu lukt het wel:P toch gek...

Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Jan-Jelle Kester
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 20:10:00
Quote Anchor link
in ieder geval bedankt!
 
- SanThe -

- SanThe -

05/10/2009 20:12:00
Quote Anchor link
JJ schreef op 05.10.2009 20:08:
hij is 40 lang... ik maak hem ff 41 miss helpt dat

Maak het om te testen dan even 'echt' groter. 200 of zoiets. Er bestaan ook sha()'s van 80 en 160. Standaard is het in php naar mijn weten altijd 40.
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 20:13:00
Quote Anchor link
bij mij wel, en met 41 werkt het wel!
 
Jan Koehoorn

Jan Koehoorn

05/10/2009 20:26:00
Quote Anchor link
Je kunt een VARCHAR gerust 255 lang maken. MySQL pakt precies zoveel geheugen als nodig is om een veld te vullen.
 
Jan-Jelle Kester

Jan-Jelle Kester

05/10/2009 20:27:00
Quote Anchor link
Oke, fijn om te weten! Doe ik dat voortaan. PHP controleert toch of de lengte niet te lang (onpraktisch) is, en SQL injection natuurlijk. (in dit script nog in te bouwen, is 1 functie)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.