problème connexion espace membre

Louloudu92

Louloudu92 Le 29 juillet 2020 à 17:22 (Édité le 30 juillet 2020 à 10:24)

Bonjour, après avoir suivi le tuto pour la création d'un espace membre, j'ai un souci avec la partie connexion. Ce que je ne comprends pas, c'est que quand j'utilise mamp pour travailler en local, tout fonctionne à merveille, et quand j'importe mon code sur mon hébergeur il me renvoit un message d'erreur ci- dessous !

Message d'erreur :

Warning : Cannot modify header information -headers already sent by (output started at /storage/ssd4/676/13620767/public_html/include/nav.php:1) in /storage/ssd4/676/13620676/public_html/inscription.php on line 73

La ligne 73 correspond au header('Location')

AU SECOURS !!!!

Merci d'avance

<?php session_start(); ?> <?php include("include/nav.php"); ?>

<?php / FORMULAIRE D'INSCRIPTION / $bdd = new PDO('mysql:host=localhost;dbname="", '',"");

if(isset($_POST['forminscription'])) { $nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']); $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $pass = sha1($_POST['pass']); $pass2 = sha1($_POST['pass2']);

$reqpseudo = $bdd->prepare('SELECT * FROM membres WHERE pseudo = ?');
$reqpseudo->execute(array($pseudo));
$pseudoexist = $reqpseudo->rowCount();

if($pseudoexist == 0)
{
    $reqmail = $bdd->prepare('SELECT * FROM membres WHERE mail = ?');
    $reqmail->execute(array($mail));
    $mailexist = $reqmail->rowCount(); 

    if($mailexist == 0)
    {
        if($pass == $pass2)
        {
            $insertmembre = $bdd->prepare('INSERT INTO membres(nom, prenom, pseudo, mail, pass) VALUES(?, ?, ?, ?, ?)');
            $insertmembre->execute(array($nom, $prenom, $pseudo, $mail, $pass)); 

            $ei = "Votre compte à bien été créé !!!";  
        } 
        else
        {
            $ei = "Les mots de passes ne sont pas identiques !";
        }
    }
    else 
    {
        $ei = "Cette adresse mail n'est pas disponible !"; 
    }
}
else
{
    $ei = "Ce pseudo n'est pas disponible !";
}

}

/ FORMULAIRE DE CONNEXION/ if(isset($_POST['formconnexion'])) { $pseudo = htmlspecialchars($_POST['pseudoconnexion']); $pass = sha1($_POST['passconnexion']);

$requser = $bdd->prepare('SELECT * FROM membres WHERE pseudo = ? AND pass = ?');
$requser->execute(array($pseudo, $pass));
$userexist = $requser->rowCount();

if($userexist == 1)
{
    $userinfo = $requser->fetch();
    $_SESSION['id'] = $userinfo['id'];
    $_SESSION['nom'] = $userinfo['nom'];
    $_SESSION['prenom'] = $userinfo['prenom'];
    $_SESSION['mail'] = $userinfo['mail'];
    $_SESSION['pass'] = $userinfo['pass'];

    header('Location: profil.php?id='.$_SESSION['id']);
}
else
{
    $ec = "Mauvais identifiants !";
}

}

?>

<body> <hr>

<h3>Vous êtes déjà membre ?</h3> <h4>Connectez-vous</h4>

<form method="POST" action=""> <table align="center"> <tr> <td align="right"><label for="pseudo">Votre pseudo :</label></td> <td><input type="text" name="pseudoconnexion" id="pseudo" placeholder="ex: Ricci" required/><br/></td> </tr> <tr> <td align="right"><label for="pass">Votre mot de passe :</label></td> <td><input type="password" name="passconnexion" id="pass" required/></td> </tr> <tr> <td></td> <td><input type="submit" name="formconnexion" value="Me connecter !"/></td> </tr> </table> </form> <?php if(isset($ec)) { echo '<font color="red">'.$ec.'</font>'; } ?>

<hr/> <h3>Pas encore inscrit ?</h3>

<form method="POST" action=""> <table align="center"> <tr> <td align="right"><label for="nom">Votre nom :</label></td> <td><input type="text" name="nom" id="nom" placeholder="ex: Dupond" required/></td> </tr> <tr> <td align="right"><label for="prenom">Votre prénom :</label></td> <td><input type="text" name="prenom" id="prenom" placeholder="ex: Jean" required/></td> </tr> <tr> <td align="right"><label for="pseudo">Votre pseudo :</label></td> <td><input type="text" name="pseudo" id="pseudo" placeholder="ex: Ricci IPNOZI" required/></td> </tr> <tr> <td align="right"><label for="mail">Votre email :</label></td> <td><input type="email" name="mail" id="mail" required/></td> </tr> <tr> <td align="right"><label for="pass">Votre mot de passe :</label></td> <td><input type="password" name="pass" id="pass" required/></td> </tr> <tr> <td align="right"><label for="pass2">Confirmez le mot de passe :</label></td> <td><input type="password" name="pass2" id="pass2" required/></td> </tr> <tr> <td></td> <td><input type="submit" name="forminscription" value="Je m'inscrit"/></td> </tr> </table> </form> <?php if(isset($ei)) { echo '<font color="red">'.$ei.'</font>'; } ?>

