Witam.

Stworzyłem aplikację na facebooka. Użytkownik przechodzi do niej poprzez link

Cytat


Klikając "Przejdź do aplikacji" zostaje przekierowany do wybranego materiału.
Moim zadaniem jest "wyciągnięcie" informacji o nim (ID, imię, nazwisko, email) między kliknięciem Przejdź do aplikacji a przekierowaniem do tego materiału i zapisaniem ich do bazy danych do stworzonej już tabeli (bez fizycznej ingerencji użytkownika FB). Kod odpowiedzialny powinien zostać wrzucony do pliku "dane.php" do którego przekierowuje redirect.html (z linku wyżej), a dane.php zawiera przekierowanie do pożądanego materiału. Tak wygląda przerobiony przeze mnie kod:

Kod
<?
function connectToFacebook()
{
include_once('/home/facebook.php');
    // utworzenie obiektu $facebook
    $facebook = new Facebook(array(
      'appId'  => 'xxxx', // application id
      'secret' => 'zzzz, // secret
      'cookie' => true,
    ));
    
    return $facebook;
}

function getUser($facebook)
{
    
// utworzenie pustego obiektu użytkownika
    $me = null;

    // jeżeli użytkownik jest zalogowany na Facebooku
    // do zmiennej $uid zostanie zapisany identyfikator użytkownika
    // do zmiennej $me zostaną zapisane dane użytkownika
    if ($facebook) {
      try {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');
      } catch (FacebookApiException $e) {
        error_log($e);
      }
    }
    
    return $me;
}

/**
* rejestracja nowego użytkownika
* */
function registerNewUser($me)
{
    require '/home/db_conn.php';

    $insert = "INSERT INTO users (imie, nazwisko, email, haslo, fb_id) VALUES (" .
                "'" . $me['first_name'] . "', " .
                "'" . $me['last_name'] . "', " .
                "'" . sha1(time() ) . "', " .     // generowanie losowego hasła
                "'" . $me['id'] . "')";
    
    $result = $db->query($insert);
        
    $affected = $db->affected_rows;
    $db->close();
    
    if ($affected == 1)
        return true;
    else
        return false;
}


Plik db_conn.php:

Kod
<?php
$db = @new mysqli ("host","user","haslo","baza"); //łącze z bazą [serwer bazy,użytkownik,hasło]

  if (mysqli_connect_errno() != 0)
    {
        echo 'Blad polaczenia z baza';
        exit;
    }


Moje podstawowe pytanie brzmi - czy ten kod ma rację bytu? Stosując w tej postaci oraz wywołując kolejno te funkcje (nie wiem, czy dobrze to robię), wszystko działa teoretycznie poprawnie jednak żadne dane nie zostają wpisane do tabeli. W czym w zasadzie tkwi problem? Będę bardzo wdzięczny, jeśli ktoś krok po kroku pomoże mi się z tym uporać. Pozdrawiam. smile.gif