Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2990 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec foreach !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec foreach !

n°1618994
Orission
Posté le 04-10-2007 à 16:21:59  profilanswer
 

Salut,
 
J'ai un petit avec un formulaire et foreach, voilà le code :
 

Code :
  1. <?php
  2. $i = 1;
  3. foreach($_POST as $cle => $element)
  4. {
  5.         $sse = explode('_', $cle);
  6.         mysql_query('UPDATE series_episodes SET titre_episode="'.$_POST[$i].'", url="'.$element.'" WHERE id_serie='.$sse[0].' AND saison='.$sse[1].' AND num_episode='.$sse[2].'') or die (mysql_error());
  7.         $i++;
  8. }
  9. echo '<form action="series_episodes.php?id_serie='.$_GET['id_serie'].'&saison='.$_GET['saison'].'&type=modif_episode" method="post">
  10. <center>
  11. <table style="width: 75%;">
  12.         <tr>';
  13. $q = mysql_query('SELECT * FROM series_episodes WHERE id_serie='.$_GET['id_serie'].' AND saison='.$_GET['saison'].' ORDER BY num_episode');
  14. while($r = mysql_fetch_array($q))
  15.         echo '<td><input type="text" size="80" name="'.$_GET['id_serie'].'_'.$r['saison'].'_'.$r['num_episode'].'" value="'.htmlentities($r['url']).'" /></td>
  16.                 <td>'.$r['saison'].'x'.$r['num_episode'].' - <input type="text" name="'.$r['num_episode'].'" value="'.$r['titre_episode'].'" /></td>
  17.         </tr>';
  18. echo '</tr>
  19.         <tr>
  20.                 <th class="center" colspan="4"><br /><input type="submit" /></th>
  21.         </tr>
  22. </table>
  23. </form>';
  24. ?>


 
En fait, je veux mettre à jour :
 
L'url du lien et le titre de l'épisode via le formulaire mais je n'y arrive pas, quelqu'un pourrait il m'aider? :)
 
Merci!


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »
mood
Publicité
Posté le 04-10-2007 à 16:21:59  profilanswer
 

n°1619012
flo850
moi je
Posté le 04-10-2007 à 16:30:41  profilanswer
 

tu as un message d'erreur a nous donner ?  
 
sinon, plus bas, dans ton while , tu devrai faire  
 

Code :
  1. while()
  2. {
  3. echo '<tr>';
  4. echo ' plein de kaka';
  5. echo '</tr>';
  6. }


 
sinon, en Mysql , els chaines de caractères doivent etre entre ' , et toi , tu les mets entre "


Message édité par flo850 le 04-10-2007 à 16:32:03
n°1619016
FlorentG
Unité de Masse
Posté le 04-10-2007 à 16:32:05  profilanswer
 

Y'a une faille de sécurité/bug tellement énorme, que j'ai dû mal à croire qu'elle figure dans ton code :D
 
Personne ne t'as jamais dit de ne jamais mettre un $_POST['machin'] directement dans une requête ? :(

n°1619041
Orission
Posté le 04-10-2007 à 16:45:06  profilanswer
 

FlorentG, j'utilise ce code dans ma page d'admin et y'a que moi qui a accès :)
 
@flo850 : je ne suis pas encore un expert pour optimiser mes codes ;)
 
sinon aucune erreur sauf que ça ne met pas à jour le titre de l'épisode mais ça met à jour l'url :(


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »
n°1619049
FlorentG
Unité de Masse
Posté le 04-10-2007 à 16:48:47  profilanswer
 

Orission a écrit :

FlorentG, j'utilise ce code dans ma page d'admin et y'a que moi qui a accès :)


Mais vu que t'as aussi un problème de CSRF, quelqu'un pourrait facilement forger un formulaire quelque part, et te filer le lien en faisant style "clique ici c'est cool" [:dawa] Donc dangereux

n°1619058
Orission
Posté le 04-10-2007 à 16:54:05  profilanswer
 

Oui, mais je suis en htaccess donc j'pense pas qu'il y a un risque, enfin je me trompe peut être :D


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »
n°1619064
tuxce
Posté le 04-10-2007 à 16:59:17  profilanswer
 

même, il vaut mieux utiliser mysql_real_escape_string () pour intégrer les valeurs à la requete.

n°1619075
Orission
Posté le 04-10-2007 à 17:07:40  profilanswer
 

ok merci :)
 
Sinon, pour mon problème de foreach, je peux faire comment ?


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »
n°1619099
tuxce
Posté le 04-10-2007 à 17:35:22  profilanswer
 

j'ai pas très bien compris, la requete te met à jour un champs sur 2??
vérifie le contenu de la requete avec un echo avant de l'executer, tu dois avoir un souci dans tes variables dans $_POST

n°1619133
Orission
Posté le 04-10-2007 à 17:58:11  profilanswer
 

Voilà ma requête en echo
 

Code :
  1. mysql_query('UPDATE series_episodes SET titre_episode="'.Retour en force.'", url="'. - www.google.fr.'" WHERE id_serie='.1.' AND saison='.3.' AND num_episode='.1.'') or die (mysql_error());
  2. mysql_query('UPDATE series_episodes SET titre_episode="'..'", url="'.Retour en force.'" WHERE id_serie='.1.' AND saison='..' AND num_episode='..'') or die (mysql_error());


 
en fait ça me fait 2 requêtes au lieu d'une :x


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »
mood
Publicité
Posté le 04-10-2007 à 17:58:11  profilanswer
 

n°1619152
omega2
Posté le 04-10-2007 à 18:09:15  profilanswer
 

Heu ... fait plutôt un véritable echo du même texte que ce que contient le mysql_query par ce que là ça fait super bizarre ton montage.
 
PS : "AND saison='..' AND "   <=>  "AND saison= AND " Il y aurait pas comme qui dirait un problème dans ta seconde requête?

n°1619171
Orission
Posté le 04-10-2007 à 18:15:32  profilanswer
 

c le véritable echo :x
 
c pour ça, y'a 2 requetes * le nombre d'épisodes
 
donc 24 épisodes = 48 requetes :x
 
dont 24 vides comme la 2eme que j'ai mise ci dessus :'(


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »
n°1619182
omega2
Posté le 04-10-2007 à 18:20:11  profilanswer
 

heu j'ai peur de comprendre là. T'as fait echo 'mysql_query ...' ?
Ce qu'on te demande, c'est que si tu fais un mysql_query('select * from matable where colone='.$numero) tu fasses juste avant un echo 'select * from matable where colone='.$numero  
 
Le but c'est d'avoir le texte de la requête telle qu'envoyé réellement au serveur, pas un smilblick potentiellement faux.

n°1619237
Orission
Posté le 04-10-2007 à 19:29:48  profilanswer
 

bah, c ce que je viens d'écrire au dessus sans les mysql_query('');
 
oO


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »
n°1619247
Orission
Posté le 04-10-2007 à 19:50:23  profilanswer
 

j'ai trouvé une solution, mais maintenant c ma requête, vu que je dois dire :
 
WHERE id_serie='.$sse[0].' AND saison='.$sse[1].' AND num_episode='.$sse[2].'
 
mais ça ne fonctionne pas :x
 


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »
n°1619273
Orission
Posté le 04-10-2007 à 20:31:51  profilanswer
 

En fait, j'ai une solution, beaucoup plus "porc" mais bon, moins prise de tête et comme je vais pas souvent l'utiliser, ça bouffera pas de ressource ;)
 
merci quand même


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, en 1810, « Chez Bonaparte »

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec foreach !

 

Sujets relatifs
Problème COMPILATION Code::Blockprobleme de endl
probleme site webProblème sur l'affichage d'images
Problème RMI Windows/Linuxprobleme avec foreach
problème avec foreachProblème avec foreach
problème avec fonction FOREACHJSP jstl <c:forEach> probleme!!!!
Plus de sujets relatifs à : Problème avec foreach !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR