Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Split

Użytkownik
  • Postów

    206
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    18

Odpowiedzi opublikowane przez Split

  1. Cześć. Mam pewien problem. Otóż zainstalowałem sobie na localhost IPS 4. Problem pojawia się gdy wchodzę w obojętnie jaką zakładkę i nawet na stronie głównej. Do adresu url dodaje się takie coś: ?ct=1562162127 i to zmienia numerki. Czyli wygląda to tak na stronie głównej: localhost/?ct=1562162127. Jak mogę to naprawić? IPS 4 jest oryginalny z Client Area.

  2. 18 minut temu, aXen napisał:

    Niedawno poruszałem ten temat na forum IPSu.

    https://invisioncommunity.com/forums/topic/452070-443-release-is-available/?do=findComment&comment=2786555

    Rozwiązanie to wgrać na nowo całą paczkę bez pliku konfiguracyjnego i uruchomić ręcznie aktualizację przez link

    
    twojastrana.pl/admin/upgrade

    Z wersji 4.4.3 do 4.4.3.

     

    Posiadam najnowszą wersję z IPS 4.4.3 świeżo zainstalowaną, nic nie aktualizowałem.

  3. Cześć. Napisałem sobie ostatnio kod na rejestrację IPS na innej stronie. Ustawiłem że konto jest nie aktywne i musi osoba potwierdzić je klikając w link na e-mailu. Zrobiłem funkcję, która generuje kod aktywacyjny:

    	function _Validating($member) {
    		\IPS\Db::i()->delete('core_validating', ['member_id=? and new_reg=1', $member->member_id]);
    
    		\IPS\Db::i()->insert('core_validating', [
    			'vid' => md5($member->members_pass_hash . \IPS\Login::generateRandomString()),
    			'member_id' => $member->member_id,
    			'entry_date' => time(),
    			'new_reg' => 1,
    			'ip_address' => $member->ip_address,
    			'user_verified' => false,
    			'spam_flag' => false,
    			'email_sent' => time(),
    			'do_not_delete' => false
    		]);
    	}

    Wszystko działa jak należy, tylko że podczas pierwszego logowania wyskakuje żebym potwierdził konto ale na poczcie nic nie przychodzi. Muszę klikać przycisk "Wyślij ponownie link aktywacyjny". Chciałbym żeby od razu wysłało ten link aktywacyjny.

     

    Kod od rejestracji:

    $member = new \IPS\Member;
    $member->name = $username;
    $member->email = $email;
    $member->members_pass_hash = password_hash($password, PASSWORD_BCRYPT);
    $member->members_bitoptions['validating'] = true;
    $member->save();
    
    _Validating($member);

    Z góry dziękuję za pomoc.

  4. Po odnowieniu licencji możesz ją przetransferować. Zależy czy jest możliwość transferu bo chyba jak licencja została wcześniej przeniesiona na inne konto to teraz to już nie będzie możliwości, trzeba z IPS się dogadywać.

  5. 12 godzin temu, Da Ruś napisał:

    Metoda \IPS\Task nie posiada konstruktora, więc nie możesz użyć $this.

     

    PS: Nie musisz przypisywać połączenia do zmiennej, jęsli używasz \IPS\Db, ustawiłeś połączenie i identyfikator na 'external', więc w każdym zapytaniu używaj \IPS\Db::i('external'), to jest Twoja 'zmienna' identyfikująca właśnie to połączenie.

     

    Czy podczas wykonywania zapytania muszę dodawać warunek czy istnieje połączenie czy po prostu jeżeli nie połączy się z inną bazą danych to nie wyświetli błędu?

    
            $connection = \IPS\Db::i('test');
    
     
    
            if (isset($connection)) {
    
                $connection->insert('users', array(
    
                    'id' => $member->member_id,
    
                    'username' => $member->name,
    
                    'email' => $member->email,
    
                    'password' => $member->members_pass_hash,
    
                    'ip' => $member->ip_address,
    
                ));
    
            }

  6. 55 minut temu, maxerxxl napisał:

     

    Bardzo dziękuję Ci za pomoc. To był mój błąd bo zamiast stworzyć aplikację stworzyłem hook. A teraz utworzyłem ją uruchomiłem dodatek Membersync i tam wprowadziłem w odpowiedniej funkcji kod. Problem rozwiązany.

     

    Jednak mam jeszcze jedno pytanie. Dlaczego wywala mi błąd z tego pliku gdzie mam połączenie do zewnętrznej bazy danych?

    <?php
    /**
     * @brief		serverSync Task
     * @author		<a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
     * @copyright	(c) Invision Power Services, Inc.
     * @license		https://www.invisioncommunity.com/legal/standards/
     * @package		Invision Community
     * @subpackage	serversync
     * @since		28 Apr 2019
     */
    
    namespace IPS\serversync\tasks;
    
    /* To prevent PHP errors (extending class does not exist) revealing path */
    if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
    {
    	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
    	exit;
    }
    
    /**
     * serverSync Task
     */
    class _serverSync extends \IPS\Task
    {
    	public $_connection;
    
    	public function _getConnection()
    	{
    		return $this->_connection;
    	}
    
    	/**
    	 * Execute
    	 *
    	 * If ran successfully, should return anything worth logging. Only log something
    	 * worth mentioning (don't log "task ran successfully"). Return NULL (actual NULL, not '' or 0) to not log (which will be most cases).
    	 * If an error occurs which means the task could not finish running, throw an \IPS\Task\Exception - do not log an error as a normal log.
    	 * Tasks should execute within the time of a normal HTTP request.
    	 *
    	 * @return	mixed	Message to log or NULL
    	 * @throws	\IPS\Task\Exception
    	 */
    	public function execute()
    	{
    		try {
    			$this->_connection = \IPS\Db::i('external', array(
    				'sql_host'        => 'xxx',
    				'sql_user'        => 'xxxx',
    				'sql_pass'        => 'xxx',
    				'sql_database'    => 'xxx',
    				'sql_port'        => 3306,
    				'sql_socket'    => '/var/lib/mysql.sock',
    				'sql_utf8mb4'    => true,
    			));
    		}
    
    		catch( \IPS\Db\Exception $e ){}
    	}
    	
    	/**
    	 * Cleanup
    	 *
    	 * If your task takes longer than 15 minutes to run, this method
    	 * will be called before execute(). Use it to clean up anything which
    	 * may not have been done
    	 *
    	 * @return	void
    	 */
    	public function cleanup()
    	{
    		
    	}
    }

     

    Błąd

    Using $this when not in object context

  7. Przy developer mode błąd:

    Call to undefined method IPS\Member::loggedIn()

     

    Kod:

    //<?php
    
    /* To prevent PHP errors (extending class does not exist) revealing path */
    if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
    {
        exit;
    }
    
    namespace IPS;
    
    class hook22 extends \IPS\Patterns\ActiveRecord
    {
        private $connection;
    
        public function __construct()
        {
            $this->connection = new PDO('mysql:host=xxx;dbname=xxxx;charset=utf8', 'xxxx', 'xxxx');
        }
    
        /**
        * Member account has been created
        *
        * @param $member \IPS\Member New member account
        * @return void
        */
    
        public function onCreateAccount($member)
        {
            $query = $this->connection->prepare('INSERT INTO og_users SET id = ?, username = ?, email = ?, password = ?, ip = ?, added = DATE_FORMAT(FROM_UNIXTIME(?), "%Y-%m-%d %H:%i:%s")');
    
            $query->execute(array(
                $member->member_id,
                $member->name,
                $member->email,
                $member->members_pass_hash,
                $member->ip_address,
                $member->joined
            ));
        }
    }

     

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.