[FB SDK] sql mislukt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Php knipper

php knipper

24/09/2013 21:23:32
Quote Anchor link
Hallo,

Ik zit te proberen met de fb sdk. Nu heb ik 2 bestanden, bij het inloggen op index.php gaat het bij sommige gebruikers mis. Ik weet niet wat er fout gaat maar bij sommige fb gebruikers blijft hij nieuwe rijen aanmaken in de database en die zijn allemaal dezelfde zelfs het fb id.

Wat is er mis met mijn code?
(sorry voor de grote brokken maar ik snap echt niet wat er fout gaat)

fbaccess.php
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
<?php
try{
    include_once "main/plugin/facebook/src/facebook.php";
}
catch(Exception $e){
    error_log($e);
}

// Create our application instance
$facebook = new Facebook(array(
    'appId'        => $app_id,
    'secret'    => $app_secret,
    ));

 
// Get User ID
$user = $facebook->getUser();
// We may or may not have this data based
// on whether the user is logged in.
// If we have a $user id here, it means we know
// the user is logged into
// Facebook, but we don’t know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.

 
if($user){
//==================== Single query method ======================================
    try{
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
    }
catch(FacebookApiException $e){
        error_log($e);
        $user = NULL;
    }

//==================== Single query method ends =================================
}
 
if($user){
    // Get logout URL
    $logoutUrl = $facebook->getLogoutUrl();
}
else{
    // Get login URL
    $loginUrl = $facebook->getLoginUrl(array(
        'scope'        => 'user_about_me,user_birthday,user_education_history,email,user_hometown,user_location',
        'redirect_uri'    => $site_url,
        ));
}

?>


index.php
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
67
68
69
70
71
72
73
74
75
                <?php
                    include "fbaccess.php";
                    if(!empty($user)) {
                        //ingelogdt, data in database bijwerken ;)
                        $gebruiker_sql = mysqli_query($connectie, "SELECT id, voornaam, keer_op_site FROM gebruikers WHERE FB_id = '".mysqli_real_escape_string($connectie, $user)."'");
                        if($gebruiker_sql == FALSE) {
                            db_error('Er is een fout opgetreden bij het ophalen van u gegevens voordat deze konden worden bijgewerkt, (sql fout). ', mysqli_error($connectie));
                        }
elseif(mysqli_num_rows($gebruiker_sql) == "0") {
                            if($json = json_decode(file_get_contents('https://graph.facebook.com/'.$user.'?fields=id,name,birthday,email,first_name,last_name&access_token='.$facebook->getAccessToken()))) {
                                    $invoegen_sql = mysqli_query($connectie, "    INSERT INTO gebruikers
                                                                (
                                                                    FB_id,
                                                                    FB_acc_token,
                                                                    voornaam,
                                                                    achternaam,
                                                                    mailadres,
                                                                    laatste_login_ip,
                                                                    punten,
                                                                    keer_op_site,
                                                                    registratie_datum
                                                                )
                                                                VALUES
                                                                (
                                                                    '"
.mysqli_real_escape_string($connectie, $user)."',
                                                                    '"
.mysqli_real_escape_string($connectie, $facebook->getAccessToken())."',
                                                                    '"
.mysqli_real_escape_string($connectie, $json->first_name)."',
                                                                    '"
.mysqli_real_escape_string($connectie, $json->last_name)."',
                                                                    '"
.mysqli_real_escape_string($connectie, $json->email)."',
                                                                    'NULL',
                                                                    '3',
                                                                    '0',
                                                                    '"
.date("Y-m-d H:i:s")."'
                                                                )"
);
                                    if($invoegen_sql == FALSE) {
                                        db_error('Er is een fout opgetreden bij het aanmaken van u gebruiker op ons systeem, (sql fout). ', mysqli_error($connectie));
                                    }
else {
                                        echo '    <h1>Welkom</h1>U bent in onze database toegevoegd. Gelieve de pagina te herladen zodat wij u kunnen inloggen.
                                            <meta http-equiv="refresh" content="0">'
;
                                    }
                            }
else {
                                echo 'Er is een fout opgetreden bij het ophalen van u gegevens van facebook, probeer het later nog eens. U bent niet ingeschreven.';
                            }
                        }
else {
                        $gebruiker = mysqli_fetch_assoc($gebruiker_sql);
                            //update bestaande gebruiker
                            if($json = json_decode(file_get_contents('https://graph.facebook.com/'.$user.'?fields=id,name,birthday,email,first_name,last_name&access_token='.$facebook->getAccessToken()))) {
                                $keer = $gebruiker['keer_op_site'] + 1;
                                $update_sql = mysqli_query($connectie, "    UPDATE
                                                            gebruikers
                                                        SET
                                                            FB_acc_token = '"
.mysqli_real_escape_string($connectie, $facebook->getAccessToken())."',
                                                            voornaam = '"
.mysqli_real_escape_string($connectie, $json->first_name)."',
                                                            achternaam = '"
.mysqli_real_escape_string($connectie, $json->last_name)."',
                                                            mailadres = '"
.mysqli_real_escape_string($connectie, $json->email)."',
                                                            laatste_login_ip = '"
.$_SERVER['REMOTE_ADDR']."',
                                                            keer_op_site = '"
.$keer."'
                                                        WHERE
                                                            FB_id = '"
.mysqli_real_escape_string($connectie, $user)."'");
                                if($update_sql == FALSE) {
                                    db_error('Er is een fout opgetreden bij het update van u gegevens, (sql fout). ', mysqli_error($connectie));
                                }

                                echo '    Welkom terug '.$gebruiker['voornaam'].'
                                    <meta http-equiv="refresh" content="0">'
;
                                $_SESSION['gebruiker'] = $gebruiker['id'];
                                $_SESSION['gebruikersnaam'] = $json->name;
                            }
else {
                                echo 'Updaten mislukt, data kon niet worden opgehaald van facebook.';
                            }
                        }
                    }
else {
                        //niet ingelogdt
                        echo '    <h1>Niet ingelogd.</h1>
                            U bent momenteel niet ingelogd op deze site.
                    }

                ?>
 
PHP hulp

PHP hulp

24/04/2024 18:32:09
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/09/2013 21:53:11
Quote Anchor link
(mysqli_num_rows($gebruiker_sql) == "0" ===> mysqli_num_rows($gebruiker_sql) == 0
 
Php knipper

php knipper

24/09/2013 22:12:39
Quote Anchor link
@frank

Bedankt, getallen erbuiten. Helaas nog wel steeds hetzelfde probleem
Gewijzigd op 24/09/2013 22:12:53 door php knipper
 
DavY -

DavY -

25/09/2013 01:18:20
Quote Anchor link
Probeer eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
LIMIT 1


Bij je query te zetten
 
Php knipper

php knipper

25/09/2013 12:43:44
Quote Anchor link
dat helpt helaas ook niet.

Toevoeging op 25/09/2013 13:15:26:

ik heb mijn query even opgeslagen. en $user is daar anders dan op andere plaatsen

Toevoeging op 25/09/2013 13:23:13:

heb het gevonden
ini(11) was niet te klein
 



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.