Bonjour,
Voila je rencontre un petit problème avec mon code.
J'essaye de faire fonctionner mon inscription sur mon site mais celle-ci ne fonctionne pas.
J'ai fais 3 pages pour le moment : inscription.php, inscription_traitement.php, Utilisateur.php
Dans la page inscription_traitement il faudrait que j'arrive à dire que si les champs ne sont pas remplis et que l'on appuie sur envoyer ça ne fonctionne pas et que sinon a nous envoie à la page d'accueil. Le problème c'est que j'ai créé un verifier() mais je ne sais pas quand annoncer cette variable.
Pour la page d'inscription:
<!DOCTYPE html>
<!--php include'inscription_traitement.php';?>-->
<html>
<head>
<title>Mastermind</title> <!--titre de l’onglet-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!--pour reconnaitre les accents, les caractères spéciaux-->
<link href="style4.css" rel="stylesheet" type="text/css"/><!--permet de créer le style de la page -->
<link href='https://fonts.googleapis.com/css?family=Indie+Flower' rel='stylesheet' type='text/css'>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<?php
session_start();
?> <!--commencer nouvelle session ou reprendre la session-->
<body>
<?phpinclude("inscription_traitement.php");?>
<div id="global"><!--bloc qui contient l'ensemble de la page-->
<?phpinclude("header.php");?>
<?phpinclude("footer.php");?>
<div id="article3">
<h3>Inscrition</h3><!--titre-->
<div id="logo2">
<img src="Img/stats.png" id="logo2">
</div>
<form method="post" action="inscription_traitement.php">
<p><!--Retour à la ligne-->
<label for="prenom">Prénom :</label>
<input type="text" name="prenom" id="prenom" placeholder="Ex : Jeanne" size="28" />
</p>
<p>
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom" placeholder="Ex : Martin" size="30" />
</p>
<p>
<label for="mail"> Mail :</label>
<input type="text" name="mail" id="mail" placeholder="Ex :jeanne.martin@wanadoo.net " size="30" />
</p>
<p>
<label for="pass">Mot de passe :</label>
<input type="password" name="pass" id="pass" size="22" />
</p>
<p>
<input type="submit" name="valider" value="Valider" />
</p>
</form>
</div>
</div>
</div>
</body>
Pour la page de traitement :
<?php
require 'Utilisateur.php';
$utilisateur=new utilisateur();
if($_POST['prenom']!=false&&$_POST['nom']!=false&&$_POST['mail']!=false&&$_POST['pass']!=false)
{
$utilisateur->utilisateur_prenom=$_POST['prenom'];
$utilisateur->utilisateur_nom=$_POST['nom'];
$utilisateur->utilisateur_mail=$_POST['mail'];
$utilisateur->utilisateur_pass=$_POST['pass'];
if($utilisateur->verifier()) {
$_SESSION['prenom'] = $utilisateur->utilisateur_prenom;
echo "Merci de vous être inscrit !";
exit;
}
else{
echo'<body onLoad="alert(\'Identifiant ou mot de passe incorrect\')">';
include("connexion.php");
}
else{
echo'<body onLoad="alert(\'Veuillez rentrer un pseudo et un mot de passe\')">';
include("connexion.php");
}
$utilisateur->inserer();
header("accueil.php");
}
Pour la page d'utilisateur :
<?php
class Utilisateur {
public $utilisateur_prenom;
public $utilisateur_nom;
public $utilisateur_mail;
public $utilisateur_pass;
public function inserer() {
$connection= new PDO('mysql:dbname=Mastermind ;host=127.0.0.1', 'root', 'azerty');
$connection->exec("INSERT INTO utilisateur ('utilisateur_prenom',utilisateur_nom,utilisateur_mail,utilisateur_pass) VALUES ('" . $this->utilisateur_prenom. "','" . $this->utilisateur_nom. "','" . $this->utilisateur_mail. "','" . $this->utilisateur_pass. "')");
}
}
Je voudrais que les champs soient reconnue comme non remplis quand ils ne le sont pas et que l'utilisateur reçoive un message d'avertissement.
Pour le moment j'obtiens La page umkk95118937.maud.koding.io ne fonctionne pas
Impossible de traiter cette demande via umkk95118937.maud.koding.io à l'heure actuelle.
500
Bonjour.
Avant toute chose, peux-tu nous expliquer pourquoi tu fais un include
de ton fichier inscription_traitement.php
(ligne 16) alors que ton formulaire fait lui même appel (ligne 26) à ce fichier pour le traitement de ses données ?
Sinon, tu pourrais par exemple t'inspirer de : Tutoriel PHP » Gestion d'un espace membre (refactorisation).
Bonsoir,
Premièrement, il est extrèmement dangereux et déconseillé de faire ceci :
$utilisateur->utilisateur_prenom=$_POST['prenom'];
$utilisateur->utilisateur_nom=$_POST['nom'];
$utilisateur->utilisateur_mail=$_POST['mail'];
$utilisateur->utilisateur_pass=$_POST['pass'];
(voir encapsulation & getters & setters)
Ensuite, pour savoir si votre utilisateur à bien tout, je vous invite à voir la fonction isset ainsi que la fonction empty
Salut, je suis tout à fait d'accord avec Lartak et AlexJM.
Mise à part tes premiers codes sources, J'avais bien aimé l'idée de la création de class, mais jusqu'à mettre la connexion à la base de donnée pour un objet Utilisateur.... :/ Là j'avoue que cela m'a beaucoup intrigué.
Enfin...
Sinon pour répondre à une de tes questions :
"...il faudrait que j'arrive à dire que si les champs ne sont pas remplis et que l'on appuie sur envoyer ça ne fonctionne pas..."
Connaîs-tu l'attribut "required" ?
Ajoute-le dans tes balises inputs puis enfin essai à nouveau ton formulaire.
Pour terminier n'oublie pas de sécurisé ton traitement côté serveur.