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 derniers sujets sur les forums

guiguiz
le 30/01/2011 à 21:00
problème d'arrays
<?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
LoadingChargement en cours