Créer un compte
Connexion

PROBLEME AVEC AVATAR EN PASSANT DE "TEXT" A "FILE"

Pour créer et répondre aux sujets, vous devez être connecté.
Pages: 1
Auteur Message
MALINOIS77
12/08/2011 à 16:31:33
Patience - Perseverence MALINOIS77
Membre
Bonjour,

Après avoir effectué mes mises en pages en suivant le tutoriel "Espace membre en php mysql - utilisateurs espace membre inscription", j'ai désiré modifié la façon de rajouter les avatars dans les pages "sign_up.php" et "edit_infos.php" pour que les utilisateurs est un lien pour accéder à leur explorateur au lieu de taper le lien manuellement.

J'ai donc remplacé ceci:


<label for="avatar">Image perso<span class="small">(facultatif)</span></label>
<input type="text" name="avatar" value="<?php if(isset($_POST['avatar'])){echo htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
 

Par cela:


<label for="avatar">AVATAR<span class="indication">(Facultatif)</span></label>
<!-- LIMITATION DU FICHIER A 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input type="file" name="avatar" value="<?php if(isset($_POST['avatar'])){echo htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');} ?>" />
 

Après quelques essais, tout semblait bien fonctionné sauf lorsque j'ai voulu testé avec la page "edit_infos.php" un pseudo fictif qui a été créé sans insertion d'avatar.

J'ai à ce moment là le message d'erreur suivant qui apparait lorsque je sélectionne ensuite le bouton "Envoyer":


( ! ) Notice: Undefined index: avatar in Nom_du_répertoire\edit_infos.php on line 518
Call Stack
#       Time    Memory  Function        Location
1       -0.0000 423792  {main}( )       ..\edit_infos.php:0
 

La ligne "518" correspond dans ma page à:


$avatar = htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');
 

Quelqu'un pourrait-il m'aider s'il vous plait car j'ai cherché et cherché encore et je me retrouve bloqué par rapport à cela.

Merci d'avance...

Cordialement,

MALINOIS77
13/08/2011 à 22:54:01
Patience - Perseverence MALINOIS77
Membre
Bonjour,

Problème résolu en ce qui concerne ce que j'ai écrit ci-dessus.

J'ai bien laissé "file" au lieu de "text" et j'ai juste enlevé la partie suivante:


<!-- LIMITATION DU FICHIER A 100Ko -->
 <input type="hidden" name="MAX_FILE_SIZE" value="100000">
 

Par contre, maintenant, j'ai un souci avec le fait que mes images "avatar" ne sont pas présents dans ma page "profil.php" dès l'instant où celles-ci viennent d'un PC alors qu'elles apparaissent bien lorsque les images "avatar proviennent d'un autre site internet.

Je rencontre le même problème lorsque j'ai fait les essais avec le modèle de démonstration de "www.supportduweb.com" pour voir où j'aurais pu avoir fait une erreur.

Si quelqu'un ou le site a une idée, je voudrais bien comprendre et faire surtout en sorte que les utilisateurs puissent choisir une image "avatar provenant de leur PC et que cela s'enregistre dans un dossier prévu pour cela au cas où ils changeraient le fichiers d'endroit et qu'ils ne se retrouvent pas à devoir recommencer l'enregistrement de leurs images "avatar à nouveau.

Merci d'avance...

Cordialement,

ybouane
14/08/2011 à 04:42:38
ybouane
Admin
Bonjour,
ce que tu veux faire, c'est que les utilisateurs puissent envoyer des avatars à partir de leur ordianteur.

Pour cela il faut d'abord qu'ils hébergent leur avatar sur internet. Et ensuite grâce au lien que l'hébergeur d'images leur aura retourné, il pourront le copier dans le champs de l'avatar qu'il y a sur l'espace membre.

Un exemple d'hébergeur d'images:
http://www.auplod.com/

Cordialement  :)

Image
MALINOIS77
14/08/2011 à 11:39:25
Patience - Perseverence MALINOIS77
Membre
Bonjour,

En premier lieu, merci de votre réponse...

Oui c'est ce que je veux faire et j'avais bien compris cela en effectuant divers essais aussi bien avec mes pages de travail, le modèle du site et mon compte réelle sur le site.

Mais j'essaye de fare en sorte de mettre un dossier dédié aux images "avatar" des utilisateurs afin qu'il n' a pas besoin de passer par un tiers sites vu que, comme cela m'était arrivé une fois, il suffit que le site tiers ferme pour "x" raisons pour que tout soit à recommencer pour ceux utilisant ce site tiers.

C'est à dire que les utilisateurs concernés soient obligés de modifier leurs profils respectifs afin de remettre leurs comptes à jour.

Pour ma part, j'ai la même image "avatar" depuis des années pour chaque site où je suis inscrit et, c'est bête à dire, il m'est arrivé au tout début de mon entrée sur internet de me retrouver avec un disque dur hors service, malheureusement le seul qui avait mon image "avatar", et sans pouvoir récupérer mon image sur internet vu que le site où celui-ci se trouvait également avait fermé. Heureusement, j'ai un ami à cette lointaine époque là qui l'avait dans un email que je lui avais envoyé.

Bref, après cette petite histoire explicatif car aujourd'hui internet a bien évolué et nous n'en sommes plus là, je préférerais que ceci se fasse comme sur certains sites et forums très connus et comme certains tutoriels que j'ai trouvé, soit donc avec ma propre base de données et mon propre dossier interne.

