José Amani,
il y a 11 ans
SquallX je ne comprend pas bien ta solution tu peux reexplique avec du code ? STP
JacobDelcroix je ne fais aucun affichage avant la redirectio je mes juste mon message en session avant de rediriger. pour l'url elle marche bien et me redirige sur la bonne page
kewai,
il y a 11 ans
Ben c'est logique en plaçant /index ca va te rediriger vers ton domaine/index.
Si ton routing n'est pas réalisé de la sorte, ben c'est pas gagné.
Si tu veux rester dans le même répertoire met juste : index
Si tu veux remonter d'un : ../index
Si tu veux carrement ailleur : /dossier-site/ailleur/index
José Amani,
il y a 11 ans
merci. je teste et je fais un retour mais néanmoin je vous presente le code de mon htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
José Amani,
il y a 11 ans
loOl oui dans mon code c'est bien mis Location
JeremDevWeb,
il y a 11 ans
Alors déjà pour que le code fonctionne logiquement :
<?php
header('Location:index.php');
?>
Cela devrait marcher car tu as mis /index qui redirige dans le dossier "index" et non le fichier index.php, fin je crois que c'est ça l'erreur..
JacobDelcroix,
il y a 11 ans
Perso, je mets toujours l'URL complète dans mes redirections !
<?php
header('Location: http://www.mondomaine.com/');
De plus après ta redirection, n'oublie pas de mettre un exit; car il se peut que ton script continu de tourner un peu.
EDIT : et surtout il ne faut pas faire d'affichage avant ton header() sinon ça génére une erreur aussi.
José Amani,
il y a 11 ans
JeremDevWeb exactement je dis que j'ai fichier htaccess. j'ai tester la solution de JacobDelCroix et ca marche seule probleme c'est que mon message flash ne marche pas voila le code
<?php
class Session{
public function __construct(){
session_start();
}
public function setFlash($message,$type = 'success'){
$_SESSION['flash'] = array(
'message'=>$message,
'type' => $type
);
ob_start();
$render = $_SESSION['flash']['message'];
require root.ds.'app'.ds.'Vues'.ds.'Elements'.ds.$_SESSION['flash']['type'].".php";
$_SESSION['flash']['message'] = ob_get_clean();
}
public function flash(){
if (isset($_SESSION['flash'])) {
echo $_SESSION['flash']['message'];
unset($_SESSION['flash']);
}
}
}
lorsque je fais $session->flash() il devrait normalement me retourner les message flash mais il ne le fais pas a cause de la redirection or moi j'aimerai bien avoir le message apres la redirection et lorsque j'actualise la page que le message disparaisse
JacobDelcroix,
il y a 11 ans
Tu n'as pas oublié le exit; après ton header() ? Sinon fait nous voir le code qui enregistre le message flash et qui redirige aussi.
José Amani,
il y a 11 ans
voila
$this->Session->setFlash("Nous avons bien recu votre demande !","success");
var_dump(header("Location: index"));
exit;
JacobDelcroix,
il y a 11 ans
JacobDelcroix,
il y a 11 ans
Comme je te l'ai déjà dit ne pas faire de l'affichage AVANT ta redirection... Donc tu peux enlever tes echo, print_r et autres ! De plus je te conseille de mettre une vraie URL dans ton header() !
José Amani,
il y a 11 ans
Oups pardon j'avais completement oublier de l'enlever mais meme sans le probleme demeure
kewai,
il y a 11 ans
Hello,
Il va falloir que tu commences à être un peu plus précis, car ca devient vachement fouilli !
As-tu des messages d'erreurs => si oui lesquelles?
Comment/sur quels fichiers tu gères ton setFlash(), redirection et flash() ?
N'hésite pas à non montrer l'architecture de ton projet, pour qu'on vérifie si tout existe. (écrit bien les noms de fichiers tels qu'ils sont)
José Amani,
il y a 11 ans
ok, bon ca marche.
j'ai mon sur ma page contact sur lequel j'ai un formulaire et lorsque le formulaire est envoye je creer mon message flash ensuite je redirige
voila le code de mon controller
class PagesController extends Controller{
public function index(){
}
public function formulaire(){
// validation des donnees
$this->Form->name('name')->required();
$this->Form->name('creation')->required();
$this->Form->name('email')->required();
$this->Form->name('tel')->required()->alfa();
if ($this->isPost()){
if (isset($this->data['logo']['name'])) {
//validation et enregistrement du fichier
if ($this->Form->extensionFichier($this->data['logo'],['.jpg','.jpeg','.png','.psd','.psb','.gif'])){
$this->Form->deplaceFichier($this->data['logo']);
$email = new Email();
print_r($email);
$f = $this->data['logo']['name'];
$email->setTo('amani.jose@outlook.fr', 'Recipient 1')
->setSubject('Test Message')
->setFrom('sender@gmail.com', 'Mail Bot')
->addMailHeader('Cc', 'mramanijose@gmail.com', 'Bill Gates')
->addGenericHeader('X-Mailer', 'PHP/' . phpversion())
->addGenericHeader('Content-Type', 'text/html; charset="utf-8"')
->addGenericHeader('Content-Transfert-Encoding', 'base64')
->addGenericHeader('Content-Disposition', "attachment; filename='$f'")
->EmailVars($this->data)
->setMessage('test')
->addAttachment($this->data['logo']['name']);
$send = $email->send();
if ($send) {
echo 'mail ok';
}else{
echo "no ok";
}
//la je cree mon message flash
$this->Session->setFlash("Nous avons bien recu votre demande !","success");
header("Location:index");exit;
}
}
}
ensuite j'affiche le message flash dans ma vue grace a ce code (j'ai deja balance le code de ma classe qui gere les messages flash plus haut)
<?php $this->Session->flash(); ?>
le probleme c'est que lorsque la redirection est effectuer le message flash n'est pas affiche.
Merci
Alexandre #lbac,
il y a 11 ans
essayes un extract de $_SESSION['flash']['message']; et affiches le avant de détruire la session flash ;)
JacobDelcroix,
il y a 11 ans
Tu as un print_r et un echo avant ton header() dans le code que tu as posté.
José Amani,
il y a 11 ans
non non regarde bien c'est un echo et un unset
JacobDelcroix,
il y a 11 ans
Alexandre #lbac,
il y a 11 ans
José Amani,
il y a 11 ans
je ne pense pas que le problem vienne du print_r meme quand je le retire c'est pareil.
loOl SquallX c'est compris mais si j'utilise extract une fois redirige la variable disparait :(
Couss,
il y a 11 ans
Retire tous les affichages de texte
les print_r et echo (ceux du résultat d'envoi de l'email)
José Amani,
il y a 11 ans
c'est fais mais j'ai toujour mon message flash qui n'affiche pas :(
kewai,
il y a 11 ans
Si tu supprimes tout ce qui concerne l'envoie d'une email et que tu testes, tu as ta redirection avec ton flash ou non ?
Tu dois mettre ce que SquallX ta donné dans la page index
José Amani,
il y a 11 ans
Quand je fais ce que SquallX a demander sur la page index j'ai cette erreur
Details
Type: ErrorException
Code: 2
Message: extract() expects parameter 1 to be array, string given
File: E:\EasyPHP\data\localweb\Powercom\app\Vues\Pages\index.php
Line: 69
Trace
kewai,
il y a 11 ans
$message = extract($_SESSION['flash']);
Là tu l'as, ton tableau ;)
José Amani,
il y a 11 ans
je ne sais pas ce j'ai touche mais je crois qu'il c'est decide enfin a marche !!!! MERCI A TOUS POUR VOS AIDES SANS VOUS JE N'Y SERAI PAS ARRIVE !!! THANK YOU FOR ALL !!!