Plusieurs erreur que je ne vois pas

Résolu
MrAkiroKun Messages postés 35 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

il y a dans mon script surement quelques erreurs, et je voudrais que vous m'aidiez à les trouver, le voici :


<?php
include('../includes/config.php');
if(isset($_SESSION['pseudo'])){
header('Location:../Projet_Octopus/index.php');
}
if(isset($_POST['envoyer'])){
if(isset($_POST['pseudo']) AND !empty($_POST['pseudo']) AND isset($_POST['email']) AND !empty($_POST['email']) AND isset($_POST['password']) AND !empty($_POST['password']) AND isset($_POST['password2']) AND !empty($_POST['password2']))
{
//Tous les champs ont été remplis
$pseudo = $_POST['pseudo'];
$email = strtolower($_POST['email']);
$link_img = "http://www.gravatar.com/avatar/" . md5($email);
$password = md5($_POST['password']);
$password2 = md5($_POST['password2']);
$longueur_pseudo = strlen($pseudo);

if($longueur_pseudo<=30)
{
//Le pseudo respecte le format
if($password == $password2)
{
//Les mots de passe sont identique
$query = $DB->prepare('INSERT INTO membres(pseudo, email, password, link_img) VALUES (:pseudo, :email, :password, :link_img)');
$query->execute(array(
'pseudo' => $pseudo,
'email' => $email,
'password' => $password,
'link_img' => $link_img
));
$sucess = "Vous êtes désormais inscrit ! Vous pouvez vous connecter <a href='/'>ici</a> !";
$dir = strtolower("../users/".$pseudo);
$content = "<p>Page personnel</p>";
if($pseudo)
{
mkdir($dir);
$open = fopen($dir."/index.php", "w"); // tu as plusieurs mode d'ouverture regarde sur internet (W write, R read)

fwrite($open, $content);
fclose($open);
}
else
{
header('location:index.php');
}
header('location:index.php');
}
else
{
$erreur = "Les mots de passe ne correspondent pas !";
}
}
else
{
$erreur = "Le pseudo ne doit contenir que 30 caractère maximum !";
}
}
}
else
{
$erreur = "Tous les champs sont obligatoire !";
}
?>
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="../ico/favicon.ico">
<title>Projet Octopus | HOME</title>
<!-- Bootstrap core CSS -->
<link href="../css/carousel.css" rel="stylesheet">
<link href="../css/bootstrap.min.css" rel="stylesheet">
<!-- JS Scripts -->
<script src="../js/ie-emulation-modes-warning.js"></script>
<script src="../js/ie10-viewport-bug-workaround.js"></script>
<link href="../css/carousel.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href=""><i class="glyphicon glyphicon-tower"></i> Projet Octopus</a>
</div>
</div>
</nav>
<div class="container">
<br />
<br />
<br />
<br />
<div class="col-md-6"><img src="../img/screen_index.jpg" alt="Octopus Social Network" /></div>
<div class="col-md-6">
<h1>Inscription</h1>
<form action="index.php" method="post">
<div class="form-group">
<input type="text" name="pseudo" class="form-control" placeholder="pseudo" value="<?php if(isset($_POST['pseudo'])){ echo $_POST['pseudo'];} ?>"><br/>
<input type="email" name="email" class="form-control" placeholder="Email (Exemple: xyz@exemple.com)"><br/>
<input type="password" name="password" class="form-control" placeholder="Mot de passe"><br/>
<input type="password" name="password2" class="form-control" placeholder="Mot de passe (Confirmation)">
</div>
<button type="submit" name="envoyer" class="btn btn-success">S'inscrire</button><br/>
<a href="../">Vous avez déja un compte ?</a>
</form>
</div>
<?php if(isset($sucess)){ echo "<div class='alert alert-success alert-dismissible' role='alert'>
<button type='button' class='close' data-dismiss='alert'><span aria-hidden='true'>×</span><span class='sr-only'>Close</span></button>".$sucess."</div>";} ?>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/docs.min.js"></script>
</body>
</html>

Merci à toutes à tous !

5 réponses

  1. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    Pas d'erreur de syntaxe dans ton code, quelques petites remarques en vrac :

    - ajoute l'instruction exit(); après chaque redirection php (header('location...) : puisqu'on change de page, pas besoin d'exécuter le reste du code

    - la fonction empty, qui permet de savoir si une variable est vide, vérifie aussi l'existence d'une variable. Il est donc inutile d'utiliser isset avant empty.

    - préfère l'utilisation des opérateurs logique && et || à la place de AND et OR en php (cf. https://www.php.net/manual/fr/language.operators.logical.php :
    if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password2'])) {


    - le md5 pour crypter les mots de passe n'est pas recommandé. Se tourner vers la nouvelle API de hashage de php (password_hash, password_verify...) ou vers la fonction crypt().

    - pour gérer les pages perso de tes membres, tu crées un dossier pour chacun. Si tu veux utiliser le coté dynamique de php, tu pourrais créer une seule page user.php qui afficherais la page perso de l'utilisateur connecté (en fonction des variables de session par exemple).

    Bonne journée
    1
  2. MrAkiroKun Messages postés 35 Statut Membre
     
    Merci pour toutes ces remarques, je vais modifier mon script grace à ton aide, mais la question initial était "Pourquoi ma requète SQL ne fonctionne pas ? :/"
    0
  3. faboons Messages postés 291 Date d'inscription   Statut Membre Dernière intervention   50
     
    Salut,

    De mémoire la syntaxe ne serait pas :

    INSERT INTO ta-table (champ1, champ2) VALUES ('valeur1', 'valeur2')

    ????

    Fab.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. MrAkiroKun Messages postés 35 Statut Membre
     
    Finalement c'est bon j'ai réussit à corriger l'erreur tout seul, merci quand même pour tout, je met en résolu ^^
    0
    1. Utilisateur anonyme
       
      tu pourrais faire profiter l'ensemble de la communauté en nous expliquant la solution que tu as trouvé ^^
      0