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
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
MYSQL PROBLEMEMYSQL PROBLEME par remitete
Cliquez pour lire la suite par remitete
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|