PB de variable

Résolu
cs_zoubis Messages postés 5 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 14 novembre 2008 - 12 nov. 2005 à 11:38
dami27 Messages postés 20 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 17 octobre 2006 - 13 nov. 2005 à 19:31
Bonjour,
je dois mettre en place une page web, qui doit permettre d'afficher le modèle et la fonction d'un produit grace à son n° de série.
j'ai donc effectuer un formulaire où le client indique son n° de serie et en retour je dois le rediriger vers une page web avec le descriptif de l'article qu'il détient.
le nombre de modéles est très reduit de l'ordre de 20 modéles différents,
j'ai don créé autant de page web que de modèle.
Le n° de série comporte 12 chiffres,
soit 2134KE012565 le type de modéle se trouve toujours après le KE et je ne sais pas comment faire pour que lorsqu'un client tappe son N° il soit rediriger ver la page 01.html ou 02.html selon le modéle.
Avez vous un exemple de code complet que je pourrais mettre en oeuvre.
Dans l'attente de vous lire, je vous souhaite un bon week-end à tous.

8 réponses

dami27 Messages postés 20 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 17 octobre 2006
13 nov. 2005 à 19:31
Voici les dernières modifs du ficher resultat :







<?php

//Variable initial :

$numSerie = "codePageSerie";



//Fonction pour retourner le code de la page...

function codePageSerie($numSerie)

{



//On met la variable tous en minuscule (au cas où la personne ai tapé en majuscule...)

$numSerie = strtolower($numSerie);



//On sépare en deux la variable

$separation_numSerie = explode('ke',$numSerie);



//Maintenant, on a deux données, AVANT et APRES le KE...

// On va s'occuper du APRES pour n'y prendre que les deux 1er chiffres...

$codePage = substr($separation_numSerie[1],0,2);



return $codePage;

}



//Puis dans ton code, pour la redirection, tu tape :

$serie = $codePageSerie;

$code_page= codePageSerie($serie); // Ici, on a le 01, 02...





/*

En faite, on regarde si la page existe, si oui, on y va... si non, c'est une erreur...

*/

if (file_exists($code_page.'.php'))

{

//Le fichier existe, on redirige dessus...

$redir = $code_page;

}

else

{

//La page n'existe pas, on va sur une page d'erreur...

$redir = "erreur";

}



//Redirection...

Header("Location: ".$redir.".php");



?>



Tu peux avoir n'importe quoi comme page :

01.php, 02.php.... 0a.php, zz.php...

Si la page existe, la personne sera redirigé dessus, sinon, vers la page d'erreur...



NB : Les caractères des fichiers sont en minuscules, meme si on a taper en majuscule !



Sinon, dernière chose pour la page de saisie :

Si la personne n'a rien tapé, un message s'affiche (C'est juste comme ca si tu as besoin )





<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Serial</title>

</head>





<form id="serial" name="serial" method="post" action="resultat.php"

onsubmit="if (document.serial.codePageSerie.value=='') { alert('Veuillez entrer le N° de Série'); return false; }">

Serial number :

<label>



</label>

</form>



</html>





Voilà, je pense avoir fait le tours, si ca te plait, valide mon message ;)

Et n'hésite pas si tu as un problème !



@+

Damien
3
dami27 Messages postés 20 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 17 octobre 2006
12 nov. 2005 à 13:37
Bonjour Zoubis !

Donc pour ta redirection, tu peux couper ta variable en deux et rechercher les deux premier chiffres dans la deuxième partie... Soit :
<?php

//Variable initial :
$numSerie = "2134KE012565";

//On met la variable tous en minuscule (au cas où la personne ai tapé en majuscule...)
$numSerie = strtolower($numSerie);

//On sépare en deux la variable
$separation_numSerie = explode('ke',$numSerie);

//Maintenant, on a deux données, AVANT et APRES le KE...
// On va s'occuper du APRES pour n'y prendre que les deux 1er chiffres...
$codePage = substr($separation_numSerie[1],0,2);

?>

Voilà, ou dans une fonction, ca peux donner ca :

<?php

//Fonction pour retourner le code de la page...
function codePageSerie($numSerie)
{

//On met la variable tous en minuscule (au cas où la personne ai tapé en majuscule...)
$numSerie = strtolower($numSerie);

//On sépare en deux la variable
$separation_numSerie = explode('ke',$numSerie);

//Maintenant, on a deux données, AVANT et APRES le KE...
// On va s'occuper du APRES pour n'y prendre que les deux 1er chiffres...
$codePage = substr($separation_numSerie[1],0,2);

}

//Puis dans ton code, pour la redirection, tu tape :
$serie = "2134KE012565";
$redir = codePageSerie($serie).'.php';
Header("Location : ".$redir);
// Ici : 01.php

?>

Voilà, j'espère avoir répondu à ta question ;)

Bonne journée,
@+
Damien
0
cs_zoubis Messages postés 5 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 14 novembre 2008
12 nov. 2005 à 21:00
Merci Damien, je vais tester ce soir et reviendrais vers toi si je rencontre un problème.
Bonne soirée et bon week-end à toi
Cordialement Olivier
0
cs_zoubis Messages postés 5 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 14 novembre 2008
12 nov. 2005 à 23:43
Je craque, après de nombreux essais ans gloire, je reviens vers toi.

Voila j'ai donc effectué une page avec le formulaire que j'ai nommé serial.php
dont voici le contenu:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Serial</title>
</head>


<form id="serial" name="serial" method="post" action="resultat.php">
Serial number :
<label>

</label>
</form>

</html>


---------------------------------
et une autre nommé resultat.php :
---------------------------------


<?php
//Variable initial :
$numSerie = "codePageSerie";

//Fonction pour retourner le code de la page...
function codePageSerie($numSerie)
{

//On met la variable tous en minuscule (au cas où la personne ai tapé en majuscule...)
$numSerie = strtolower($numSerie);

//On sépare en deux la variable
$separation_numSerie = explode('ke',$numSerie);

//Maintenant, on a deux données, AVANT et APRES le KE...
// On va s'occuper du APRES pour n'y prendre que les deux 1er chiffres...
$codePage = substr($separation_numSerie[1],0,2);

}

//Puis dans ton code, pour la redirection, tu tape :
$serie = "codePageSerie";
$redir = codePageSerie($serie).'.php';
Header("Location : ".$redir);
// Ici : 01.php

?>

-------------

Cela ne marche pas et je me prend la tête pour info mes pages 01.php jusqu' 20.php se trouvent toutes dans le même repertoire que ces deux pages.
De plus je voudrais forcer les gens a saisir quelque chose et indiquer que la saisie et obligatoire et que dans le cas ou le champs reste vide un message leur indique qu'ils n'ont rien tapés.
Que dois-je modifier d'après toi.
Merci d'avance pour ta réponse.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dami27 Messages postés 20 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 17 octobre 2006
13 nov. 2005 à 12:35
Salut !

Excuse du retard...

Le code que je t'ai donner, je l'ai fait sans le tester (tous de tete)... La j'éai créer les fichier, et je me suis apercçu de deux erreurs, une de moi, et une de toi (Désolé)
Alors, pour le fichier resultat.php il faut rajouter un petit élément que j'ai oublier (en rouge) et modifier le nom de ta variable (en bleu)...

<?php
//Variable initial :
$numSerie = "codePageSerie";

//Fonction pour retourner le code de la page...
function codePageSerie($numSerie)
{

//On met la variable tous en minuscule (au cas où la personne ai tapé en majuscule...)
$numSerie = strtolower($numSerie);

//On sépare en deux la variable
$separation_numSerie = explode('ke',$numSerie);

//Maintenant, on a deux données, AVANT et APRES le KE...
// On va s'occuper du APRES pour n'y prendre que les deux 1er chiffres...
$codePage = substr($separation_numSerie[1],0,2);

return $codePage;
}

//Puis dans ton code, pour la redirection, tu tape :
$serie = $codePageSerie;
$redir = codePageSerie($serie).'.php';
Header("Location : ".$redir);
// Ici : 01.php

?>

Donc à ce stade, la fonction CodePageSerie retourne les les 2 caractères apres ton KE...
Si tu veux, on ne peux rediriger que vers les pages qui sont de 0 à 20 (et le reste vers une page d'erreur par exemple, dans ce cas, remplace la ligne $redir = codePageSerie($serie).'.php'; par celle là :

$code_page= codePageSerie($serie); // Ici, on a le 01, 02...
//On teste voi si on a les bonnes infos...
if ($code_page!='')
{ // On a bien eu un KE dans la série...

//On regarde si c'est bien un chiffre entre 0 et 20
if (intval($code_page) >= 0 && intval($code_page)<=20)
{
//Le code Päge est bon, on redirige...
$redir = $code_page;
}
else
{
//Redirection vers une page erreur : erreur.php
$redir = "erreur";
}
}
else
{
//Redirection vers une page erreur : erreur.php
$redir = "erreur";
}

SOIT EN TOUS :

<?php
//Variable initial :
$numSerie = "codePageSerie";

//Fonction pour retourner le code de la page...
function codePageSerie($numSerie)
{

//On met la variable tous en minuscule (au cas où la personne ai tapé en majuscule...)
$numSerie = strtolower($numSerie);

//On sépare en deux la variable
$separation_numSerie = explode('ke',$numSerie);

//Maintenant, on a deux données, AVANT et APRES le KE...
// On va s'occuper du APRES pour n'y prendre que les deux 1er chiffres...
$codePage = substr($separation_numSerie[1],0,2);

return $codePage;
}

//Puis dans ton code, pour la redirection, tu tape :
$serie = $codePageSerie;
$code_page= codePageSerie($serie); // Ici, on a le 01, 02...
//On teste voi si on a les bonnes infos...
if ($code_page!='')
{ // On a bien eu un KE dans la série...

//On regarde si c'est bien un chiffre entre 0 et 20
if (intval($code_page) >= 0 && intval($code_page)<=20)
{
//Le code Päge est bon, on redirige...
$redir = $code_page;
}
else
{
//Redirection vers une page erreur : erreur.php
$redir = "erreur";
}
}
else
{
//Redirection vers une page erreur : erreur.php
$redir = "erreur";
}
Header("Location : ".$redir);
// Ici : 01.php

?>

Voilà, bonne aprem ;)

@+Damien
0
cs_zoubis Messages postés 5 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 14 novembre 2008
13 nov. 2005 à 14:43
Je suis au bord de la crise de nerfs...
Cela fait une 1h30 que je ne parvient pas à faire ces deux petites pages, malgrés tes conseils je restes bloqué.
Nous somme d'accord que si j'utilise ma page serial.php sans modification et que je crée une nouvelle page résultat en copiant collant tes infos cela doit fonctionner non ?
Malheureusement je suis au point mort et j'ai pourtant essayé de nombreuse possibilités mais là je sèche.
Peut tu me faire si tu en as le temps un copier collé de deux pages fonctionnelles testées.
Merci d'avance Olivier.
0
dami27 Messages postés 20 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 17 octobre 2006
13 nov. 2005 à 17:14
Alors là, je vais me faire taper sur les doigs !!

Désolé, j'ai encore fait une erreur, à la dernière ligne HEADER, remplace la par celle la :



Header("Location: ".$redir.".php");

Ce qui donne pour le fichier resultat.php :









<?php

//Variable initial :

$numSerie = "codePageSerie";



//Fonction pour retourner le code de la page...

function codePageSerie($numSerie)

{



//On met la variable tous en minuscule (au cas où la personne ai tapé en majuscule...)

$numSerie = strtolower($numSerie);



//On sépare en deux la variable

$separation_numSerie = explode('ke',$numSerie);



//Maintenant, on a deux données, AVANT et APRES le KE...

// On va s'occuper du APRES pour n'y prendre que les deux 1er chiffres...

$codePage = substr($separation_numSerie[1],0,2);



return $codePage;

}



//Puis dans ton code, pour la redirection, tu tape :

$serie = $codePageSerie;

$code_page= codePageSerie($serie); // Ici, on a le 01, 02...

//On teste voi si on a les bonnes infos...

if ($code_page!='')

{ // On a bien eu un KE dans la série...



//On regarde si c'est bien un chiffre entre 0 et 20

if (intval($code_page) >= 0 && intval($code_page)<=20)

{

//Le code Päge est bon, on redirige...

$redir = $code_page;

}

else

{

//Redirection vers une page erreur : erreur.php

$redir = "erreur";

}

}

else

{

//Redirection vers une page erreur : erreur.php

$redir = "erreur";

}



Header("Location: ".$redir.".php");

// Ici : 01.php



?>



Et là, ca doit être bon, 1000 excuses !



Bonne fin d'aprem ;)

@+

Damien
0
cs_zoubis Messages postés 5 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 14 novembre 2008
13 nov. 2005 à 18:50
Yes !!!!!!!!! Tout marche à merveille avec ton code, juste une dernière petite question après le KE il peut aussi y avoir ce genre de duo 0A jusqu'à 0Z, comment puis-je faire pour insérer une autre condition intégrant ces données supplémentaires.

c'est ma dernière question après je ne te dérange plus avec mon problème qui n'en ai plus un grace à ton intervention remarquable.

Merci d'avance si tu a encore quelques minutes à me consacrer.

Amicalement Olivier.
0
Rejoignez-nous