Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Comment créé une redirection avec message
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.4.3
#~ Url du site : localhost
#~ Hébergeur / Soft : mamp
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.9.4.3
#~ Installed Modules:
#~ CMSMailer: 2.0.1
#~ FileManager: 1.1.0
#~ MenuManager: 1.7.6
#~ ModuleManager: 1.4.2
#~ News: 2.11.4
#~ nuSOAP: 1.0.2
#~ Printing: 1.1.2
#~ Search: 1.6.10
#~ ThemeManager: 1.1.4
#~ TinyMCE: 2.8.4
#~ BerdujImmo: 0.9.3
#~ SEOTools: 1.2
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 32000000
#~ default_upload_permission: 664
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.2.13
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 32M
#~ max_execution_time: 30
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 32M
#~ upload_max_filesize: 32M
#~ session_save_path: /Applications/MAMP/tmp/php (0775)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: apache2handler
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.44
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous, (ou re bonjour)

J'ai créé un formulaire d'alerte email et j'aimerai bien, lorsque on le valide, être redirigé vers le formulaire, mais avec un message au dessus pour spécifier que l'ajout de l'alerte à bien été effectué.

Le soucis c'est que j'utilise le mod_rewrite pour rendre mes url plus jolie et pour le referencement.
Je voulais faire comme cela :
Code :
$params = array('top_message'=> 'alert_added');
    $this->Redirect($id, 'alerte', $returnid, $params);

Mais quand je suis redirigé, ca donne une cafouillage pas possible dans l'url puisque c'est ré-écrit.
Exsite-t-il un moyen de faire une redirection en passant en paramètre une variable par exemple, comme ca, sur la page de destination, si cette variable existe et selon sa valeur, j'affiche un message.

Car la j'ai une redirection classique mais je crois pas pouvoir passé de paramètre :
Code :
$manager =& $gCms->GetHierarchyManager();
    $node =& $manager->sureGetNodeByAlias($params['display_page']);    
    $content =& $node->GetContent();
    redirect($content->GetURL());


Au passage, si ca peu vous aider, voici le .htaccess :

Code :
# Attempt to override some php settings, these settings may be helpful on some hosts if your
# default configuration does not meet CMS's minimum requirements, and your host
# has given your account appropriate permissions
#php_value upload_max_filesize "10M"
#php_value session_save_path "tmp/cache"

#php_flag magic_quotes_gpc Off
#php_flag register_globals Off
#php_flag session.use_trans_sid Off

# (this is important, so uncomment if your host permit)
#Options -Indexes
#ServerSignature Off

#Options +FollowSymLinks

# To prevend E_STRICT problems with PHP 5.3+ you can uncomment the following lines
# Note: These settings should only be enabled for production sites!
#php_flag display_startup_errors 0
#php_flag display_errors 0
#php_flag html_errors 0
#php_value docref_root 0
#php_value docref_ext 0

<IfModule mod_rewrite.c>
RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /cmsms

# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# but ignore POST requests.
#RewriteCond %{REQUEST_URI} !/$
#RewriteCond %{REQUEST_URI} !\.
#RewriteCond %{REQUEST_METHOD} !POST$
#RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>

<IfModule mod_header.c>
# Disable ETags
Header unset ETag
FileEtag None
</IfModule>

<IfModule mod_deflate.c>
# Compress css, plaintext, xml, gif, and images in transport.
AddOutputFilterByType DEFLATE text/css text/plain text/xml image/gif image/jpeg image/png
</IfModule>

<IfModule mod_expires.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
# Set expires tags on various files... so that the browser wont attempt to reload them.
ExpiresActive On
ExpiresDefault "access plus 1 year"
<IfModule mod_header.c>
  # Setting cache control to public allowes proxy servers to cache the items too.
  Header set Cache-Control "public"
</IfModule>
</FilesMatch>
</IfModule>

Je vous remercie d'avance Smile
Répondre
#2

Bonjour, petit up ? Smile
Répondre
#3

je ne suis pas expert mais je pense que donner une url du type

www.site.tld/mapage.html?param1=val1&param2=val2

n'est absolument pas interdit (mais très moche). L'autre solution dans les pretty url c'est de gérer les paramètres dans l'url de façon ordonné :


www.site.tld/val1/val2/mapage.html

mais c'est beaucoup plus strict.


personnellement pour toi j'opterais la première solution. Moche mais moins contraignante. De plus le visiteur ne s’offusquera pas de voir une telle url je penses Smile
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)