guiguiz

Inscris le 30/01/2011 à 20:33
  • Signature
    guigui777
  • Site web
  • Nombre de sujets
    1
  • Nombre de messages
    1
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
guiguiz
le 30/01/2011 à 21:00
problème d'arrays
  1. <?php

  2. // Vérification des droits d'accès de la page
  3. if (!utilisateur_est_connecte()) {

  4. // On affiche la page d'erreur comme quoi l'utilisateur doit être connecté pour voir la page
  5. include_once CHEMIN_VUE_GLOBALE.'erreur_non_connecte.php';

  6. } else {

  7. // Ne pas oublier d'inclure la librairie Form
  8. include_once CHEMIN_LIB.'form.php';

  9. // "form_modif_infos" est l'ID unique du formulaire
  10. $form_modif_infos = new Form("form_modif_infos");

  11. $form_modif_infos->method('POST');

  12. $form_modif_infos->add('Email', 'adresse_email')
  13. ->label("Votre adresse email")
  14. ->Required(false)
  15. ->value($_SESSION['email']);

  16. $form_modif_infos->add('Checkbox', 'suppr_avatar')
  17. ->label("Je veux supprimer mon avatar")
  18. ->Required(false);

  19. $form_modif_infos->add('File', 'avatar')
  20. ->filter_extensions('jpg', 'png', 'gif')
  21. ->max_size(8192) // 8 Kb
  22. ->label("Votre avatar (facultatif)")
  23. ->Required(false);

  24. $form_modif_infos->add('Submit', 'submit')
  25. ->initial("Modifier ces informations !");

  26. // "form_modif_mdp" est l'ID unique du formulaire
  27. $form_modif_mdp = new Form("form_modif_mdp");

  28. $form_modif_mdp->method('POST');

  29. $form_modif_mdp->add('Password', 'mdp_ancien')
  30. ->label("Votre ancien mot de passe");

  31. $form_modif_mdp->add('Password', 'mdp')
  32. ->label("Votre nouveau mot de passe");

  33. $form_modif_mdp->add('Password', 'mdp_verif')
  34. ->label("Votre nouveau mot de passe (vérification)");

  35. $form_modif_mdp->add('Submit', 'submit')
  36. ->initial("Modifier mon mot de passe !");

  37. // Création des tableaux des erreurs (un par formulaire)
  38. $erreurs_form_modif_infos = array();
  39. $erreurs_form_modif_mdp = array();

  40. // et d'un tableau des messages de confirmation
  41. $msg_confirm = array();
  42. var_dump($erreurs_form_modif_infos);

  43. // Validation des champs suivant les règles en utilisant les données du tableau $_POST
  44. if ($form_modif_infos->is_valid($_POST)) {

  45. list($adresse_email, $suppr_avatar, $avatar) = $form_modif_infos->get_cleaned_data('adresse_email', 'suppr_avatar', 'avatar');

  46. // On veut utiliser le modèle de l'inscription(~/modules/membres.php)
  47. include_once CHEMIN_MODELE.'membres.php';

  48. // Si l'utilisateur veut modifier son adresse e-mail
  49. if (!empty($adresse_email)) {

  50. $test = maj_adresse_email_membre($_SESSION['id'], $adresse_email);

  51. if (true === $test) {

  52. // Ça a marché, trop cool !
  53. $msg_confirm[] = "Adresse e-mail mise à jour avec succès !";

  54. // Gestion des doublons
  55. } else {

  56. // Changement de nom de variable (plus lisible)
  57. $erreur =& $test;

  58. // On vérifie que l'erreur concerne bien un doublon
  59. if (23000 == $erreur[0]) { // Le code d'erreur 23000 signifie "doublon" dans le standard ANSI SQL

  60. preg_match("`Duplicate entry '(.+)' for key \d+`is", $erreur[2], $valeur_probleme);
  61. $valeur_probleme = $valeur_probleme[1];

  62. if ($adresse_email == $valeur_probleme) {

  63. $erreurs_form_modif_infos[] = "Cette adresse e-mail est déjà utilisée.";

  64. } else {

  65. $erreurs_form_modif_infos[] = "Erreur ajout SQL : doublon non identifié présent dans la base de données.";
  66. }

  67. } else {

  68. $erreurs_form_modif_infos[] = sprintf("Erreur ajout SQL : cas non traité (SQLSTATE = %d).", $erreur[0]);
  69. }

  70. }
  71. }

  72. // Si l'utilisateur veut supprimer son avatar...
  73. if (!empty($suppr_avatar)) {

  74. maj_avatar_membre($_SESSION['id'], '');
  75. $_SESSION['avatar'] = '';

  76. $msg_confirm[] = "Avatar supprimé avec succès !";

  77. // ... ou le modifier !
  78. } else if (!empty($avatar)) {

  79. // On souhaite utiliser la librairie Image
  80. include_once CHEMIN_LIB.'image.php';

  81. // Redimensionnement et sauvegarde de l'avatar
  82. $avatar = new Image($avatar);
  83. $avatar->resize_to(100, 100); // Image->resize_to($largeur_maxi, $hauteur_maxi)
  84. $avatar_filename = DOSSIER_AVATAR.$id_utilisateur .'.'.strtlower(pathinfo($avatar->get_filename(), PATHINFO_EXTENSION));
  85. $avatar->save_as($avatar_filename);

  86. // On veut utiliser le modèle des membres (~/modules/membres.php)
  87. include_once CHEMIN_MODELE.'membres.php';

  88. // Mise à jour de l'avatar dans la table
  89. // maj_avatar_membre() est définit dans ~/modules/membres.php
  90. maj_avatar_membre($_SESSION['id'] , $avatar_filename);
  91. $_SESSION['avatar'] = $avatar_filename;

  92. $msg_confirm[] = "Avatar modifié avec succès !";
  93. }

  94. } else if ($form_modif_mdp->is_valid($_POST)) {

  95. // On vérifie si les 2 mots de passe correspondent
  96. if ($form_modif_mdp->get_cleaned_data('mdp') != $form_modif_mdp->get_cleaned_data('mdp_verif')) {

  97. $erreurs_form_modif_mdp[] = "Les deux mots de passes entrés sont différents !";

  98. // C'est bon, on peut modifier la valeur dans la BDD
  99. } else {


  100. // On veut utiliser le modèle de l'inscription (~/modules/membres.php)
  101. include_once CHEMIN_MODELE.'membres.php';
  102. maj_mot_de_passe_membre($_SESSION['id'], $mdp);

  103. $msg_confirm[] = "Votre mot de passe a été modifié avec succès !";
  104. }

  105. }
  106. }

  107. // Affichage des formulaires de modification du profil
  108. include_once CHEMIN_VUE.'formulaires_modifier_profil.php';
  109. ?>

Je lai tester avec var_dump mais il m'affiche de problème du genre
Warning: Invalid argument supplied for foreach() in C:\wamp\www\mvc\libs\form.php on line 258
Form étant le nom e la class que j'utilise.Merci à tous
guigui777

Ses derniers messages sur les forums

forum
guiguiz
le 30/01/2011 à 21:00
problème d'arrays
  1. <?php

  2. // Vérification des droits d'accès de la page
  3. if (!utilisateur_est_connecte()) {

  4. // On affiche la page d'erreur comme quoi l'utilisateur doit être connecté pour voir la page
  5. include_once CHEMIN_VUE_GLOBALE.'erreur_non_connecte.php';

  6. } else {

  7. // Ne pas oublier d'inclure la librairie Form
  8. include_once CHEMIN_LIB.'form.php';

  9. // "form_modif_infos" est l'ID unique du formulaire
  10. $form_modif_infos = new Form("form_modif_infos");

  11. $form_modif_infos->method('POST');

  12. $form_modif_infos->add('Email', 'adresse_email')
  13. ->label("Votre adresse email")
  14. ->Required(false)
  15. ->value($_SESSION['email']);

  16. $form_modif_infos->add('Checkbox', 'suppr_avatar')
  17. ->label("Je veux supprimer mon avatar")
  18. ->Required(false);

  19. $form_modif_infos->add('File', 'avatar')
  20. ->filter_extensions('jpg', 'png', 'gif')
  21. ->max_size(8192) // 8 Kb
  22. ->label("Votre avatar (facultatif)")
  23. ->Required(false);

  24. $form_modif_infos->add('Submit', 'submit')
  25. ->initial("Modifier ces informations !");

  26. // "form_modif_mdp" est l'ID unique du formulaire
  27. $form_modif_mdp = new Form("form_modif_mdp");

  28. $form_modif_mdp->method('POST');

  29. $form_modif_mdp->add('Password', 'mdp_ancien')
  30. ->label("Votre ancien mot de passe");

  31. $form_modif_mdp->add('Password', 'mdp')
  32. ->label("Votre nouveau mot de passe");

  33. $form_modif_mdp->add('Password', 'mdp_verif')
  34. ->label("Votre nouveau mot de passe (vérification)");

  35. $form_modif_mdp->add('Submit', 'submit')
  36. ->initial("Modifier mon mot de passe !");

  37. // Création des tableaux des erreurs (un par formulaire)
  38. $erreurs_form_modif_infos = array();
  39. $erreurs_form_modif_mdp = array();

  40. // et d'un tableau des messages de confirmation
  41. $msg_confirm = array();
  42. var_dump($erreurs_form_modif_infos);

  43. // Validation des champs suivant les règles en utilisant les données du tableau $_POST
  44. if ($form_modif_infos->is_valid($_POST)) {

  45. list($adresse_email, $suppr_avatar, $avatar) = $form_modif_infos->get_cleaned_data('adresse_email', 'suppr_avatar', 'avatar');

  46. // On veut utiliser le modèle de l'inscription(~/modules/membres.php)
  47. include_once CHEMIN_MODELE.'membres.php';

  48. // Si l'utilisateur veut modifier son adresse e-mail
  49. if (!empty($adresse_email)) {

  50. $test = maj_adresse_email_membre($_SESSION['id'], $adresse_email);

  51. if (true === $test) {

  52. // Ça a marché, trop cool !
  53. $msg_confirm[] = "Adresse e-mail mise à jour avec succès !";

  54. // Gestion des doublons
  55. } else {

  56. // Changement de nom de variable (plus lisible)
  57. $erreur =& $test;

  58. // On vérifie que l'erreur concerne bien un doublon
  59. if (23000 == $erreur[0]) { // Le code d'erreur 23000 signifie "doublon" dans le standard ANSI SQL

  60. preg_match("`Duplicate entry '(.+)' for key \d+`is", $erreur[2], $valeur_probleme);
  61. $valeur_probleme = $valeur_probleme[1];

  62. if ($adresse_email == $valeur_probleme) {

  63. $erreurs_form_modif_infos[] = "Cette adresse e-mail est déjà utilisée.";

  64. } else {

  65. $erreurs_form_modif_infos[] = "Erreur ajout SQL : doublon non identifié présent dans la base de données.";
  66. }

  67. } else {

  68. $erreurs_form_modif_infos[] = sprintf("Erreur ajout SQL : cas non traité (SQLSTATE = %d).", $erreur[0]);
  69. }

  70. }
  71. }

  72. // Si l'utilisateur veut supprimer son avatar...
  73. if (!empty($suppr_avatar)) {

  74. maj_avatar_membre($_SESSION['id'], '');
  75. $_SESSION['avatar'] = '';

  76. $msg_confirm[] = "Avatar supprimé avec succès !";

  77. // ... ou le modifier !
  78. } else if (!empty($avatar)) {

  79. // On souhaite utiliser la librairie Image
  80. include_once CHEMIN_LIB.'image.php';

  81. // Redimensionnement et sauvegarde de l'avatar
  82. $avatar = new Image($avatar);
  83. $avatar->resize_to(100, 100); // Image->resize_to($largeur_maxi, $hauteur_maxi)
  84. $avatar_filename = DOSSIER_AVATAR.$id_utilisateur .'.'.strtlower(pathinfo($avatar->get_filename(), PATHINFO_EXTENSION));
  85. $avatar->save_as($avatar_filename);

  86. // On veut utiliser le modèle des membres (~/modules/membres.php)
  87. include_once CHEMIN_MODELE.'membres.php';

  88. // Mise à jour de l'avatar dans la table
  89. // maj_avatar_membre() est définit dans ~/modules/membres.php
  90. maj_avatar_membre($_SESSION['id'] , $avatar_filename);
  91. $_SESSION['avatar'] = $avatar_filename;

  92. $msg_confirm[] = "Avatar modifié avec succès !";
  93. }

  94. } else if ($form_modif_mdp->is_valid($_POST)) {

  95. // On vérifie si les 2 mots de passe correspondent
  96. if ($form_modif_mdp->get_cleaned_data('mdp') != $form_modif_mdp->get_cleaned_data('mdp_verif')) {

  97. $erreurs_form_modif_mdp[] = "Les deux mots de passes entrés sont différents !";

  98. // C'est bon, on peut modifier la valeur dans la BDD
  99. } else {


  100. // On veut utiliser le modèle de l'inscription (~/modules/membres.php)
  101. include_once CHEMIN_MODELE.'membres.php';
  102. maj_mot_de_passe_membre($_SESSION['id'], $mdp);

  103. $msg_confirm[] = "Votre mot de passe a été modifié avec succès !";
  104. }

  105. }
  106. }

  107. // Affichage des formulaires de modification du profil
  108. include_once CHEMIN_VUE.'formulaires_modifier_profil.php';
  109. ?>

Je lai tester avec var_dump mais il m'affiche de problème du genre
Warning: Invalid argument supplied for foreach() in C:\wamp\www\mvc\libs\form.php on line 258
Form étant le nom e la class que j'utilise.Merci à tous
guigui777

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours