Problemei redirect() dans Créer un système d'abonnement

Par agmedia, il y a 11 ans


Bonjour à tous,
Grâce à l'intervention de Lartak11, j'ai pu avancé un peu.
Merci
Mon problème se situe maintenent au niveau de redirect().
il génère l'erreur suivante :


Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'redirect' at line 1
SQL Query: redirect

Notice: If you want to customize this error message, create app/View/Errors/pdo_error.ctp


La syntaxe de mon code :


this->redirect(responseArray'EMAILLINK']); die();


où 'EMAILLINK' a bien une valeur dans le tableau $responseArray
Bien sûr j'ai fait ma propre recherche qui n'a pas abouti !!
Pourriez-vous m'orienter svp ?

5 réponses

Ch0c4, il y a 11 ans

Salut, est-ce que ton redirect tu le fait dans ton model ? car tu dois le faire dans ton controller
http://book.cakephp.org/2.0/en/controllers.html#flow-control

et au lieu de mettre un die(); après ton redirect fais carrément un

return $this->redirect($responseArray'EMAILLINK']);
agmedia, il y a 11 ans

Merci pour ta réactivité.
Saches que je suis un grand débutant.Bref,
Pour répondre à ta question le redirect est dans mon model.
Et j'ai essayé le return le résultat est toujours le même !!
J'ai suivi à la lettre le tuto, au debug avant le redirect j'ai toutes les valeurs.
voici le résultat et le code le concernant :


/app/Model/Transaction.php (line 48)
array(
'WEBSITECODE' => '<form target=\"_top\" action=\"https://www.sandbox.paypal.com/cgi-bin/webscr\" method=\"post\">
<input type=\"hidden\" name=\"cmd\" value=\"_s-xclick\">
<input type=\"hidden\" name=\"hosted_button_id\" value=\"ULR6CSC8QQ4LC\">
<input type=\"image\" src=\"https://www.sandbox.paypal.com/fr\_FR/FR/i/btn/btn\_buynow\_LG.gif\" border=\"0\" name=\"submit\" alt=\"PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !\">
<img alt=\"\" border=\"0\" src=\"https://www.sandbox.paypal.com/fr\_FR/i/scr/pixel.gif\" width=\"1\" height=\"1\">
</form>
',
'EMAILLINK' => 'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=\_s-xclick&hosted\_button\_id=ULR6CSC8QQ4LC',
'HOSTEDBUTTONID' => 'ULR6CSC8QQ4LC',
'TIMESTAMP' => '2014-10-30T13:41:48Z',
'CORRELATIONID' => '550e963c4b7c6',
'ACK' => 'Success',
'VERSION' => '87',
'BUILD' => '000000'
)


ch = curl\_init(); curl\_setopt\_array(ch,curlOptions); $response = curl\_exec(ch);

if(curl_errno(ch)){ debug(curl\_errno(ch)); die();
return false;
}else{
curl_close(ch); parse\_str(response,responseArray); //debug(responseArray); die();
return this->redirect(responseArray'EMAILLINK']);

}

Ch0c4, il y a 11 ans

Ton redirect() tu dois le faire dans ton "Controller", pas dans le model car redirect est une methode de Controller et non de Model. tu récupère ton tableau (responseArray) dans ton controller et ensuite tu fais un redirect. MonModel.php [code] class MonModel extends AppModel { public function maMethodeQuiRecupereMonTableau() { // plein de traitement return $responseArray; } } [/code] MonController.php [code] class MonController extends AppController { public function maMethodeOuJeVeuxFaireUnRedirect() { $monTableauQueJeFabriqueDansMonModel = $this->MonModel->maMethodeQuiRecupereMonTableau(); return $this->redirect(monTableauQueJeFabriqueDansMonModel['EMAILLINK']); } } [/code] J'espère que je suis clair et n'oublie pas d'utiliser les balises [code] quand tu poste du code.

agmedia, il y a 11 ans

Merci pour ton aide.
Je vais essayer de m'appliquer

agmedia, il y a 11 ans

problème résolu.
Merci