Accueil > Forum > > > > J'ai un probleme pouvez- vous m'aider svp?
J'ai un probleme pouvez- vous m'aider svp?
mercredi 19 octobre 2005 à 05:45:01 |
J'ai un probleme pouvez- vous m'aider svp?

gjeanely
|
Bonjour , j'ai un petit probleme que je n'arrive pas à resoudre. voici : J'ai une page en php ou il faut etre connecte pour y acceder , de cet page on est rediriger automatiquement vers une page cgi qui elle aussi redirige automatiquement vers une page mais en php qui est proteger comme la premiere. J'aimerais que l'identifiant du membre ($id , qui est stocke dans une base de donne) soit transmit a la 2eme page php . Je n'arrive pas a faire affiche cet $id dans la page cgi , quand la page cgi s'ouvre cet url apparait ex: monsite.com/rep/mapage.cgi?truc=1& et moi je voudrais que $id soit afficher : monsite.com/rep/mapage.cgi?truc=1&id=ici l'identifiant qui se trouve dans la base de donne voici la fonction qui redirige automatiquement la 1er page php a la page cgi : exp redirect("/rep/mapage.cgi?truc=1&$id","5"); je precise que je ne peut pas utilise DBI pour me connect a la base de donne a partir des script cgi car mon hebergeur a limiter les fonctions Cordialement Jean
|
|
mercredi 19 octobre 2005 à 09:02:56 |
Re : J'ai un probleme pouvez- vous m'aider svp?

malalam
|
Hello, l'envoi doit se faire ainsi : expredirect ('rep/mapage.cgi?truc=1&id='.$id, '5');
|
|
mercredi 19 octobre 2005 à 17:34:51 |
Re : J'ai un probleme pouvez- vous m'aider svp?

gjeanely
|
Salut ,
je viens de tester sa marche niquel sur une page , par contre j'ai d'autre lien de redirection et je c'est pas trop les adapter selon ton model , voici les lien selon les page :
1er page php :
expredirect ('rep/mapage.cgi?truc=1&id='.$id, '5'); /sa marche impec
dans : mapage.cgi : j'ai ceci qui ouvre la derniere page du script cgi mais l'id est vide : print "Location: $cgi_aff_page?truc=$num_truc&id=$id\n\n";
dans la derniere page cgi appele . celle qui redonne la valeur $id a la page php membre qui viens apres : <meta http-equiv="Refresh" content="5;URL=membres_suite.php3?id=.$id" />
j'ai aussi un lien au cas ou la page ne redirige pas automatique
<a href='membres_suite.php3?id='.$id class="lien">
Cordialement Jean
|
|
mercredi 19 octobre 2005 à 17:44:16 |
Re : J'ai un probleme pouvez- vous m'aider svp?

malalam
|
Je n'ai rien compris, lol. Pourquoi il y a un point avant $id là : <meta http-equiv="Refresh" content="5;URL=membres_suite.php3?id=.$id" /> ?? et tu es dans un echo là? je veux dire, dans du php? Parce que sinon...$id n'existe pas du tout. html ne sait pas interpréter $id. C'est une variable. Pareil là: <a href='membres_suite.php3?id='.$id class="lien">
|
|
mercredi 19 octobre 2005 à 18:22:22 |
Re : J'ai un probleme pouvez- vous m'aider svp?

gjeanely
|
j'avais mis sa au debut :<a href="membres_suite.php3?id=<? echo "$id"; ?>">suite</a> mais dans la page qui apparait a l'ecran il resort sa : ; ?>">suite</a>
je ne peut donc pas passer l'id du membre dans la 2eme page cgi ?
merci
|
|
mercredi 19 octobre 2005 à 23:10:20 |
Re : J'ai un probleme pouvez- vous m'aider svp?

monoceros01
|
Je pense que tu devrais utiliser tout simplement $_GET["id"] au lieu de $id (tout en faisant attention à ta syntaxe ;) ) dans la/les page(s) où ça marche pas.
|
|
mercredi 19 octobre 2005 à 23:36:07 |
Re : J'ai un probleme pouvez- vous m'aider svp?