J'ai essayé grâce à divers tutoriels qui propose de le faire ainsi, j'ai du coup résolu ma bêtise entre "text" et "file" vu que maintenant je n'ai plus les messages d'erreur, j'ai bien un bouton qui accède au PC pour récupérer un fichier et celui-ci est bien inscrit dans la base de données même si la page concernée ne l'affiche pas et indique seulement qu'il y a présence d'une image "avatar" mais je n'arrive pas à faire en sorte que cette solution s'inclue dans le tutoriel de ce site et que cette image "avatar" s'enregistre dans un dossier spécifique et s'affiche donc en prenant le lien de celle-ci dans ce dossier pour l'afficher...

Merci d'avance...

Cordialement,

MALINOIS77
19/08/2011 à 15:04:15
Patience - Perseverence MALINOIS77
Membre
Bonjour,

Après de multiples essais, toujours pas résolution à mon problème...

J'ai essayé d'appliquer pas à pas le tutoriel présent sur un site pour créer un forum, non pas pour la création d'un forum mais pour la partie concernant la possibilité d'enregistrer une image "avatar" via son PC ou autres, et apparemment je ne dois pas mettre les diverses informations de prise en compte et de messages d'erreur aux bons endroits.

J'espère avoir une aide, notamment de la personne qui a créé le tutoriel de création d'espace membres dans ce site, car pour l'instant il ne me reste plus que ce petit problème pour avancer.

Merci d'avance...

Cordialement,

MALINOIS77
19/08/2011 à 16:59:07
Patience - Perseverence MALINOIS77
Membre
Re-bonjour,

Afin de donner plus d'explication au sujet de mes essais et afin que vous puissiez peut-être m'indiquer où est mon erreur ou mes erreur, voici ce que j'ai incorporer.

Dans ma page "Inscription" (Page "sign_up" dans le tutoriel):

Après la partie liée à la vérification de la validité de l'email.


//VERIFICATION VALIDITE EMAIL
                        if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
                        {
                       
//CONFIGURATION POSSIBLE DES IMAGES AVATAR                     
                        if (!empty($_POST['avatar']['size']))
                    {
                     $maxsize = 10024; //TAILLE
                     $maxwidth = 100; //LARGEUR
                     $maxheight = 100; //HAUTEUR
                     $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //EXTENSIONS


                                //ECHAPPEMENT DES VARIABLES POUR INSERTION DANS REQUETTE SQL
                                $username = mysql_real_escape_string($_POST['username']);
                                $password = mysql_real_escape_string($_POST['password']);
                                $email = mysql_real_escape_string($_POST['email']);
                                $avatar = mysql_real_escape_string($_POST['avatar']);
 

Dans la partie affichant que l'utilisateur est bien inscrit.


?>
<div class="message">MERCI DE VOTRE INSCRIPTION<br />
<a href="connexion.php">SE CONNECTER</a></div>
$nomavatar=(!empty($_FILES['avatar']['size']))?move_avatar($_FILES['avatar']):'';
<?php
 

Dans la partie liée aux messages d'erreur.


//MESSAGE SI MOT DE PASSE ET CONFIRMATION DE MOT PASSE NON IDENTIQUES
                $form = true;
                $message = 'MOTS DE PASSE NON IDENTIQUES<br />MERCI DE RECOMMENCER';
        }
}
else
{

                                if ($_POST['avatar']['error'] > 0)
                        {
                                        $form = true;
                $message = "ERREUR LORS DU TRANSFERT DE L\'AVATAR<br />MERCI DE RECOMMENCER";
                        }
                               
                               
                                if ($_POST['avatar']['size'] > $maxsize)
                        {
                                        $form = true;
                $i++;
                $message = "FICHIER AVATAR TROP GROS : (<strong>".$_POST['avatar']['size']." OCTETS</strong>    CONTRE <strong>".$maxsize." OCTETS</strong>)";
                        }

                        {$image_sizes = getimagesize($_POST['avatar']['tmp_name']);
}

                        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
                        {
                                        $form = true;
                $i++;
                $message = "AVATAR TROP LARGE OU TROP HAUT :
                (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> CONTRE <strong>".$maxwidth."x".$maxheight."</strong>)";
                        }
       
                        {$extension_upload = strtolower(substr(  strrchr($_POST['avatar']['name'], '.')  ,1));
}

                        if (!in_array($extension_upload,$extensions_valides) )
                        {
                                        $form = true;
                $i++;
                $message = "AVATAR AVEC MAUVAISE EXTENSION";
                                }
}

else
{
        $form = true;
}
if($form)
{
        //AFFICHAGE MESSAGE SI BESOIN EST
        if(isset($message))
        {
                echo '<div class="index-inscription-erreur">'.$message.'</div>';
        }
 

Juste après le <body>, est également inséré un "include" nommé "fonction_avatar".


<?php
function move_avatar($avatar)
{
    $extension_upload = strtolower(substr(  strrchr($avatar['name'], '.')  ,1));
    $name = time();
    $nomavatar = str_replace(' ','',$name).".".$extension_upload;
    $name = "./Site-Avatar/".str_replace(' ','',$name).".".$extension_upload;
    move_uploaded_file($avatar['tmp_name'],$name);
    return $nomavatar;
}
?>
 

A peu près la même chose est également sur ma page "modification_profil" (Page "edit_infos.php" dans le tutoriel)

Merci d'avance pour votre aide...

Cordialement,

Pages: 1