begin process at 2010 03 21 06:00:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

J'ai un probleme pouvez- vous m'aider svp?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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/\</&lt;/g;
  $content =~ s/\>/&gt;/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/\</&lt;/g;
  $content =~ s/\>/&gt;/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&eacute;compense
  notre travail et permet de nous faire connaitre.)</b><br>
  <br>
  <hr width="50%" noshade size="1">
  &copy; Script t&eacute;l&eacute;charg&eacute; 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 :)

1 2

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales