Pour les cours de mateo, j'essaie de faire un blog.
J'en suis a la page d'inscription et mon code s'affiche sur ma page....help please !
<?
include '/configuration/configurationPDO.php';
?>
<? $pseudo = $_POST['pseudo'];
function existePseudo($pseudo)
global $bdd;
?>
<?
$sql = "SELECT pseudo FROM inscription WHERE pseudo = '$pseudo'";
?>
<?
{
$res= $bdd->query($sql);
$row= $res->fetch();
}
?>
<?
return !empty($row);
?>
if(existePseudo($pseudo) )
{
<p>Pseudo déjà utilisé !</p>
}
<?
elseif(!empty($_POST['pseudo']) AND !empty($_POST['mdp']) AND !empty($_POST['confirmation']) AND !empty($_POST['mail']) AND $_POST['mdp'] == $_POST['confirmation'])
{
$req = $bdd->prepare('INSERT INTO inscription(pseudo, mdp, mail, date_creation) VALUES (?, ?, ?, NOW())');
$req->execute(array($_POST['pseudo'], $_POST['mdp'], $_POST['mail']));
<p>Bienvenue <?php echo htmlspecialchars($_POST['pseudo']); ?> ! </p>
}
else
{
?>
<p> Merci de bien remplir tous les champs ou d'avoir un mot de passe correspondant dans les deux champs </p>
<?php
if (isset($_POST['email']))
{
$_POST['email'] = htmlspecialchars($_POST['email']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
{
echo 'L\'adresse ' . $_POST['email'] . ' est <strong>valide</strong> !';
}
else
{
echo 'L\'adresse ' . $_POST['email'] . ' n\'est pas valide, recommencez !';
}
}
?>
mon code m'affichait des erreurs sur le include et je comprenais ass dcp je me suis mis a mettre des balise de partout pour voir si cela changeait qqchose et je suis arriver aa enfinobtenir mon site tel que l'image le montre....
mon code était celui ci avant.
<?php
include '/configuration/configurationPDO.php';
{
$pseudo = $_POST['pseudo'];
function existePseudo($pseudo)
global $bdd;
$sql = "SELECT 1 FROM membres WHERE pseudo = '$pseudo'";
$res = $bdd->query($sql);
$row = $res->fetch();
return !empty($row);
}
if(existePseudo($pseudo) )
{
?>
<p>Pseudo déjà utilisé !</p>
<?php
}
elseif(!empty($_POST['pseudo']) AND !empty($_POST['pass']) AND !empty($_POST['confirmation']) AND !empty($_POST['email']) AND $_POST['pass'] == $_POST['confirmation'])
{
$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, email, date_inscription) VALUES (?, ?, ?, NOW())');
$req->execute(array($_POST['pseudo'], $_POST['pass'], $_POST['email']));
?>
<p>Bienvenue <?php echo htmlspecialchars($_POST['pseudo']); ?> ! </p>
<?php
}
else
{
?>
<p> Merci de bien remplir tous les champs ou d'avoir un mot de passe correspondant dans les deux champs </p>
<?php
}
}
?>
<?php
if (isset($_POST['email']))
{
$_POST['email'] = htmlspecialchars($_POST['email']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
{
echo 'L\'adresse ' . $_POST['email'] . ' est <strong>valide</strong> !';
}
else
{
echo 'L\'adresse ' . $_POST['email'] . ' n\'est pas valide, recommencez !';
}
}
?>
<?php
include '/configuration/configurationPDO.php';
{
$pseudo = $_POST['pseudo'];
function existePseudo($pseudo)
global $bdd;
$sql = "SELECT 1 FROM membres WHERE pseudo = '$pseudo'";
$res = $bdd->query($sql);
$row = $res->fetch();
return !empty($row);
}
Non, mais c'est pas vraiment ça que je ne comprends pas... Que font ces accolades toutes seules ? Et pourquoi n'y en a-t-il pas autour de la fonction ?
<?php
include '/configuration/configurationPDO.php';
$pseudo = $_POST['pseudo'];
function existePseudo($pseudo)
{ global $bdd;
$sql = "SELECT 1 FROM membres WHERE pseudo = '$pseudo'";
$res = $bdd->query($sql);
$row = $res->fetch();
return !empty($row); }
Si je l’écrit comme ca j ai une erreur sur $pseudo = $_POST['pseudo'];
- Edité par GregoireRabiller 16 novembre 2017 à 21:53:25
C'est un formulaire d'inscription donc il doit bien voir la page pour s'inscrire non ? la seul verif que je veux faire c'est si son pseudo qu'il a choisis n'est pas deja dans ma base SQL, et si tous les champs d'inscription sont bien remplis.
ducoup j'ai modifié mon code mais il me manque une partie ou je me melange, je bug, la totale.... en gros c'est si mon nouveau user valide son inscription alors verifiez qu'il n'y ai pas de doublon de pseudo, qu'il ai bien rempli tous les champs, que son mot de passe et ca confirmation son identique et que son adresse mail respecte bien les criteres.
si oui validez et inscrire dans SQL sinon affichez les messages d'erreur.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Forum de greg/ Accueil</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
<link href="css/style_01.css" rel="stylesheet" type="text/css" media="all">
</head>
<body>
<div class="container">
<h1 class="row">forum de greg</h1>
<h3 class="row">Inscription :</h3>
<!-- Formulaire de saisie -->
<div class="row">
<form class="form-horizontal col-md-12" method="post" action="pages/forum_post.php">
<!-- Champ de saisie texte une ligne -->
<div class="form-group form-group-lg">
<label for="pseudo" class="col-sm-2 control-label">Pseudo : </label>
<div class="col-sm-10 focus">
<input class="form-control" <?php
/*
* si un pseudo existe dans le cookie,
* alors renseigne automatiquement la valeur du champ pseudo
* implicitement, si le cookie n'est pas détecté,
* la valeur du champ n'est pas renseignée
*/
if (isset($_COOKIE['pseudo'])) {
$cookie_pseudo = htmlspecialchars(strip_tags($_COOKIE['pseudo']));
echo 'value="' . $cookie_pseudo . '"';
}
?> type="text" name="pseudo" id="pseudo" placeholder="Ton pseudo" autofocus required />
</div>
</div>
<div class="form-group form-group-lg">
<label for="pass" class="col-sm-2 control-label">Mot de passe : </label>
<div class="col-sm-10 focus">
<input class="form-control" type="password" name="pass" id="pass" placeholder="Ton mot de passe" autofocus required />
</div>
</div>
</div>
<div class="form-group form-group-lg">
<label for="confirmation" class="col-sm-2 control-label">retapez votre mot de passe : </label>
<div class="col-sm-10 focus">
<input class="form-control" type="password" name="confirmation" id="confirmation" placeholder="Confirmation de ton mot de passe" autofocus required />
</div>
</div>
<div class="form-group form-group-lg">
<label for="email" class="col-sm-2 control-label">adresse email : </label>
<div class="col-sm-10 focus">
<input class="form-control" type="text" name="email" id="pass1" placeholder="Ton adesse mail" autofocus required />
</div>
</div>
<button type="submit" class="btn btn-default btn-lg pull-right clearfix">s'inscrire</button>
<div class="clearfix"></div>
</form>
</div>
<?php
include '/configuration/configurationPDO.php';
if(ISSET($_POST['submit']))
{
//On créer les variables
$pseudo = $_POST['pseudo'];
$pass = $_POST['pass'];
$confirmation = $_POST['confirmation'];
$pass_hache = password_hash($_POST['pass'], PASSWORD_DEFAULT);
$email = $_POST['email'];
}
// Insertion
$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, email, date_inscription) VALUES(:pseudo, :pass, :email, CURDATE())');
$req->execute(array(
'pseudo' => $pseudo,
'pass' => $pass_hache,
'email' => $email));
elseif(!empty($_POST['pseudo']) AND !empty($_POST['pass']) AND !empty($_POST['confirmation']) AND !empty($_POST['email']) AND $_POST['pass'] == $_POST['confirmation']);
$_POST['pseudo'] = htmlspecialchars($_POST['pseudo']);
$_POST['email'] = htmlspecialchars($_POST['email']);
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
{
echo 'L\'adresse ' . $_POST['email'] . 'est <strong>valide</strong> !';
}
else
{
echo 'L\'adresse ' . $_POST['email'] . 'n\'est pas valide, recommencez !';
}
?>
</body>
</html>
- Edité par GregoireRabiller 17 novembre 2017 à 14:22:02
oui j ai cru comprendre mais il y a une semaine de ca je savait meme pas ce que voulais dire PHP....
du coup je viens de mettre mon formulaire sur un fichier formulaire.php et un fichier inscription.php maintenant je dois apprendre a faire communiquer les 2....
- Edité par GregoireRabiller 17 novembre 2017 à 18:12:51
oui j ai cru comprendre mais il y a une semaine de ca je savait meme pas ce que voulais dire PHP....
du coup je viens de mettre mon formulaire sur un fichier formulaire.php et un fichier inscription.php maintenant je dois apprendre a faire communiquer les 2....
- Edité par GregoireRabiller il y a environ 5 heures
je pense fortement que ta voulue allez trop vite et que tu as louper des étapes dans ton apprentissage car se que tu nous montre est un niveau un peu élevé donc si tu c'est pas faire communiquer 2 fichier entre eux et que tes capable d'effectuer des requêtes a une base de données c'est que ta forcément sauté des étapes.
c'est mon avis bien sûr /;
- Edité par NicolasDreux 17 novembre 2017 à 23:21:46
regarde sur le site de php comment fonctionne l'instruction include_once ou include ou use cela te permettra de relier un fichier php dans un autre sans que celui inclu ne s'exécute lors de l'inclusion (seule la déclaration / définition des classe, / functions est réalisé pour que le code qui l'intégre puisse y accéder)
J'échange des connaissances. Si je les donnais, je n'en aurais plus
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.