Nasıl PEAR :: DB kullanmadan bu kodu yeniden yazmak mı?

1 Cevap php

I Log into Pligg using Twitter OAuth gelen Pligg Twitter giriş modülü yüklemeye çalışıyorum.

Ben yukarıdaki sayfadan ZIP dosyasını indirilen ve tüm talimatları takip. Sonra dosyalardan biri benim hosting şirketi tarafından sağlanan değil ki, PEAR kullanıyorsunuz gerçekleşmiştir.

Gelen tüm kod confirm.php burada:

Nasıl bu kod yüzden PEAR kullanmak zorunda değilsiniz yeniden mi? Bu bile mümkün mü? Ben PHP ile gerçekten bir acemi değilim.

<?php
include 'EpiCurl.php';
include 'EpiOAuth.php';
include 'EpiTwitter.php';
include 'secret.php';
require_once 'DB.php';

$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);

$twitterObj->setToken($_GET['oauth_token']);
$token = $twitterObj->getAccessToken();
$twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);

try {
    setcookie('oauth_token', $token->oauth_token);
    setcookie('oauth_token_secret', $token->oauth_token_secret);

    $twitterInfo= $twitterObj->get_accountVerify_credentials();
    $twitterUserName = $twitterInfo->screen_name;
    $twitterAvatar = $twitterInfo->profile_image_url;
} catch (Exception $e) {
    die("Sorry, there was an error connecting to twitter:".$e->getMessage());
}

$DB =& DB::connect('mysqli://USER:PASS@localhost/DB');
if (DB::isError($DB))
{
    echo 'Cannot connect to database: ' . $DB->getMessage();
}
else
{
    $query = 'select twitter_user_name, pligg_user_name, pligg_password FROM twitter_user_map where twitter_user_name = ?';
    $result = $DB->query($query, $twitterUserName);
    if (DB::isError ($result)) {
             die ("Select failed: " . $result->getMessage () . "\n");
        }
    $userDetails = $result->fetchRow(DB_FETCHMODE_OBJECT);
    if ($result->numRows() == 0) {
        createAccount($DB,$twitterUserName, 0, $twitterUserName);
    } else {
        redirectToLogin($userDetails->pligg_user_name, $userDetails->pligg_password);
    }
}

function createAccount($DB, $username, $delta, $twitterUsername) {
    $pass = genRandomString();
    $query = "insert into twitter_user_map( twitter_user_name, pligg_user_name, pligg_password) values ('$twitterUsername', '$username','$pass' )";
    $result = $DB->query($query);
    if (DB::isError ($result)) {
         die ("INSERT failed: " . $result->getMessage () . "\n");
    }
    if ($DB->affectedRows() == 0) {
        $newUsername = $twitterUsername;
        if ($delta != 0) {
            $newUsername = $username . "" . $delta;
        }
        createAccount($DB,$newUsername, $delta + 1, $twitterUsername);
    } else {
        redirectToRegister($username, $pass);
    }
}

function redirectToRegister($username, $pass) {
    print "redirectToRegister";
    $postdata = http_build_query(
        array(
            'reg_username' => $username,
            'reg_email' => "",
            'reg_password' => $pass,
            'reg_password2' => $pass,
            'recaptcha_challenge_field' => '02kOXNvO91qx4TJ6dC8evG6SkqQvGlUfjxF8bvaurguiAsftwQYut68EfNxZh6ZYMTyqcrWNT4RooYxxfjueRVFIkcN_UwRI-J6bjWZczbLk4p0Tqml6tVHQeyocVvU0SwUKUn_kmtDV4Y7kGfbn-qyiYt55-iaFojc060MJ-jAZ68z5Vlw8xrvPRhLW6JAO1F2D6oAY7vsWI_e1Nmhww1lQ6qsL10W4wWrCWLywOIZVIZnsa5p61_IQf9Yn_NV-Nir_DCWxKMUZieZkL1pril6_kMaj0B',
            'recaptcha_response_field' => '',
            'regfrom' => "full",
            'from_external' => "1"
        )
    );
    $opts = array('http' =>
        array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => $postdata
        )
    );
    $context  = stream_context_create($opts);
    $result = file_get_contents('sitename/register.php', false, $context);
    print $result;
}

function redirectToLogin($username, $password) {
    $postdata = http_build_query(
        array(
            'username' => $username,
            'password' => $password,
            'persistent' => "on",
            'from_external' => "1"
        )
    );
    $opts = array('http' =>
        array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => $postdata
        )
    );
    $context  = stream_context_create($opts);
    $result = file_get_contents('sitename/login.php', false, $context);
    print $result;
}

function genRandomString() {
    $length = 10;
    $characters = '123456789abcdefghijklmnopqrstuvwxyz';
    $string = '';
    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters))];
    }
    return $string;
}

?>

Update

Dan PEAR DB Basics,

Örnek 8-1 James Bond film hakkında bilgi bir HTML tablosu oluşturmak için bir programdır. Bu, bir veritabanı, konu sorguları bağlanmak hataları için kontrol edin ve HTML içine sorgu sonuçlarını dönüştürmek için (PHP ile birlikte) PEAR DB kütüphanesi için nasıl kullanılacağını gösterir. Kütüphane (DB :: connect () DB :: HATALIDIR ()) sınıfı yöntemlerinin bir karışımı ile, nesne yönelimli ve nesne yöntemleri ($ db-> query (), $ q-> fetchInto ()).

Evet. Ben bu şeyi yeniden yazmak o kadar da zor değil sanırım. Ben bunu çözemezsin.

1 Cevap

PEAR is nothing more than another PHP script and can be installed to the any hosting manually. And I guess there is no way to "show a way to rewrite", this is more likely "rewrite this code for me" question.

hatta pligg promosyon soru