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

Nie działający plugin.


hamsterofficial

Rekomendowane odpowiedzi

Cześć, probowałem zrobić swój pierwszy plugin do IPS4, ktory by przechwytywal kupiona rzecz i wsadzal lkey, username itp. do mysql. Ale kod mi nie dziala, prosze o pomoc.

<?php
$ip = "localhost";
$username = "root";
$password = "";
$dbname = "auth";

/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	exit;
}

class hook
{
	public function onPurchaseGenerated( \IPS\nexus\Purchase $purchase, \IPS\nexus\Invoice $invoice )
    {
	try
	{
			try
			{
			    {
						if ($purchase->get__title == "PREMIUM V4") {
							$conn = new mysqli($ip, $username, $password, $dbname, 3306);
							$getid = $conn->query('SELECT ID FROM FinalAuth ORDER BY ID DESC LIMIT 1');
							$row = $getid->fetch_assoc();
							$newid = $row['ID'] + 1;
							$userid = $purchase->member->member_id;
							$checkusername = $conn->query("SELECT USERNAME FROM FinalAuth WHERE USERNAME='$userid'");
							$username_exist = $checkusername->num_rows;
							if($username_exist =< 1) {
								echo "username: '$userid' exist";
								return false;
							} else {
							$token = $purchase->licenseKey;
							$checktoken = $conn->query("SELECT LKEY FROM FinalAuth WHERE LKEY='$token'");
							$token_exist = $checktoken->num_rows;
							if($token_exist =< 1) return echo "token for user: '$userid' exist";
							$sql = "INSERT INTO FinalAuth (ID, LKEY, USERNAME, HWID) VALUES ('$newid', '$token', '$userid', '')";
						}
						if ($conn->query($sql) === TRUE) {
							echo 'added for '$username'';
						} else {
		    				echo "Error: " . $sql . "<br>" . $conn->error;
						}
				return parent::onPurchaseGenerated( $purchase, $invoice );
				$conn->close();
		    	} else {
		    		throw $e;
		    	}
			}
		}
		catch ( \RuntimeException $e )
		{
			if ( method_exists( get_parent_class(), __FUNCTION__ ) )
			{
				return \call_user_func_array( 'parent::' . __FUNCTION__, \func_get_args() );
			}
			else
			{
				throw $e;
			}
		}
	}
	catch ( \RuntimeException $e )
	{
		if ( method_exists( get_parent_class(), __FUNCTION__ ) )
		{
			return \call_user_func_array( 'parent::' . __FUNCTION__, \func_get_args() );
		}
		else
		{
			throw $e;
		}
	}
  }
}

 

Edytowane przez hamsterofficial
Odnośnik do komentarza
Udostępnij na innych stronach

Czemu dwa razy jest "try"?

 

class hook
{
	public function onPurchaseGenerated( \IPS\nexus\Purchase $purchase, \IPS\nexus\Invoice $invoice )
    {
	try
	{
						if ($purchase->get__title == "PREMIUM V4") {
							$conn = new mysqli($ip, $username, $password, $dbname, 3306);
							$getid = $conn->query('SELECT ID FROM FinalAuth ORDER BY ID DESC LIMIT 1');
							$row = $getid->fetch_assoc();
							$newid = $row['ID'] + 1;
							$userid = $purchase->member->member_id;
							$checkusername = $conn->query("SELECT USERNAME FROM FinalAuth WHERE USERNAME='$userid'");
							$username_exist = $checkusername->num_rows;
							if($username_exist =< 1) {
								echo "username: '$userid' exist";
								return false;
							} else {
							$token = $purchase->licenseKey;
							$checktoken = $conn->query("SELECT LKEY FROM FinalAuth WHERE LKEY='$token'");
							$token_exist = $checktoken->num_rows;
							if($token_exist =< 1) return echo "token for user: '$userid' exist";
							$sql = "INSERT INTO FinalAuth (ID, LKEY, USERNAME, HWID) VALUES ('$newid', '$token', '$userid', '')";
						}
						if ($conn->query($sql) === TRUE) {
							echo 'added for '$username'';
						} else {
		    				echo "Error: " . $sql . "<br>" . $conn->error;
						}
				return parent::onPurchaseGenerated( $purchase, $invoice );
				$conn->close();
			}
	}
	catch ( \RuntimeException $e )
	{
		if ( method_exists( get_parent_class(), __FUNCTION__ ) )
		{
			return \call_user_func_array( 'parent::' . __FUNCTION__, \func_get_args() );
		}
		else
		{
			throw $e;
		}
	}
  }
}

 

Edytowane przez maxerxxl
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

To dwa razy "try" to norma - przy eksporcie pluginu tak jest.

Teraz pytanie - co dokładnie nie działa?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Teraz, DawPi napisał:

To dwa razy "try" to norma - przy eksporcie pluginu tak jest.

Teraz pytanie - co dokładnie nie działa?

Właśnie nie wiem, żadnych errorów, ani nic, na czystym php (nie jako plugin) wszystko dziala, a to mialo sie wykonywac tylko przy kupowaniu przedmiotu ze sklepu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

To by trzeba po każdym etapie kodu wykonać jakiś debug (echo, print) by się dowiedzieć w którym miejscu kod się nie wykonuje skoro sam czysty jest OK.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager
11 godzin temu, DawPi napisał:

To by trzeba po każdym etapie kodu wykonać jakiś debug (echo, print)

 

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • 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ę.