problème d'arrays

Répondre
guiguiz
le 30/01/2011 à 21:00
guiguiz
<?php

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

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

} else {

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

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

$form_modif_infos->method('POST');

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

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

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

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

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

$form_modif_mdp->method('POST');

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

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

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

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

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

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

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

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

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

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

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

if (true === $test) {

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

// Gestion des doublons
} else {

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

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

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

if ($adresse_email == $valeur_probleme) {

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

} else {

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

} else {

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

}
}

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

}
}

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

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
moogli
le 31/01/2011 à 01:52
moogli
comme je suis un gros feignant je te colle le lien de ma réponse sur phpfrance (qui est la même)
http://forum.phpfrance.com/php-debutant/problele-arrays-t257132.html

tu n'a d'ailleur pas répondu à ma question.

je pense (et maintenant je te l'indique) que tu n'est pas l'auteur de la classe form et que tu ne vois pas comment l'utiliser.

Pour info le bonjours n'est pas une option ni utiliser les balises bbcode et même mieux utiliser le wall pour poser un tel pâté de code ;)


@+
Il en faut peu pour être heureux !!!!!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours