une erreur bete perdu dans 5 lignes de code

une erreur bete perdu dans 5 lignes de code - PHP - Programmation

Marsh Posté le 28-05-2003 à 16:10:32    

Je trouve pas mon erreur,ou peut etre y'en a til pas ?
 
j'ai 2 fichiers :
le 1er contenant un formulaire avec en entête:

Code :
  1. <form action='note.php?nbart=$id' target='_blank' method='get' name='notation'>


$id étant une variable que je récupere de la base de données
Lors de l'envoi du formulaire l'url de la nouvelle page est :
 
http://127.0.0.1/I-ADO/DESIGN%20FINAL/note.php?9
 
//9 étant l'identifiant de l'article($id) avec lequel je fais ce test
 
dans le 2nd fichier(celui vers lequel pointe le formulaire) j'ai :

Code :
  1. <?
  2. $id=$_GET['nbart'];
  3. echo"$id";
  4. ?>


Et pourtant cela ne donne rien..page blanche.
 
Désoé de vous embetez pour ca, mais bon, cf le titre du topic.. :sweat:  
 
Merci d'avance
SmilM

Reply

Marsh Posté le 28-05-2003 à 16:10:32   

Reply

Marsh Posté le 28-05-2003 à 16:14:45    


 
heu, ben oui..
<form action='note.php?nbart=$id' target='_blank' method='get' name='notation'>
et l'$id est variable..donc =9 ou quelque chose d'autre.

Reply

Marsh Posté le 28-05-2003 à 16:19:11    

ben ca marche avec la methode post..
C'est bon  :pt1cable:

Reply

Marsh Posté le 28-05-2003 à 16:22:26    

Oui, j'imagine qu'il n'est pas possible de fournir avec la méthode GET des URL pour l'attribut action qui possèdent déjà une variable...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 28-05-2003 à 16:24:21    

1) utiliser la méthode Post...
2) Il ne faut PAS passer de param dans le form action, car ceux-ci sont passé par la formulaire et récupéré avec

Code :
  1. echo $_POST['nomChamp'];

Reply

Marsh Posté le 28-05-2003 à 16:26:09    

Mais non, pas :pt1cable: du tout !
 
Soit method GET :
 

echo( "<form action=\"note.php\" target=\"_blank\" method=\"get\" name=\"notation\">\n" );
echo( "<input type=\"hidden\" name=\"nbart\" value=\"$id\">\n" );
...
echo( "</form>\n" );


 
Soit method POST :
 

echo( "<form action=\"note.php?nbart=$id\" target=\"_blank\" method=\"post\" name=\"notation\">\n" );
...
echo( "</form>\n" );


 
ou encore en POST :
 

echo( "<form action=\"note.php\" target=\"_blank\" method=\"post\" name=\"notation\">\n" );
echo( "<input type=\"hidden\" name=\"nbart\" value=\"$id\">\n" );
...
echo( "</form>\n" );


 
mais alors :

$id=$_POST['nbart']


Message édité par Mara's dad le 28-05-2003 à 16:27:07

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 28-05-2003 à 16:29:03    

michael50000 = SmilM :heink:

Reply

Marsh Posté le 28-05-2003 à 16:48:20    

finalement j'ai utilisé les hidden dans le formulaire
 
oui Michael50000=SmilM :kaola:


Message édité par smilm le 28-05-2003 à 16:56:59
Reply

Marsh Posté le 28-05-2003 à 16:54:22    

j'ai un petit doute sur un truc:
est ce que un requete de ce type est possible ?
$requete="INSERT INTO articles (nbnote, totalpts) VALUES ($nbnote,$total)  WHERE $id=id ";
 
Parce que là il me gave, il crée a chaque fois un nouvel enregistrement lors de l'execution , donc je me pose des questions..

Reply

Marsh Posté le 28-05-2003 à 16:54:22   

Reply

Marsh Posté le 28-05-2003 à 16:57:58    

Reply

Marsh Posté le 28-05-2003 à 17:20:42    

Merci :)
Ca marche
En fait c'était fait pour noter des articles mais j'y pense, il faut aussi empecher que l'on puisse voter 2 fois.
Je pense que ca ce gere avec les cookies, c'est difficile a utiliser?

Reply

Marsh Posté le 28-05-2003 à 17:28:04    

Mara's dad a écrit :

Mais non, pas :pt1cable: du tout !
 
Soit method GET :
 

echo( "<form action=\"note.php\" target=\"_blank\" method=\"get\" name=\"notation\">\n" );
echo( "<input type=\"hidden\" name=\"nbart\" value=\"$id\">\n" );
...
echo( "</form>\n" );


 
Soit method POST :
 

echo( "<form action=\"note.php?nbart=$id\" target=\"_blank\" method=\"post\" name=\"notation\">\n" );
...
echo( "</form>\n" );


 
ou encore en POST :
 

echo( "<form action=\"note.php\" target=\"_blank\" method=\"post\" name=\"notation\">\n" );
echo( "<input type=\"hidden\" name=\"nbart\" value=\"$id\">\n" );
...
echo( "</form>\n" );


 
mais alors :

$id=$_POST['nbart']




 
Pourquoi tu as mis des antislash partout ? :??:
 
ha je sais
C'est pour l'échappement..
c'est plus simples les simple quotes 'bla bla' que \"bla bla\"..


Message édité par smilm le 28-05-2003 à 17:34:19
Reply

Marsh Posté le 28-05-2003 à 21:52:07    

Bon c'est dans le meme projet : (module de vote)
 
J'aimerais savoir comment faire pour empecher l'utilisateur de voter plusieurs fois sur le meme article du site.
J'ai vu des remot_user
<?
$username =getenv(REMOTE_USER);
echo"$username";
?>
Ce code ne donne aucun résultat ni en local ni en ligne.
 
Peut etre l'utilisation de cookies, alors comment s'y prendre ?(théoriquement, me donner pas du code)
 
Merci d'avance


Message édité par smilm le 28-05-2003 à 21:53:01
Reply

Marsh Posté le 12-06-2003 à 08:55:01    

Le retour de ce topic..hélas oui..
 
j'essaye de faire un compteur tout con, à affichage texte, et ca fait 15 min que je cherche mon erreur, la 2nd requete n'est pas bonne..
 

Code :
  1. //SCRIPT COMPTEUR
  2.    $requetecompteur="SELECT * FROM hits";
  3.    $resultatcompteur=mysql_query($requetecompteur,$connexion);
  4. $hiteur=mysql_fetch_object($resultatcompteur);
  5. echo"$hiteur->compteur";
  6. $hiteur->compteur++;
  7. echo"$hiteur->compteur";
  8. $compteurupdate="UPDATE hits SET  compteur='$hiteur->compteur'";//erreur ici .. :??:  
  9. $resultat=mysql_query($compteurdate,$connexion);
  10. if(!$resultat)
  11. echo"requete $compteurupdate impossible";


 
Il renvoi a l'écran :
 
 Visite n° 123124requete UPDATE hits SET compteur=124 impossible  
 
(j'ai pas trop mis de \n  :( )
 
Ma table :
Hits, comportant un seul et unique champ pour le moment c'est a dire : compteur.

Reply

Marsh Posté le 12-06-2003 à 09:14:25    

Et c'est quoi l'erreur ? Tu as besoins des ' autour de $hiteur->compteur ?


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 12-06-2003 à 09:18:31    

gm_superstar a écrit :

Et c'est quoi l'erreur ? Tu as besoins des ' autour de $hiteur->compteur ?


 
C'est bon je viens de trouvé.... :pfff: (j'en ai marre d'utiliser ce smiley!)
 
juste une erreur lors de l'appel d'une var..

Reply

Marsh Posté le 12-06-2003 à 10:45:11    

Salut !
Je fais la gallerie photo que propose le bookin "En pratique PHP/MYSQL", mais il y'a quelque chose qui ne va pas apparament.
 
Voilà un petit morceau de code qui doit me télécharger une des photos de la gallerie en fonction de l'id que l'on "GET" par parametre dans l'url.

Code :
  1. //on envoie un en tete forcant le transfert
  2. $fichier="photos/". $_GET['id'] .".jpg";
  3. header("Content-type: application/force-download" );
  4. header("Content-disposition: filename=$fichier" );
  5. $fichier="photos/". $_GET['id'] .".jpg";
  6. //Aprés l'en tete, on transmet le contenu du fichier lui meme
  7. readfile($fichier);


 
Voilà
Et donc le probleme c'est que il sort bien une fenetre "Ouvrir , Enregistrer", pour enregistrer l'image sur le disque, grace au "force-download" , seulement quand on fait enregistrer, le nom du fichier qu'il veut enregistrer est "chargerphoto" , sans extension...,mais si on rajoute .jpg, ca marche !C'est la bonne photo qui est enregistrer.Pour indication, chargerphoto.php est le nom de mon fichier dans lequel le script ci dessus est contenu.
Mais je ne vois pas trop pourquoi il l'utilise comme nom de fichier par défaut pour le téléchargement d'une image n'ayant aucun rapport a part été appeler dans ce fichier.
Alors bon je pourrais écrire, "renommer ce fichier comme vous le souhaitez et ajouter .jpg a la fin avant de valider votre enregistrement", mais bon , ca fait un peu con je trouve..
J'ai un peu cherché sur google, mais bon, je vois pas trop quel pourrait etre mes mots clés pour ce type de recherche...
 
En cherchant un peu j'ai trouvé :
header("Content-Disposition: attachment; filename=$filename" );
Mais avec ca , il propose de télécharger chargerphoto.php, et pourtant si l'on renomme ce fichier, c'est toujours bien la photo demandé !
 
Y'aurai il une fonction, ou quelque chose dans le genre pour avoir le nom de mon image.jpg au lieu du "chargerphoto.php" (dans ce cas là) ?


Message édité par smilm le 14-06-2003 à 21:41:58
Reply

Marsh Posté le 12-06-2003 à 19:24:46    

[:o acid o]

Reply

Marsh Posté le 13-06-2003 à 13:32:39    

:bounce:

Reply

Marsh Posté le 14-06-2003 à 12:19:32    

bon..:(

Reply

Marsh Posté le 14-06-2003 à 12:35:51    

hello  :hello:  
j'ai pas lu .. c'est quoi ton problème?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 14-06-2003 à 21:40:51    

simogeo a écrit :

hello  :hello:  
j'ai pas lu .. c'est quoi ton problème?


Coucou ! :hello:  
Le probleme est 5 réponses au dessus :)


Message édité par smilm le 14-06-2003 à 21:41:19
Reply

Marsh Posté le 14-06-2003 à 21:42:49    

SmilM a écrit :


Coucou ! :hello:  
Le probleme est 5 réponses au dessus :)


oki .. la je me casse .... j'y jeterai un oeil demain ou dans la nuit  :p


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 15-06-2003 à 01:32:40    

Code :
  1. $fichier="photos/". $_GET['id'] .".jpg";
  2. if(isset($HTTP_ENV_VARS['HTTP_USER_AGENT']) and strpos($HTTP_ENV_VARS['HTTP_USER_AGENT'],'MSIE 5.5'))
  3. {
  4. Header('Content-Type: application/dummy');
  5. }
  6. else
  7. {
  8. Header('Content-Type: application/octet-stream');
  9. }
  10. Header('Content-disposition: attachment; filename='.$fichier);


 
tu peux essayer avec ces entêtes .... c'est peut-être spécifique à IE 5.5 [:meganne]
As-tu essayer le download avec un autre browser ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 16-06-2003 à 08:55:53    

simogeo a écrit :

Code :
  1. $fichier="photos/". $_GET['id'] .".jpg";
  2. if(isset($HTTP_ENV_VARS['HTTP_USER_AGENT']) and strpos($HTTP_ENV_VARS['HTTP_USER_AGENT'],'MSIE 5.5'))
  3. {
  4. Header('Content-Type: application/dummy');
  5. }
  6. else
  7. {
  8. Header('Content-Type: application/octet-stream');
  9. }
  10. Header('Content-disposition: attachment; filename='.$fichier);


 
tu peux essayer avec ces entêtes .... c'est peut-être spécifique à IE 5.5 [:meganne]
As-tu essayer le download avec un autre browser ?


 
 
Ha effectivement avec mozilla ca marche bien!
 
IE  :(  
Merci simogeo !
 
 
 
Bon j'ai encore une tout petite question.
 
Quel genre de probleme de sécurité peut provoquer l'envoi de photos ?
Déjà j'ai fais ca :
Choissiez le fichier:
<input type=hidden name="MAX_SIZE_FILE" value="2000000">
<input name="matof" type="file" size=40>
 
 
Est ce que ca peut etre dangereux ou ya de gros trous de sécurité qu'il faudrait que je comble avant de mettre mon modules de photos en ligne ?Si oui, lesquelles ?
Merci d'avance.
ps:Ben ouai, j'ai un peu peur, c'est la 1er fois que je fais des transferts de fichiers via Internet de cette maniere.. :sarcastic:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed