[phpBB] Смяна на ник, чрез СМС ( работи с mobio )

Всякакви extensions за форумната система phpBB.
Потребителски аватар
cybertron
Junior Member
Мнения: 40
Регистриран: 07 дек 2017, 10:37
Баланс: Locked

19 яну 2018, 21:49

Така, един скрипт написан на ООП, за смяна на ник на форумната система PHPBB3. Първо трябва да си направите един файл и го кръстете ChangeUsername.php ( с главната буква )! В него сложете този код:

Код: Трябва да си влязъл в системата, за да можеш да виждаш линковете

<?php
class ChangeName {
     
    private $newUsername;
    private $table_prefix="phpbb_";
    private $smsCode;
    private $serverID=16;
    
    public function __construct($setId) {
        $this--->smsCode=trim(htmlspecialchars(addslashes($_POST['smscode'])));
        $this->newUsername=trim(htmlspecialchars($_POST['username']));
        $this->changeUsername($this->newUsername, $setId, $this->smsCode);
    }
     
    public function changeUsername($username, $id, $smscode) {
    if($this->mobioCheckcode($this->serverID, $smscode, 0)==1) {
        if($username==NULL) {
            echo 'Моля попълнете новият ви ник.';
        } elseif(strlen($username)<3){
            echo 'Моля напишете ник, по-дълъг от 3 символа.';
        } else {
            $username_clean = strtolower($username);
            $sql = $this->runQuery("UPDATE `".$this->table_prefix."users` SET `username`='".$username."', `username_clean`='".$username_clean."' WHERE `user_id`='".$id."'");
            echo "Успешно сменихте своето потребителско име.";
        }
    } else {
        echo "SMS Кодът е грешен.";
    }
    }
     
    private function runQuery($sql) {
        $connection = mysql_query($sql);
        if(mysql_error()) {
            echo mysql_error()." to sql: ".$sql;
        }
        return $connection;
    }
     
    private function mobioCheckcode($servID, $code, $debug=0) {
 
    $res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$servID&code=$code");
 
    $ret = 0;
    if($res_lines) {
 
        if(strstr($res_lines[0], "PAYBG=OK")) {
            $ret = 1;
        }else{
            if($debug)
                echo $line."\n";
        }
    }else{
        if($debug)
            echo "Unable to connect to mobio.bg server.\n";
        $ret = 0;
    }
 
    return $ret;
    }
}
Като на 5 ред на мястото на phpbb_ сложете префикса на вашият форум ( задължително последван от долна черта ) и на ред 7ми напишете ID-то на вашата услуга в мобио.

След което си направете един index.php ( или го кръстете по друг начин, това ще е страницата, в която ще си сменяте името) файл. В началото на страницата сложете този код:

Код: Трябва да си влязъл в системата, за да можеш да виждаш линковете

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
 
// Start session management
$user--->session_begin();
$auth->acl($user->data);
$user->setup();
include("config.php");
А там, където искате да излиза функцията сложете този:

Код: Трябва да си влязъл в системата, за да можеш да виждаш линковете

<?php
        include("ChangeName.php");
        if($user--->data['user_id']==ANONYMOUS) {
            echo 'Трябва да бъдете логнат, за да можете да си сменяте потребителското име.';
        } elseif($user->data['is_registered']) {
            ?>
        <form action="" method="POST">
                <input type="text" name="username" value="<?PHP echo $user->data['username']; ?>">
 
                <input type="text" name="smscode" value="SMS Code">
                <input type="submit" name="send" value=" Смени ми името ">
        </form>
            <!--?PHP
            if(isset($_POST['send'])) {
                $change = new ChangeName($user--->data['user_id']);
            }
        } else {
            echo "";
        }
        ?>
Можете да използвате ваш config.php файл, а може и този: ( config.php файла е задължителен! )

Код: Трябва да си влязъл в системата, за да можеш да виждаш линковете

<!--?PHP
$server = "localhost";
$username = "root";
$password = "";
$db_name = "db";
$connect = mysql_connect($server, $username, $password) or die (mysql_error());
mysql_select_db($db_name, $connect) or die (mysql_error());
 
mysql_query("SET NAMES utf8");
?-->
Източник: cs-bg.info

Отговори

Върни се в “Extensions”

  • Информация
  • Кой е на линия

    Потребители, разглеждащи този форум: Няма регистрирани потребители и 0 госта