8768 sujets

Développement web côté serveur, CMS

Bonjour,

j'ai un fichier php qui me sert à encoder et créer une signature, pour ensuite m'en servir lors de l'appel à l'API.
Voici le code:

<?php
session_start();
$queryTerm = $_POST['q'] ;
class RequestSigner {
    private $token;

    /**
     * Constructs the object and saves the token
     *
     * @param string $token
     */
    public function __construct($token ='monAccessID') {
        $this->token = $token;
    }

    public function getSignature($queryTerm) {
        $value = $this->getFormattedDateString() . $this->token . $queryTerm;
        return $this->hashValue($value);
    }

    /**
     * Gets the date/time to the nearest minute as YYYYMMDDHHMM
     *
     * @return string
     */
    private function getFormattedDateString() {
        // Save the current timezone, get a date as GMT and reset timezone
        $timezone = date_default_timezone_get();
        date_default_timezone_set('GMT');
        $datetime = date('YmdHi', $this->getTimeToNearestMinute());
        date_default_timezone_set($timezone);

        return $datetime;
    }

    /**
     * Gets the date/time +30 seconds as a unix timestamp
     *
     * @return int
     */
    private function getTimeToNearestMinute() {
        return time() + 30;
    }

    /**
     * Gets a base64 encoded SHA1 hash
     *
     * @param string $input
     *
     * @return string
     */
    private function hashValue($input) {
        $bytes = $this->hashSHA1($input);

        return $this->encodeUrlSafeBase64($bytes);
    }

    /**
     * Gets a SHA1 hash
     *
     * @param string $input
     *
     * @return string
     */
    private function hashSHA1($input) {
        // Trial and error shows this must be binary result
        return sha1($input, true);
    }

    /**
     * Creates a URL safe base64 encoded string
     *
     * @param string $input
     *
     * @return string
     */
    private function encodeUrlSafeBase64($input) {
        // Apache code replaces + with -, / with _ and trims padding (=)
        return str_replace(array('+', '/'), array('-', '_'), trim(base64_encode($input), '=='));
    }
}
$signature = (new RequestSigner)->getSignature($queryTerm);
$_SESSION["signature"] = "(new RequestSigner)->getSignature($queryTerm);";
$_SESSION["query"] = $_POST['q'] ;
header('Location:  https://www...../testresult/');
 
exit();
?>

Ce que je souhaite faire ensuite et où je bloque (je me suis déjà débloqué sur la création de la signature c'est cool !^^) c'est de récupérer mes deux éléments "signature" et "query" pour pouvoir ensuite les afficher dans une autre page, dans un script en javascript.
J'ai cru comprendre qu'il fallait que je passe par l'utilisation de Session, mais je comprend pas totalement comment ça marche...
Si une âme charitable peut m'aider et m'expliquer (avec des mots simples ^^) comment réaliser ça .
Merci Smiley smile
Modifié par cypressk8 (13 Jun 2016 - 17:53)