gjeanely
|
salut monoceros j'ai essayer comme ceci : sur une des page est sans succé
print "Location: $cgi_aff_perdu?lot=$num_lot&id=$_GET["id"]\n\n";
je croit que je n'est pas compris un truc , comment se sert ton de $_GET ? stp Faut t'il l'inserer dans un lien ? ou sur une page pour afficher l' id ?
merci
|
|
mercredi 19 octobre 2005 à 23:52:01 |
Re : J'ai un probleme pouvez- vous m'aider svp?

monoceros01
|
La variable $_GET est un tableau contenant les paires name/value retournées dans une url sous forme de query_string (ce qu'il y a après le ?) Pour résumer, si dans ton url tu as http://www.monsite.com/index.php?plop=5&plup=o_o&plap=TRUE, la variable $_GET contiendra le tableau suivant : Array( "plop" => 5, "plup" => "o_o", "plap" => TRUE ); Donc comme je vois que tu fait passer la valeur de $id dans l'url, je presume que pour récupérer cette valeur tu doives le faire via le tableau $_GET. Le seul problème c'est que je n'ai pas encore entièrement compris comment fonctionnais ton cgi. En théorie (d'après ce que je sais), un cgi est un script compilé, mais pourtant tu écris : "dans : mapage.cgi : j'ai ceci qui ouvre la derniere page du script cgi mais l'id est vide : print "Location: $cgi_aff_page?truc=$num_truc&id=$id\n\n"; " Donc je suis perplexe quant au fonctionnement de ton cgi... (à vrai dire je n'ai presque jamais compilé autre chose qu'un "Hello World!" en C++ <_<) Si tu pouvais, en dire plus sur les tenant et les aboutissant de tes trois scripts =) (et surtout expliquer un peu mieux le fonctionnement de ce cgi), à moins que tu ne t'en sortes avec ce que je viens d'expliquer ;)
|
|
jeudi 20 octobre 2005 à 00:42:53 |
Re : J'ai un probleme pouvez- vous m'aider svp?

gjeanely
|
voici la 1er page cgi (mapage.cgi) ou j'ai envoyer l'id avec cet commande : expredirect ('rep/mapage.cgi?truc=1&id='.$id, '5'); (cette commande se trouve sur la 1ere page php) - l' id apparait bien dans l'url ----------------------------------------------------------------------------- #!/usr/bin/perl read(STDIN,$temp,$ENV{'CONTENT_LENGTH'}); {$temp = "$temp\&$ENV{'QUERY_STRING'}";} @pairs=split(/&/,$temp); foreach $item(@pairs) { ($mots,$content)=split(/=/,$item,2); $content=~tr/+/ /; $content=~s/%(..)/pack("c",hex($1))/ge; $content =~ s/\</</g; $content =~ s/\>/>/g; $content{$mots}="$content"; $champs{$mots} .= "\0" if (defined($champs{$mots})); $champs{$mots} .= "$content"; } require "config.pl"; $num_lot = $champs{'lot'}; open(FICHIER, "<$fic_lots"); flock (FICHIER, 1); @FICHIER = <FICHIER>; flock (FICHIER, 8); close(FICHIER); if (($FICHIER[$num_lot] eq '') || ($num_lot eq '')) { print "Content-type: text/html\n\n"; print "<b>ERREUR !!!<br>LOT INEXISTANT !!</b>"; exit; } ($nom,$num_gagnant,$num_en_cours,$aff_num) = split(/\|/, $FICHIER[$num_lot]); $num_en_cours++; $i = @FICHIER; $i--; if ($num_en_cours == $num_gagnant) { foreach $i(0..$i) { if ($i == $num_lot) { $news .= "$nom\|$num_gagnant\|0\|$aff_num\|\n"; } else { $news .= $FICHIER[$i]; } } open(DATA2, ">$fic_lots"); flock (DATA2, 2); print DATA2 $news; close (DATA2); flock (DATA2, 8); print "Location: $cgi_aff_gain?lot=$num_lot\n\n"; exit; } else { foreach $i(0..$i) { if ($i == $num_lot) { $news .= "$nom\|$num_gagnant\|$num_en_cours\|$aff_num\|\n"; } else { $news .= $FICHIER[$i]; } } open(DATA2, ">$fic_lots"); flock (DATA2, 2); print DATA2 $news; close (DATA2); flock (DATA2, 8); print "Location: $cgi_aff_perdu?lot=$num_lot\n\n"; exit; }
---------------------------------------------------------------------------------------------- ici c la page.cgi qui affiche les resultat par rapport a mapage.cgi (c'est resultat sont afficher dans une page html - voir plus bas ), je voudrais que mon id passe aussi par cette page pour arriver sur la derniere qui est en php - - ------------------------------------------------------------------------ - -
#!/usr/bin/perl read(STDIN,$temp,$ENV{'CONTENT_LENGTH'}); {$temp = "$temp\&$ENV{'QUERY_STRING'}";} @pairs=split(/&/,$temp); foreach $item(@pairs) { ($mots,$content)=split(/=/,$item,2); $content=~tr/+/ /; $content=~s/%(..)/pack("c",hex($1))/ge; $content =~ s/\</</g; $content =~ s/\>/>/g; $content{$mots}="$content"; $champs{$mots} .= "\0" if (defined($champs{$mots})); $champs{$mots} .= "$content"; } require "config.pl"; $num_lot = $champs{'lot'}; open(FICHIER, "<$fic_lots"); flock (FICHIER, 1); @FICHIER = <FICHIER>; flock (FICHIER, 8); close(FICHIER); $num_lot = $champs{'lot'}; ($nom,$num_gagnant,$num_en_cours,$aff_num) = split(/\|/, $FICHIER[$num_lot]); open(PAGE_HTML, "<$perdu_html"); while (<PAGE_HTML>){ $affichage .= $_; } close(PAGE_HTML); $affichage =~ s/####NOM_DU_LOT####/$nom/g; if ($aff_num eq 'oui') { $affichage =~ s/####NUMERO_EN_COURS####/$num_en_cours/g; } if ($aff_num eq 'non') { $affichage =~ s/####NUMERO_EN_COURS####/<i>secret<\/i>/g; } $affichage =~ s/####NUMERO_GAGNANT####/$num_gagnant/g; print "Content-type: text/html\n\n"; print $affichage; exit;
---------------------------------------------------------------------------------------------- voici se qui se trouve dans la page html -c'est ici que la page cgi renvoi les resultats - - ------------------------------------------------------------------------ - - <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> <div align="center">####NUMERO_EN_COURS####<br> <br> ####NUMERO_GAGNANT#### <br> <br> ####NOM_DU_LOT#### <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <b>(Merci de laisser la mention de copyright sur les pages html, cela récompense notre travail et permet de nous faire connaitre.)</b><br> <br> <hr width="50%" noshade size="1"> © Script téléchargé gratuitement sur <a href="perl-fr.com. http://www.perl-fr.com">Perl-fr.com.</a></div> </body> </html>
------------------------------------------------------------------------------------------------ voici la derniere page.php la ou je dois avoir l'id pour que le membre puisse voir sa page - - ---------------------------------------------------------------------------- - - <? require("../membres/conf.php3"); // CONNEXION MYSQL $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd); if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;} // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS $requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link) or die(mysql_error()); // SI L'ID N'EXISTE PAS if(mysql_num_rows($requete)==0) { // REDIRECTION PAGE ERREUR header("Location:$url_erreur"); exit; }
// RECUPERATION DU PSEUDO $pseudo_membre=mysql_result($requete,0,"pseudo"); $points=mysql_result($requete,0,"points");
// DECONNEXION MYSQL mysql_close($db_link); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " [ Lien ]"> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <div align="center"><font size="2" face="Verdana">Votre pseudo : <b><? echo "$pseudo_membre"; ?></b><br> <br> Vos points: <b><? echo "$points"; ?></b></font> </div> </body> </html>
---------------------------------------------------------------------------------------- Voila le code j'espere que tu pourras me comprendre je te remerci de ton aide.
|
|
jeudi 20 octobre 2005 à 02:00:11 |
Re : J'ai un probleme pouvez- vous m'aider svp?

monoceros01
|
Réponse acceptée !
Ah! Tu as oublier de nous dire que tes cgi étaient écrit en perl et non en php (c'est peut-être évident pour certains, mais pas pour moi) La variable $_GET est une variable de php et non de perl. Malheureusement je n'y connais rien en perl (mais ça a l'air rigolo, ça ressemble à s'y méprendre à du php) *vas tout de même aller consulter mon ami google pouvoir s'il a de bonnes histoire d'huitres à raconter* ^0^ Je l'aime ce google (mais pas au point d'appeler mon premier fils google... d'autres l'ont déjà fait >_>) Alors voilà ce qu'il m'a raconté Bon si j'ai bien compris, c'est la variable d'environnement %ENV que tu dois utiliser dans tes cgi. Il s'agit d'un tableau associatif contenant entre autre la chaîne de caractère se trouvant après le ? d'une url, appelée query string : Prenons cette url : rep/mapage.cgi?truc=1&id=5 $ENV{'QUERY_STRING'} contiendra "truc=1&id=5" Donc pour accéder à l'id lui-même tu devras analyser cette chaîne de caractères... Heureusement, comme le stipule l'article lié ci-dessus, tu as à ta disposition deux outils pour te simplifier la tâche : 1/ Le module CGI.pm qui te permet d'instancier un objet a partir de la classe CGI afin d'avoir accès à la méthodes param() que tu pourras utiliser de la façon suivante : use CGI; // chargement du module CGI.pm $get = new CGI; // instantiation $id = $get->param('id'); // retourner la valeur de id dans $id 2/ La librairie cgi-lib.pl qui te permet d'utiliser la sous-routine ReadParse() qui retourne dans un tableau associatif mis en argument les paires name/value de la QUERY_STRING. require "cgi-lib.pl"; // chargement de la librairie cgi-lib.pl &ReadParse(*get); // décodage de la QUERY_STRING et remplissage du tableau associatif %get $id = $get{'id'}; // retourner la valeur de id dans $id Il ne te reste plus qu'a choisir la méthode que tu veux, et tu obtiendras (enfin) la variable $id que tu pourras utiliser dans tes cgi pour les redirections :)
|
|
Cette discussion est classée dans : page, php, probleme, id, cgi
Répondre à ce message
Sujets en rapport avec ce message
problème de redirection [ par kwak ]
Bonjour à tous,je me trouve depuis quelques temps déjà confronté à un problème de redirection. Ici le problème se pose pour rediriger l'utilisateur se
Probleme avec ID [ par Morgiver ]
Je suis en train de faire une partie privée pour mon site je dois donc faire une page d'inscription ce que j'ai fais. Bon quand j'inscri un membre il
probleme de classe en php [ par Elkaire ]
Donc voila mon probleme!!dans une premiere page je rensegne les insances de mon objet. Une fois renseigné je peux réutiliser les instances cet objet d
probleme php et explorer [ par sirspycho ]
j'ai programmé un site avec un ami. on a utilisé le php, le javascript et comme base de donnée mysql.Pour travailler en local (nous n'avions pas encor
Liste déroulante simple en php [ par genfy ]
Je dispose d'une base de données mysql avec plusieurs enregistrements et d'une page php (page.php) qui selon d'ID saisie affiche mes différentes donné
probleme de fenetres [ par loutwice ]
salut,alors voila, j'ai une page en php , on va l'appeler 1.okj'ai une autre page php, on va l'appeler 2.okexplication de ce que je désire:avec 1 on a
Pb de zone membre.php [ par darksmiling ]
je suis débutant en terme de php et j'ai un petit probleme avec ma zone membre. Disons plus tôt que je ne sais pas comment faire quelque chose. Je tie
probleme de news [ par momoxe ]
Pour mon site web,j'utilise le php et pour les news je voudrais utiliser une base de donnée et là se pose mon probleme.Voici mon theme que je vais uti
Besoin Aide Page PHP [ par Dexterage ]
Bonjour a tous, je vous expose mon probleme! En fait je develope un Agenda, sur lequel il y a des association, des lieux, des dates... Sur la page de
probleme de passage de variable php... [ par cedricdric ]
Voici plusieur jours que je cherche une solution à ce problème:J'aimerai ouvrir par le biais de ma page d'index ( voir le script ci dessous). Pour cel
Livres en rapport
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|