Bonjour, je suis en train de faire un espace membre et j'en suis a la photo de profil mais j'ai un erreur de syntaxe énervante a cause d'une simple accolade mais la ligne de code n'est pas précise l'erreur me dit que c'est a la fin du code html du coup j'ai enlevé tout ce qui est a la fin du code html(donc le else qui te redirige vers la connexion)mais apres ça me met une page blanche
voici le code :
<?php
if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name']))
{
$tailleMax = 2097152;
$extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
if($_FILES['avatar']['size'] <= $tailleMax)
{
$extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionsValides))
{
$chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
$resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
if($resultat)
{
$updateavatar = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
$updateavatar->execute(array(
'avatar' => $_SESSION['id'].".".$extensionUpload,
'id' => $_SESSION['id']
));
header('Location: profil.php?id='.$_SESSION['id']);
}
else
{
$msg = "Erreur durant l'importation de votre photo de profil";
}
}
else
{
$msg = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
}
}
else
{
$msg = "Votre photo de profil ne doit pas dépasser 2Mo";
}
}
?>
<html>
<head>
<title>TUTO PHP</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Edition de mon profil</h2>
<form method="POST" action="" enctype="multipart/form-data">
<div align="left">
<label>Pseudo :</label>
<input type="text" name="newpseudo" placeholder="Pseudo" value="<?php echo $user['pseudo'];?>"> <br /><br />
<label>Mail :</label>
<input type="text" name="newmail" placeholder="Mail" value="<?php echo $user['mail'];?>"> <br /> <br />
<label>Mot de passe :</label>
<input type="password" name="newmdp1" placeholder="Mot de passe"> <br /> <br />
<label>Confirmer votre mot de passe :</label>
<input type="password" name="newmdp2" placeholder="Confirmation de passe"> <br /> <br />
<input type="submit" value="Mettre a jour mon profil !">
</form>
<?php if (isset($msg)) {echo $msg;} ?>
</div>
</div>
</body>
</html>
<?php
}
else
{
header("Location: connexion.php");
}
?>
je veut juste savoir que fait cette page dans ton application. et pourquoi le redirection vers connexion.php
Bonsoir, il y a une accolade fermante en trop.
Le 1er if se ferme à la fois avant le code html et après celui-ci
salut,
tu dois enlever cette accolade :
...
</body>
</html>
<?php
//cette accolade qui suit
}
else
{
header("Location: connexion.php");
}
?>
comme ça :
...
</body>
</html>
<?php
else
{
header("Location: connexion.php");
}
?>
mais la page va faire un redirect to coonexion.php toujours il faut faire ça a lla fin du traitement et le cas qui n'est pas d'erreur .
dans ce formulaire tu n'a pas un champ pour le avatar non.
mais j'ai pas compris cette page il fait quoi et pour quoi ce redirect a la page connexion.php
J'ai corrigé l'erreur pour le champ mais ça me met toujours un probleme de syntaxe mais pour else cette fois ci
salut,
oui car tu as mentenant trois condition qui vont executés la premiere c'est :
<?php
if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name']))
si elle est vrai il va executer le code interieure mais s'il n'est pas vrai il va passer au 2eme :
<?php if (isset($msg)) {echo $msg;} ?>
cette ligne qui a crée le probleme il tester s'il ya un message ila va afficher le message sinon il va executer la derniere possibilite qui est celle la :
<?php
else
{
header("Location: connexion.php");
}
?>
mais ce n'est pas ce que tu veut il faut comprendre le deroulement de ton code il analysé c'est le debuggage. il faut debugger sont code .
hope ça marche.
desole pour le français qui est un peut mal :)
Donc si j'ai bien compris si le message ne s'affiche pas il y a une redirection alors que normalement ce code:
n'a pas de else c'est bien ça ?
<?php if (isset($msg)) {echo $msg;} ?>
Tu peux me debugger j'ai tout essayé mais ca ne marche pas svp j'ai enlevé ce code et je l'ai mit apres le else a la fin du code :
<?php if (isset($msg)) {echo $msg;} ?>
voici le code (tu me dis juste les erreurs a remplacer) :
<?php
if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name']))
{
$tailleMax = 2097152;
$extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
if($_FILES['avatar']['size'] <= $tailleMax)
{
$extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionsValides))
{
$chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
$resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
if($resultat)
{
$updateavatar = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
$updateavatar->execute(array(
'avatar' => $_SESSION['id'].".".$extensionUpload,
'id' => $_SESSION['id']
));
header('Location: editionprofil.php?id=' . $_SESSION['id']);
}
else
{
$msg = "Erreur durant l'importation de votre photo de profil";
}
}
else
{
$msg = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
}
}
else
{
$msg = "Votre photo de profil ne doit pas dépasser 2Mo";
}
?>
<html>
<head>
<title>TUTO PHP</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Edition de mon profil</h2>
<form method="POST" action="" enctype="multipart/form-data">
<div align="left">
<label>Pseudo :</label>
<input type="text" name="newpseudo" placeholder="Pseudo" value="<?php echo $user['pseudo'];?>"> <br /><br />
<label>Mail :</label>
<input type="text" name="newmail" placeholder="Mail" value="<?php echo $user['mail'];?>"> <br /> <br />
<label>Mot de passe :</label>
<input type="password" name="newmdp1" placeholder="Mot de passe"> <br /> <br />
<label>Confirmer votre mot de passe :</label>
<input type="password" name="newmdp2" placeholder="Confirmation de passe"> <br /> <br />
<input type="file" name="avatar">
<br /> <br />
<input type="submit" value="Mettre a jour mon profil !">
</form>
<?php if (isset($msg)) {echo $msg;} ?>
</div>
</div>
</body>
</html>
<?php
else
{
header("Location: connexion.php");
}