dev67 Posté 22 Juillet 2009 Posté 22 Juillet 2009 Bonjour, Je souhaiterais créer deux redirections différentes en fonction du sexe de la personne. J'utilises un script fonctionnant sur 2 fichier. Il y a le fichier php gérant l'inscription if (me('id') != "") { $tpl -> Zone("regform", "notallowed"); _fnc("reload", 3, "?L=users.desktop"); } if (isset($_SESSION["REG_ID"])) { $tpl -> Zone("regform", "notallowed"); _fnc("reload", 0, "?L=registration.questionaire"); } /* Handle Submit */ if (isset($_POST["Submit"]) || isset($_POST["Correct"])) { $errBreak = false; foreach ($_POST as $var => $val) { $_SESSION["REGISTER"][$var] = $val; } /* Check email address */ if ( !isset($_SESSION["REGISTER"]["email"]) || $_SESSION["REGISTER"]["email"] == "" || !preg_match($CONF["REGEXP_EMAIL"], $_SESSION["REGISTER"]["email"])) { $tpl -> Zone("error", "email"); } else { /* Check Cloned email addresses */ if (!$CONF["REGISTRATION_ALLOW_DUPLICATE_EMAIL"] && myNum(myQ(" SELECT `email` FROM `[x]users` WHERE `email`='{$_SESSION["REGISTER"]["email"]}' ")) > 0) { $tpl -> Zone("error", "emailClone"); session_unregister("REGISTER"); } else { /* Check username */ if ( !isset($_SESSION["REGISTER"]["username"]) || $_SESSION["REGISTER"]["username"] == "" || !preg_match($CONF["REGEXP_USERNAME"], $_SESSION["REGISTER"]["username"]) || strlen($_SESSION["REGISTER"]["username"]) < $CONF["USERS_USERNAME_MIN_LEN"] || strlen($_SESSION["REGISTER"]["username"]) > $CONF["USERS_USERNAME_MAX_LEN"]) { $tpl -> Zone("error", "username"); $tpl -> Zone("usernameerror", "lenerror"); } else { /* Check username being in use */ if (myNum(myQ(" SELECT `username` FROM `[x]users` WHERE LCASE(`username`)='".strtolower($_SESSION["REGISTER"]["username"])."'")) > 0) { $tpl -> Zone("error", "username"); $tpl -> Zone("usernameerror", "inuse"); } else { /* Check Password form */ if ( !isset($_SESSION["REGISTER"]["password"]) || $_SESSION["REGISTER"]["password"] == "" || strlen($_SESSION["REGISTER"]["password"]) < $CONF["USERS_PASSWORD_MIN_LEN"] || strstr($_SESSION["REGISTER"]["password"], " ")) { $tpl -> Zone("error", "password"); $tpl -> Zone("passworderror", "lenghterr"); } else { /* Check password against passcheck */ if ( !isset($_SESSION["REGISTER"]["passcheck"]) || $_SESSION["REGISTER"]["passcheck"] != $_SESSION["REGISTER"]["password"]) { $tpl -> Zone("error", "password"); $tpl -> Zone("passworderror", "nomatch"); } else { /* Check verification code */ if ( !isset($_SESSION["REGISTER"]["code"]) || !isset($_SESSION["REGISTER"]["syscode"]) || $_SESSION["REGISTER"]["code"] != $_SESSION["REGISTER"]["syscode"]) { $tpl -> Zone("error", "code"); } else { /* Check age */ if ( !isset($_SESSION["REGISTER"]["bday"]) or !isset($_SESSION["REGISTER"]["bmonth"]) or !isset($_SESSION["REGISTER"]["byear"]) or _fnc("age", $_SESSION["REGISTER"]["bmonth"]."/".$_SESSION["REGISTER"]["bday"]."/".$_SESSION["REGISTER"]["byear"]) < $CONF["USERS_MIN_AGE"] ) { $tpl -> Zone("error", "age"); } else { /* Form was correctly filled */ if (!isset($_SESSION["REG_ID"])) { /* Set reference data */ if ($CONF["REGISTRATION_SAVE_REFERENCE"]) { if ($CONF["REGISTRATION_REFERENCE:HTTP_REFERER"]) $refData = $_SERVER['HTTP_REFERER']; else $refData = (isset($_GET["ref"])?$_GET["ref"]:NULL); } else $refData = NULL; $user_settings["MAIL"]["NOTIFICATION"] = array( "MESSAGES" => 1, "EVENTS" => 1, "BIRTHDAY" => 1, "PROFILECOMMENT" => 1, "CONTACTREQUEST" => 1, "NUDGE" => 1 ); /* Save to database */ myQ(" INSERT INTO `[x]users` ( `email`, `birthdate`, `gender`, `username`, `password`, `country`, `state`, `city`, `zipcode`, `active`, `registration_date`, `registration_reference`, `age`, `settings` ) VALUES ( '{$_SESSION["REGISTER"]["email"]}', '{$_SESSION["REGISTER"]["bmonth"]}/{$_SESSION["REGISTER"]["bday"]}/{$_SESSION["REGISTER"]["byear"]}', '{$_SESSION["REGISTER"]["gender"]}', '{$_SESSION["REGISTER"]["username"]}', '".md5($_SESSION["REGISTER"]["password"])."', '{$_SESSION["REGISTER"]["country"]}', '{$_SESSION["REGISTER"]["state"]}', '{$_SESSION["REGISTER"]["city"]}', '{$_SESSION["REGISTER"]["zipcode"]}', '".($CONF["REGISTRATION_AUTO_APPROVE"] && !$CONF["REGISTRATION_APPROVE_UPON_EMAIL_CHECK"]?"1":"0")."', '".date("U")."', '{$refData}', '"._fnc("age", "{$_SESSION["REGISTER"]["bmonth"]}/{$_SESSION["REGISTER"]["bday"]}/{$_SESSION["REGISTER"]["byear"]}")."', '".pk($user_settings)."' ) "); couplé avec le fichier tpl affichant la page <td width="150" align="right" valign="top"><strong>[I Am A: {7550}]</strong> </td> <td align="left" valign="top"><select name="gender" id="gender"> <LOOP genderoption> <option value="{gender}">{gender}</option> </LOOP genderoption> </select></td> </tr> <tr> <td width="150" align="right" valign="top"><strong>[Username: {7555}]</strong></td> <td align="left" valign="top"><input name="username" type="text" id="username" maxlength="{username_maxlen}" /> <br /> [Username must be between {username_minlen} and {username_maxlen} characters. Spaces or special characters are not allowed. Username is not case sensitive. {7560}] </td> </tr> <tr> <td width="150" align="right" valign="top"><strong>[Password: {7570}] </strong></td> <td align="left" valign="top"><input name="password" type="password" id="password" /> <br /> Seuleument voila, nulle part sur le fichier php (a part au niveau de l'enregistrement sur la base) je ne trouves de ligne de code concernant le sexe et comme dit je souhaites que lorsqu'il s'agit d'un homme il soit redirigé vers une page et une femme vers une autre page. Merci d'avance pour vos conseils.
dev67 Posté 23 Juillet 2009 Auteur Posté 23 Juillet 2009 J'ais fait comme cela /* Check age */ if ( !isset($_SESSION["REGISTER"]["bday"]) or !isset($_SESSION["REGISTER"]["bmonth"]) or !isset($_SESSION["REGISTER"]["byear"]) or _fnc("age", $_SESSION["REGISTER"]["bmonth"]."/".$_SESSION["REGISTER"]["bday"]."/".$_SESSION["REGISTER"]["byear"]) < $CONF["USERS_MIN_AGE"] ) { $tpl -> Zone("error", "age"); } else { /* genre */ if ($_SESSION["REGISTER"]["gender"]=="male") { header('Location:page_mec.php'); } else if ($_SESSION["REGISTER"]["gender"]=="cpl") { header('Location:page_cpl.php'); } else { header('Location:page_fille.php'); } else { /* Form was correctly filled */ if (!isset($_SESSION["REG_ID"])) { /* Set reference data */ if ($CONF["REGISTRATION_SAVE_REFERENCE"]) { if ($CONF["REGISTRATION_REFERENCE:HTTP_REFERER"]) $refData = $_SERVER['HTTP_REFERER']; else $refData = (isset($_GET["ref"])?$_GET["ref"]:NULL); } else $refData = NULL; $user_settings["MAIL"]["NOTIFICATION"] = array( "MESSAGES" => 1, "EVENTS" => 1, "BIRTHDAY" => 1, "PROFILECOMMENT" => 1, "CONTACTREQUEST" => 1, "NUDGE" => 1 ); et sur le fichier tpl couplé avec ce fichier php <LOOP genderoption> <option value="{gender}">{gender}</option> </LOOP genderoption> Et maintenant j'ais une page blanche, je ne vois pas le problème
dev67 Posté 23 Juillet 2009 Auteur Posté 23 Juillet 2009 La redirection doit surement s'effectuer immédiatement et m'envoyer sur la page page_mec.php (ou fille ou cpl). Le script se compose de plusiers dossiers. Il y a le dossier modules regroupant les fichiers php qui gèrent les fonctions et le dossier themes contenant les fichiers tpl gérant l'affichage. Par exemple pour l'inscription dans le dossier module on trouves le fichier register.php et dans le dossier theme, le fichier register.tpl et donc lors de l'inscription on remplis les différents champs (nom, age, genre, adresse mail, etc....) et en bas de page on valides en cliquant sur un bouton pour passer à l'étape 2 de l'enregistrement (questionnaire particulier) et c'est cela que j'aimerais qui se passe (si homme redirigé vers mec.php, si cpl vers cpl.php et si femme vers femme.php.
Ernestine Posté 23 Juillet 2009 Posté 23 Juillet 2009 (modifié) Salut, Pour faire une redirection PHP : header("Location: page.html"); Mais bien sûr, je pense que ça ne te sera d'aucune utilité car il ne s'agit certainement pas d'un simple changement de page, encore faut-il conserver toute la mécanique derrière, et ça, sans connaître l'ensemble de ton script, je ne vois pas comment on pourrait te répondre. Sinon, s'il s'agit juste d'un changement de style graphique, alors il serait préférable de simplement switcher sur la feuille de style. Modifié 23 Juillet 2009 par Ernestine
dev67 Posté 23 Juillet 2009 Auteur Posté 23 Juillet 2009 J'ais fait comme cela le fichier register.php PHP: <?php/* Check Structure Availability */if (!defined("CORE_STRAP")) die("Out of structure call");$tpl = new template;$tpl -> Load("register");/* genre */if ($_SESSION["REGISTER"]["gender"]=="male") {header('Location:page_mec.php');}else if ($_SESSION["REGISTER"]["gender"]=="cpl") {header('Location:page_cpl.php');}else {header('Location:page_fille.php');}$tpl -> CleanZones();$tpl -> Flush();?> et sur le fichier tpl couplé (register.tpl) avec ce fichier php Code: <!-- header --><!-- /header --><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="530"> </td><td rowspan="2"> </td><td width="290"> </td></tr><tr><td width="530" valign="top"><!-- leftpane --><form method="post"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="25"> </td><td><h1>[Register {50}] </h1><p>[Welcome! {7510}] </p><p> </p><p>[Let's get started! {7515}] </p><p> </p><!-- breadcrumbs --><!-- /breadcrumbs --> </td></tr><tr><td> </td><td> </td></tr><tr><td height="8" colspan="2"><img src="theme/default/images/frame/spacer.gif" alt="Spacer" height="8" /></td></tr><tr><td colspan="2" background="theme/default/images/frame/block_border_top.gif" bgcolor="#AEC5FD"><img src="theme/default/images/frame/spacer.gif" alt="Spacer" height="14" /></td></tr><tr><td bgcolor="#DCE6FF"> </td><td bgcolor="#DCE6FF"> </td></tr><tr><td bgcolor="#DCE6FF"> </td><td bgcolor="#DCE6FF"><h2>[Please complete the following {7520}] </h2></td></tr><tr><td width="150" align="right" valign="top"><strong>[I Am A: {7550}]</strong> </td><td align="left" valign="top"><select name="gender" id="gender"><LOOP genderoption><option value="{gender}">{gender}</option></LOOP genderoption></select></td></tr></table><!-- /rightpane --></td></tr></table><!-- footer --><!-- /footer --> La redirection s'effectue immédiatement et m'envoie sur la page page_fille.php . Comment puis je faire pour que seuleument après avoir selectionné mon genre je suis redirigé vers la page souhaitée en cliquant sur un bouton par exemple Merci d'avance pour vos réponses
dev67 Posté 24 Juillet 2009 Auteur Posté 24 Juillet 2009 Le problème est réglé, merci pour votre aide par contre je ne sais pas comment mettre le sujet en résolu, désolé
Arlette Posté 24 Juillet 2009 Posté 24 Juillet 2009 ...le par contre je ne sais pas comment mettre le sujet en résolu, désolé On ne met pas ! Ce n'est pas la politique du Hub Par contre, il serait intéressant que tu donnes la méthode que tu as appliquée pour régler ton problème. Cela pourra servir à un autre plus tard
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant