============================ Sending a vote to NuVotifier ============================ When you have a server which runs the NuVotifier plugin, you can use this code here. For NuVotifier however, there are two ways of sending a vote package. Either the classic version, which is NOT the same, like using the ClassicVotifier approach, or the version 2 which is special to NuVotifier. The following is the classic one, which looks the same as Votifier: .. code-block:: php setHost('127.0.0.1') ->setPublicKey('MIIBIjANBgkq...') ; Or with version 2 protocol: .. code-block:: php setHost('127.0.0.1') ->setProtocolV2(true) ->setToken('7j302r4n...') ; And then you can send it the same way to the server: .. code-block:: php setUsername($_GET['username']) ->setServiceName('Your vote list') ->setAddress($_SERVER['REMOTE_ADDR']) ; try { /** @var ServerInterface $server */ $server->sendVote($vote); // Connection created, and vote sent. Doesn't mean the server handled it correctly, but the client did. } catch (InvalidArgumentException $e) { // Not all variables that are needed have been set. See $e->getMessage() for all errors. } catch (NoConnectionException $e) { // Could not create a connection (socket) to the specified server } catch (PackageNotReceivedException $e) { // If the package couldn't be received, for whatever reason. } catch (PackageNotSentException $e) { // If the package couldn't be send, for whatever reason. } catch (NotVotifierException $e) { // The server didn't give a standard Votifier response } catch (NuVotifierChallengeInvalidException $e) { // Specific for NuVotifier: The challenge was invalid (Shouldn't happen by default, but it's here in case. } catch (NuVotifierSignatureInvalidException $e) { // Specific for NuVotifier: The signature was invalid (Shouldn't happen by default, but it's here in case. } catch (NuVotifierUnknownServiceException $e) { // Specific for NuVotifier: A token can be specific for a list, so if the list isn't supposed to use the given token, this message appears. } catch (NuVotifierUsernameTooLongException $e) { // Specific for NuVotifier: A username cannot be over 16 characters (Why? Don't ask me) } catch (NuVotifierException $e) { // In case there is a new error message that wasn't added to the library, this will take care of that. } To have an in-depth look at the classes and their objects, refer to the API section. Full example with v1 ==================== The following code is another example of a full HTML page with the code from above .. code-block:: php setHost('127.0.0.1') ->setPublicKey('MIIBIjANBgkq...') ; $vote = (new ClassicVote()) ->setUsername($_GET['username']) ->setServiceName('Your vote list') ->setAddress($_SERVER['REMOTE_ADDR']) ; try { $server->sendVote($vote); echo "
Connection created, and vote sent. Doesn't mean the server handled it correctly, but the client did.
"; } catch (InvalidArgumentException $e) { echo "Not all variables that are needed have been set. See $e->getMessage() for all errors.
"; } catch (NoConnectionException $e) { echo "Could not create a connection (socket) to the specified server
"; } catch (PackageNotReceivedException $e) { echo "If the package couldn't be received, for whatever reason.
"; } catch (PackageNotSentException $e) { echo "If the package couldn't be send, for whatever reason.
"; } catch (NotVotifierException $e) { echo "The server didn't give a standard Votifier response
"; } catch (NuVotifierChallengeInvalidException $e) { echo "Specific for NuVotifier: The challenge was invalid (Shouldn't happen by default, but it's here in case).
"; } catch (NuVotifierSignatureInvalidException $e) { echo "Specific for NuVotifier: The signature was invalid (Shouldn't happen by default, but it's here in case).
"; } catch (NuVotifierUnknownServiceException $e) { echo "Specific for NuVotifier: A token can be specific for a list, so if the list isn't supposed to use the given token, this message appears.
"; } catch (NuVotifierUsernameTooLongException $e) { echo "Specific for NuVotifier: A username cannot be over 16 characters (Why? Don't ask me)
"; } catch (NuVotifierException $e) { echo "In case there is a new error message that wasn't added to the library, this will take care of that.
"; } } ?>Connection created, and vote sent. Doesn't mean the server handled it correctly, but the client did.
"; } catch (InvalidArgumentException $e) { echo "Not all variables that are needed have been set. See $e->getMessage() for all errors.
"; } catch (NoConnectionException $e) { echo "Could not create a connection (socket) to the specified server
"; } catch (PackageNotReceivedException $e) { echo "If the package couldn't be received, for whatever reason.
"; } catch (PackageNotSentException $e) { echo "If the package couldn't be send, for whatever reason.
"; } catch (NotVotifierException $e) { echo "The server didn't give a standard Votifier response
"; } catch (NuVotifierChallengeInvalidException $e) { echo "Specific for NuVotifier: The challenge was invalid (Shouldn't happen by default, but it's here in case).
"; } catch (NuVotifierSignatureInvalidException $e) { echo "Specific for NuVotifier: The signature was invalid (Shouldn't happen by default, but it's here in case).
"; } catch (NuVotifierUnknownServiceException $e) { echo "Specific for NuVotifier: A token can be specific for a list, so if the list isn't supposed to use the given token, this message appears.
"; } catch (NuVotifierUsernameTooLongException $e) { echo "Specific for NuVotifier: A username cannot be over 16 characters (Why? Don't ask me)
"; } catch (NuVotifierException $e) { echo "In case there is a new error message that wasn't added to the library, this will take care of that.
"; } } ?>