Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Salut tout le monde
J'ai pris le cours sur le developpement du site de a a z et j'ai des erreurs au niveau de la modification de l'avatar par defaut et on m'indique des erreurs a la ligne 70, 99, 101 et 106 sauf que je n'en ai pas trouvé,
Merci d'avance pour votre aide.
<?php
session_start () ;
include('bd/connexionDB.php') ;
if(!empty($_POST)){
extract($_POST);
$valid = true;
if(isset($_POST['avatar'])){
if(isset($_FILES['file']) and !empty($_FILES['file']['name'])){
$filename = $_FILES ['file'] ['tmp_name'];
list($width_orig, $height_orig) = getimagesize($filename) ;
if ($width_orig >= 500 && $height_orig >= 500 && $width_orig <= 6000 && $height_orig <= 6000){
$ListeExtension = array('jpg' => 'image/jpg', 'jpeg' =>'image/jpeg', 'png' => 'image/png', 'gif' => 'image/gif');
$ListeExtensionIE = array('jpg' => 'image/pjpg', 'jpeg '=>'image/pjpeg');
$tailleMax = 5242880; // Taille maximum 5 Mo
//2mo 2097152
// 3mo = 3145728
// 4mo 4194304
//5mo 5242880
//7mo 7340032
//10mo= 10485760
//11 12mo = 12582912
$extensionsValides = array('jpg', 'jpeg'); // Format accepté
if ($_FILES['file']['size'] <= $tailleMax){ // Si le fichier et bien de taille inférieur ou égal à 5 Mo
$extensionUpload = strtolower(substr(strrchr($_FILES ['file']['name'], '.'), 1)); // Prend 1'extension après le point, soit "jpg, jpeg ou
if (in_array( $extensionUpload, $extensionsValides) ){ // vérifie que 1'extension est correct
$dossier = "public/avatars/".$_SESSION['id']."/"; // On se place dans le dossier de la personne
if (!is_dir($dossier)){ // Si le nom de dossier n'exis te pas alors on le crée
mkdir($dossier) ;
}else{
if(file_exists ("public/avatars/".$_SESSION ['id']."/". $_SESSION['avatar']) && isset($_SESSION['avatar'])){
unlink("public/avatars/".$_SESSION['id']."/". $_SESSION['avatar']);
}
}
$nom = md5(uniqid(rand(), true)) ; // Permet de générer un nom_unique à la photo
$chemin= "public/avatars/".$_SESSION['id']."/".$nom.".".$extensionUpload; // Chemin pour placer_ la photo
$resultat = move_uploaded_file($_FILES['file']['tmp_name'], $chemin) ; // 0On fini par mettre la photo dans le dossier
if ($resultat) { // Si on a le résultat alors on va comprésser 1'image
if (is_readable("public/avatars/".$_SESSION['id']."/".$nom.".".$extensionUpload)){
$verif_ext = getimagesize("public/avatars/".$_SESSION['id']."/".$nom.".".$extensionUpload);
// Vérification des extensions avec la liste des exten si ons autorisés
if($verif_ext['mime'] = $ListeExtension[$extensionUpload] || $verif_ext ['mime'] == $ListeExtensionIE [$extensionUpload] ){
// J'enregistre le chemin de 1'image dans fi lename
$filename ="public/avatars/".$_SESSION['id']."/".$nom.".". $extensionUpload ;
//Vérifica tion _des extensions queyje souhaite prendre
if ($extensionUpload == 'jpg' || $extensionUpload == 'jpeg' || $extensionUpload == "pjpg" || $extensionUpload == 'pjpeg'){
$image2 = imagecreatefromjpeg($filename);
// Définition de la largeur et de la hauteur maximale
$width2 = 500;
$height2 = 500;
List ($width_orig, $height_orig) = getimagesize ($filename) ;
//Redimensionnement
$image_p2 = imagecreatetruecolor ($width2, $height2) ;
imagealphablending ($image_p2, false) ;
imagesavealpha ($image_p2, true) ;
// Cacul des nouvelles dimensions
$point2 = 0;
$ratio = null;
if ($width_orig = $height_orig) {
$ratio = $width2 / $width_orig;
}else if ($width_orig > $height_orig){
$ratio = $height2 / $height_orig;
}
$width2 = ($width_orig * $ratio) + 1;
$height2 = ($height_orig * $ratio) + 1;
imagecopyresampled($image_p2, $image2, 0, 0, $point2, 0, $width2, $height2, $width_orig, $height_orig);
imagedestroy($image2);
if ($extensionUpload == 'jpg' || $extensionUpload == 'jpeg' || $extensionupload == "pjpg" || $extensionUpload == 'pjpeg'){
// Content type
header('Content-Type: image/jpeg');
$exif = exif_read_data ($filename) ;
if(!empty ($exif['Orientation'] )){
switch ($exif['Orientation']) {
case 8:
$image_p2 = imagerotate($image_p2,90,0);
// code...
break;
case 3:
$image_p2 = imagerotate($image_p2,100,0);
// code...
break;
case 6:
$image_p2 = imagerotate($image_p2,-90,0);
// code...
break;
}
}
//Affichage
imagejpeg($image_p2,"public/avatars/".$_SESSION['id']."/".$nom.".".$extensionUpload, 75);
imagedestroy($image_p2);
}
$DB->insert("UPDATE utilisateur SET avatar = ? WHERE id = ?", array(($nom.".".$extensionUpload), $_SESSION['id']));
$_SESSION['avatar'] = ($nom.".".$extensionUpload); //on met a jour l'avatars
//$_SESSION['flash']['success'] = "Nouvel avatar enregistré"
// header('Location: profil.php');
// exit;
////////////////Fin de compression de l'images
}else {
$_SESSION['flash']['warning'] = "Le type de MIME de l'image n'est pas bon.";
// code...
}
}
}else {
$_SESSION['flash']['error'] = "Erreur lors de l'importation de votre photo.";
}
}else {
$_SESSION['flash']['warning'] = "Votre photo doit etre au format jpg.";
}
}else {
$_SESSION['flash']['warning'] = "Votre photo de profil ne doit pas depasser 5 Mo !";
}
}else {
$_SESSION['flash']['warning'] = "Dimensions de l'image minimum 400 x 400 et maximum 6000 x 6000 !";
}
}else {
$_SESSION['flash']['warning'] = "Veuillez mettre une image !";
} }else if(isset($_POST['dltav'])) {
// Permet de supprimer une image dans un $dossier
if (file_exists("public/avatars".$_SESSION['id']."/".$_SESSION['avatar']) && isset($_SESSION['avatar'])) {
unlink("public/avatars". $_SESSION['id']."/".$_SESSION['avatar']);
rmdir("public/avatars". $_SESSION['id']."/");
$DB->insert("UPDATE utilisateur SET avatar = ? WHERE id = ?", array(NULL, $_SESSION['id']));
$_SESSION['avatar'] = NULL; //On met a jour l'avatar
// code...
}
$_SESSION['flash']['success'] = "Votre avatar à été supprimé !";
header('Location: profil');
exit;
}
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- <base href="/"/> -->
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
<title>Topic</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<?php
if (isset($_SESSION['id']) && $_SESSION['theme'] == 1) {
echo '<link rel="stylesheet" href="style-sombre1.css">';
// code...
} else {
echo '<link rel="stylesheet" href="style.css">';
// code...
}
?>
</head>
<body>
<?php include('nav.php') ?> <br>
<!-- Ici on peut afficher toutes les informations que vous souhaitez :
- �ge,
- sexe,
- date d'anniversaire,
- mail,
- etc.
-->
<?php $afficher_profil = $DB->query("SELECT * FROM utilisateur WHERE id = ?",
array($_SESSION['id']));
$afficher_profil = $afficher_profil->fetch(); ?>
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="alert alert-secondary cdr-ins">
<h4 style="color:#fff;">Voici le profil de <?= $afficher_profil['prenom'] . " " . $afficher_profil['nom']; ?></h4>
<div style="margin:20px 0;">
<?php
if (file_exists("public/avatars/".$_SESSION['id']. "/" .$_SESSION['avatar']) && isset($_SESSION['avatar'])) {
?>
<img src="<?= "public/avatars/".$_SESSION['id']. "/" .$_SESSION['avatar']; ?>" width="120" class="rounded-circle">
<?php
} else{
?>
<img src="public/avatars/defaults/images.png" width="120" class="rounded-circle">
<?php
}
?>
</div>
<span class="image-upload">
<form enctype="multipart/form-data" method="post">
<label for="file" style="margin-bottom:0; margin-top:5px; display:inline-flex;">
<input type="file" class="form-control hide-upload" id="file" name="file" required/>
 
<input class="btn btn-info" type="submit" name="avatar" value="Envoyer">
</label>
</form>
</span>
<div style="border-top: 2px solid #eee; margin-top:20px; padding-top:20px;">
<form method="post">
<label> <b>Supprimer l'avatar</b> </label>
<input type="submit" class="fa trash-avatar" name="dltav" value="Supprimer">
</form>
</div>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<body>
</html>
Re:
On a plus reçu de nouvelles concernant ton problème... L'as-tu résolu ? 🤔
Si c'est le cas, il faut cliquer sur le bouton vert "Résolu" 😉
Il faut que tu fasses la même chose pour le reste de ton code .. car pour le moment les espaces peuvent te poser des problèmes.
Donc d'abord revérifie bien tout ton code. Ensuite utilise un echo 1;exit;
pour déboguer et savoir ou ça bloque
Ma session est bien annoncé
<?php
session_start() ;
include('bd/connexionDB.php') ; ...
Et j'ai aussi supprimé les espaces
$filename = $_FILES['file']['tmp_name'];
On ne m'indique aucune erreur comme tel mais cependant comme je l'ai precedemment dit, apres validation on me redirige vers une page toute noir et l'image n'est pas enregistré comme avatar et il est quand meme stocké dans la base de donnée
Dans ton code session_start
n'est pas écrit comme ça j'espère :
session_start () ;
Il n'y à pas d'espace non plus entre le $_FILES
et [
et entre ['file'] ['tmp_name']
?
$filename = $_FILES ['file'] ['tmp_name'];
Je l'ai fait et cette fois on me sort l'erreur
( ! ) Parse error: syntax error, unexpected 'header' (T_STRING) in C:\wamp\www\congo_net\avatar.php on line 144
J'ai commenté les lignes de redirection et après validation de modification je suis redirigé vers une page toute noir, et quand je rentre en arrière la photo de profil est bien mise a jour juste dans la case de modification et lorsque je retourne au profil il n'ya rien et meme en retournant dans la section de modification, elle a disparu 😑
Merci d'avance
Tu peux ajouter ça dans ton code PHP :
ini_set ('gd.jpeg_ignore_warning', 1);
Il faut que tu l'ajoutes juste avant une fonction GD (imagecreatefromjpeg())
Hey @Clouder, ca ce sont les erreurs que je recois lors du chargement de l'avatar et c'est uniquement sur la page de l'avatar que je constate le changement de l'avatar sauf qu'on y met pas l'image selectionné mais va devient tout noir, Merci d'avance
( ! ) Warning: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Invalid SOS parameters for sequential JPEG in C:\wamp\www\congo_net\avatar.php on line 70Call Stack#TimeMemoryFunctionLocation10.0014170560{main}( )..\avatar.php:020.0182190640imagecreatefromjpeg ( )..\avatar.php:70
( ! ) Warning: imagecreatefromjpeg(): 'public/avatars/11/ae867acbc5496f768fb49fb5b6615d87.jpg' is not a valid JPEG file in C:\wamp\www\congo_net\avatar.php on line 70Call Stack#TimeMemoryFunctionLocation10.0014170560{main}( )..\avatar.php:020.0182190640imagecreatefromjpeg ( )..\avatar.php:70
( ! ) Warning: imagecopyresampled() expects parameter 2 to be resource, boolean given in C:\wamp\www\congo_net\avatar.php on line 99Call Stack#TimeMemoryFunctionLocation10.0014170560{main}( )..\avatar.php:020.13791463016imagecopyresampled ( )..\avatar.php:99
( ! ) Warning: imagedestroy() expects parameter 1 to be resource, boolean given in C:\wamp\www\congo_net\avatar.php on line 101Call Stack#TimeMemoryFunctionLocation10.0014170560{main}( )..\avatar.php:020.13921462968imagedestroy ( )..\avatar.php:101
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\congo_net\avatar.php:99) in C:\wamp\www\congo_net\avatar.php on line 106Call Stack#TimeMemoryFunctionLocation10.0014170560{main}( )..\avatar.php:020.14081463040header ( )..\avatar.php:106
@Gael-Mk, Tu pourrais nous afficher les messages d'erreurs que tu obtiens ?
Oui oui je l'ai regardé, et c'est pourquoi je pose le problème, parceque le code est pareil mais y'a erreur aux lignes que j'ai pris le soin d'indiquer dans mon topic😑