</body> <?php include("include/footer.php"); ?>

</html>

Louloudu92

Louloudu92 Le 29 juillet 2020 à 17:23

et tout ça uniquement quand je rentre mes informations de connexion et que je me connecte ! Du coup je n'ai aucune redirection

Le_dev

Le_dev Le 29 juillet 2020 à 23:29

Salut voila je te conseillerai de refaire le code : de tout refaire afin que l'erreur soit corrigée c'est ce que j'aurais fait à ta place et si tu veut que ca fasse les deux formulaire dans la meme page fait <?php include("tapage.php"); ?> et met un peut de style avec css . Moi j'ai aussi un problème c'est que je veut faire un tri de mes articles par catégories dans une page en gros dans la table article je rajoute "categories | varchar 255" et je voudrai trier mes articles avec ca mais voila je sais pas comment faire Merci

Louloudu92

Louloudu92 Le 29 juillet 2020 à 23:32

merci pour ta reponse ! je vais essayer ca on verra bien ce que ca donne ! ^^

tu as essayé avec SELECT * FROM ta table ORDER BY categorie ?

Le_dev

Le_dev Le 29 juillet 2020 à 23:36

Oui merci mais je ne sais pas comment préciser la catégorie

Le_dev

Le_dev Le 29 juillet 2020 à 23:40

Si tu veux je te passe le code pour faire un systeme de recherche qui recherche les articles en gros quand tu recherche un nom d'article qui est dispo bah ta la minia et le titre et quand tu clique ca te mène vers l'article voila donc dis moi si tu veux car je vois que ici je peut envoyer du code car dans les commentaires je voulais le donner à tout le monde mais le code ne s'affichait pas

Louloudu92

Louloudu92 Le 29 juillet 2020 à 23:49

oui vas y envoie, je jetterai un oeil si j´ai le temps demain ;)

Le_dev

Le_dev Le 29 juillet 2020 à 23:50

ok

Le_dev

Le_dev Le 29 juillet 2020 à 23:53 (Édité le 30 juillet 2020 à 00:05)

<?php $bdd = new PDO('mysql:host=127.0.0.1;dbname=base_de_donnees;charset=utf8','root',''); $articles = $bdd->query('SELECT * FROM articles ORDER BY date_time_publication DESC LIMIT 0, 5'); ?> <?php


<?php $bdd = new PDO('mysql:host=127.0.0.1;dbname=base_de_donnees;charset=utf8','root',''); $articles = $bdd->query('SELECT * FROM articles ORDER BY date_time_publication DESC LIMIT 0, 5'); ?> <?php

$bdd = new PDO('mysql:host=127.0.0.1;dbname=base_de_donnees;charset=utf8','root','');

$articles = $bdd->query('SELECT id,titre FROM articles ORDER BY id DESC LIMIT 0, 5'); 

if(isset($_GET['q']) AND !empty($_GET['q'])) { $q = htmlspecialchars($_GET['q']); $articles = $bdd->query('SELECT id,titre FROM articles WHERE id LIKE "%'.$q.'%" ORDER BY id DESC'); 

if($articles->rowCount() == 0) { $articles = $bdd->query('SELECT id,titre FROM articles WHERE CONCAT(id, titre, contenu) LIKE "%'.$q.'%" ORDER BY id DESC'); } }

?>

<link rel="stylesheet" href="style.css"> 

<form method="GET"> 
    <input type="search" name="q" placeholder="Rechercher..." /> 
    <input type="submit" value="Valider"> 
</form> 

<?php if($articles->rowCount() > 0) { ?> 
<ul> 
    <?php while($a = $articles->fetch()) { ?> 
    <li> <a href="article.php?id=<?= $a['id'] ?>"> 
        <img src="miniatures/<?= $a['id'] ?>.jpg" width="130" height="80"/><br /> 
        <?= $a['titre'] ?> </a> </li> <?php } ?> 
</ul> 
<?php } else { ?> 
Aucun résultat pour "<?= $q ?>" 
<?php } ?> 
</body> 
</html>
Louloudu92

Louloudu92 Le 30 juillet 2020 à 07:41

essaye au niveau de ton formulaire un methode $_POST et rajoute action""

Le_dev

Le_dev Le 30 juillet 2020 à 10:10

Pourquoi

R00T

R00T Le 8 août 2020 à 11:23 (Édité le 8 août 2020 à 11:24)

Bonjour, ce qui cause cette erreur est le fait que tu as déjà envoyé une partie de la page au 'client' et que donc elle ne peut plus être modifiée. Ce que je fais pour éviter ce soucis c'est de rajouter "ob_start();" juste après le "session_start();" (donc de préférence au début de ton fichier php). Et il faut également rajouter "ob_flush();" à la fin de ton fichier php.

C'est une fonction php qui sert de cache temporaire et qui attends que la page ai entièrement chargé avant d'envoyer l'envoyer au 'client' ce qui normalement devrait résoudre ton problème.

J'espere que j'aurai pu t'aider.

Louloudu92

Louloudu92 Le 8 août 2020 à 11:35

oui c´est ce que j´ai fini par trouver aussi et ca fonctionne :) probleme resolu merci de ta reponse

Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte