C'est re moi. J'ai déjà créer un topic ya quelques dizaines de minutes, où j'expliquais un problème. Étant résolu, je refais un autre sujet pour expliquer un autre problème.
Premier problème: mon code n'est plus interprété. Je n'ai que le code HTML en brut d'afficher. Pas de mise en page rien.
Deuxième problème: La page de redirection qui est censé arriver après avoir confirmer le code ne vient pas. Je boucle sur la même pas indéfiniment. J'explique. En faite, c'est une page de confirmation avec un code par sms. LE client s'inscrit, arrive sur cette page et reçois un code par sms qu'il doit rentrer dans e champs prévu à cet effet. Ce code est comparé à celui dans la base, et si il est juste, il est rediriger vers une autre page. Le problème, c'est que la redirecyion ne se fait pas.
Voilà le code entier:
<?php
header('Content-Type: text/htmrset=UTF-8');
// fichiers de conf
require "../phprequire/config.php";
require "../phprequire/pdo.php";
?>
<br />
<?php
if ((!empty($_POST['etapeFinale'])) && isset($_POST['etapeFinale'])) {
// Envoie des données personelles
$stmt = null;
$bdd = null;
$unactiveUser = 0;
$unactiveSociete = 0;
$passUser = md5($_POST['codeSms']);
try {
$bdd = PDO2::getInstance();
//$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$stmt = $bdd-> prepare("INSERT INTO users(nomUser, prenomUser, loginUser, fonctionUser, telUser, emailUser, passwordUser, activeUser)
VALUES(:nomUser, :prenomUser, :loginUser, :fonctionUser, :telUser, :emailUser, :passwordUser, :activeUser)");
//$res = $pdo->prepare($req);
$stmt->bindParam('nomUser', $_POST['nomDoc'], PDO::PARAM_STR);
$stmt->bindParam('prenomUser', $_POST['prenomDoc'], PDO::PARAM_STR);
$stmt->bindParam('loginUser', $_SESSION['loginDoc'], PDO::PARAM_STR);
$stmt->bindParam('fonctionUser', $_POST['specialiteDoc'], PDO::PARAM_STR);
$stmt->bindParam('telUser', $_POST['telephoneDoc'], PDO::PARAM_STR);
$stmt->bindParam('emailUser', $_POST['mailDoc'], PDO::PARAM_STR);
$stmt->bindParam('passwordUser', $passUser, PDO::PARAM_STR);
$stmt->bindParam('activeUser', $unactiveUser, PDO::PARAM_STR);
$stmt->execute();
$idUser = $bdd->lastInsertId();
$_SESSION['lastId'] = $idUser;
} catch (PDOException $e) {
$bdd = PDO2::getInstance();
$pdoEx1 = "echo 'Erreur insert into users : ' . $e->getMessage();";
// il y a de forte chance pour $stmt n'exisquand tu arrive ici (lorsque le prépare se vautre par
// exemple
}
// Envoie des données du cabinet
$stmt2 = null;
$bdd2 = null;
try {
$bdd2 = PDO2::getInstance();
$stmt2 = $bdd2-> prepare("INSERT INTO societes(nomSociete, adresseSociete, cpSociete, villeSociete, telSociete, emailSociete, activeSociete)
VALUES(:nomSociete, :adresseSociete, :cpSociete, :villeSociete, :telSociete, :emailSociete, :activeSociete)");
$stmt2->bindParam('nomSociete', $_POST['nomCab'], PDO::PARAM_STR);
$stmt2->bindParam('adresseSociete', $_POST['adresseCab'], PDO::PARAM_STR);
$stmt2->bindParam('cpSociete', $_POST['cpCab'], PDO::PARAM_STR);
$stmt2->bindParam('villeSociete', $_POST['villeCab'], PDO::PARAM_STR);
$stmt2->bindParam('telSociete', $_POST['telephoneCab'], PDO::PARAM_STR);
$stmt2->bindParam('emailSociete', $_POST['mailCab'], PDO::PARAM_STR);
$stmt2->bindParam('activeSociete', $unactiveSociete, PDO::PARAM_STR);
$stmt2->execute();
} catch (PDOException $e) {
$bdd2 = PDO2::getInstance();
$pdoEx2 = "echo 'Erreur insert into societes : ' . $e->getMessage();";
// il y a de forte chance pour $stmt n'existe pas quand tu arrive ici (lorsque le prépare se vautre par
// exemple
}
//header('location: confirmSms.php');
}else{
//echo "pbb!!";
}
// Confirmation par SMS
if (isset($codeSms))
{
$codeSms = filter_input(INPUT_POST, 'codeSms');
$codeSmsHash = md5($codeSms);
$_SESSION['codeSmsHash'] = $codeSmsHash;
$stmt4 = null;
$bdd = null;
try
{
$bdd = PDO2::getInstance();
// Préparation de la requête
$stmt4 = $bdd->prepare("SELECT passwordUser FROM users WHERE idUser = :idUser");
// Exécution de la requête en passant les marqueurs et leur variables associées dans un tableau
$stmt4->execute(array(':idUser'=>$_SESSION['lastId'])) or die('erreur requete');
// Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois
$resultat = $stmt4->fetchAll();
$nb_result = count($resultat);
var_dump($resultat);
if ($_SESSION['codeSmsHash'] === $resultat[0]['passwordUser'])
{
/* Démarre une session si aucune n'est déjà existante et enregistre le pseudo dans la variable de session $_SESSION['login'] qui donne au visiteur la possibilité de se connecter. */
if (!session_id()) session_start();
$_SESSION['login'] = $_SESSION['loginUser'];
//$message = 'Bonjour '.htmlspecialchars($_SESSION['login']).', vous êtes connecté';
//ou redirection vers une page en cas de succès ex : menu.php
header("Location: https://agendapro.fr");
exit();
//Si vous voulez récupérer les données elles se trouvent dans la première et unique ligne du tableau $resultat par exemple
//$result = $resultat[0];
//echo $result['pseudo'];
//echo $result['date_enregistrement'];
}
else if ($nb_result > 1)
{
// Par sécurité si plusieurs réponses de la requête mais si la table est bien construite on ne devrait jamais rentrer dans cette condition
$message = 'Problème de d\'unicité dans la table';
}
else
{ // Le pseudo ou le mot de passe sont incorrect
$message = 'Code SMS incorrect.';
}
}
catch (PDOException $e)
{
$message = 'Problème dans la requête de sélection';
}
echo $resultat[0]['passwordUser'];
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Bienvenue sur Docteur Rendez-Vous !</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Language" content="fr" />
<!-- Encodage utf8 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- Chargement du framework bootstrap -->
<link rel="stylesheet" href="<?php echo CHEMIN_LIB;?>bootstrap/css/bootstrap.css" type="text/css" />
<link rel="stylesheet" href="<?php echo CHEMIN_LIB;?>bootstrap/css/bootstrap-theme.css" type="text/css" />
<!-- Chargement style CSS -->
<link rel="stylesheet" href="<?php echo CHEMIN_LIB;?>css/styles.css" type="text/css" media="screen" />
<!-- favicon -->
<link rel="shortcut icon" href="favicon.ico">
<script type="text/javascript">
function validation() {
return confirm('Confirmer l\'enregistrement ');
}
</script>
</head>
<body>
<div class="container">
<div><a class="navbar-brand" href="../index.php"><img src="<?php echo CHEMIN_LIB;?>images/logo.png" alt="logo image"></a></div><br><br><br><br><br><br>
</div>
<?php
echo $_SESSION['codeSms']."<br />";
?>
<div class="container">
<form method="post">
<fieldset>
<legend>Veuillez entrer le code que nous vous avons envoyé par SMS:</legend>
<input type="text" placeholder="Code SMS" id="codeSMS" name="codeSMS" />
<input type="submit" value="Confirmer" />
</fieldset>
</form>
</div>
<!-- Librairie jQuery + js bootstrap -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.js"></script>
</body>
</html>
Les deux sont sur le même fichier, l'un en dessous de l'autre.
Qu'est ce qui engendre les deux problème cités plus haut?
Merci de votre aide.