Créer un compte
Connexion

script espace membre

Pour créer et répondre aux sujets, vous devez être connecté.
Pages: 1
Auteur Message
jbquentin
26/09/2010 à 17:25:39
jbquentin
Membre
Bonjour,

J'ai mit le script de l'espace membre qu'il y a sur support du web sur mon site, mais quand l'utilisateur apui sur son profil, il y a écrit
"L'identifiant de l'utilisateur n'est pas défini. "



<?php
//On se connecte a la Base de donnee
include('mysqlcnn.php');
if(isset($_GET['id']))
{
        $id = intval($_GET['id']);
        $dn = mysql_query('select pseudo, email, avatar, dateinscription from utilisateurs where id="'.$id.'"');
        if(mysql_num_rows($dn)>0)
        {
                $dnn = mysql_fetch_array($dn);
                //On affiche les donnees de lutilisateur
?>
Voici le profil de "<?php echo htmlentities($dnn['pseudo']); ?>" :
<table style="margin:auto;width:500px;">
        <tr>
        <td><?php
if($dnn['avatar']!='')
{
        echo '<img src="'.htmlentities($dnn['avatar']).'" alt="Image Perso" style="max-width:100px;max-height:100px;" />';
}
else
{
        echo 'Cet utilisateur n\'a pas d\'image perso.';
}
?></td>
        <td><span style="font-size:30px;"><?php echo htmlentities($dnn['pseudo']); ?></span><br />
        Email: <?php echo htmlentities($dnn['email']); ?><br />
        Cet utilisateur c'est inscrit le <?php echo date('d/m/Y',$dnn['dateinscription']); ?></td>
    </tr>
</table>
<?php
        }
        else
        {
                echo 'Cet utilisateur n\'existe pas.';
        }
}
else
{
        echo 'L\'identifiant de l\'utilisateur n\'est pas d&eacute;fini.';
}
?>

 



piratequenti
26/09/2010 à 19:39:02
piratequenti
Membre
tu à creer la table utilisateur dans ta base sql?

Aglzime
27/09/2010 à 23:46:28
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Bonjour,
C'est peut être parce que le ".php?id=" n'est pas défini ! .
donc il faut une adresse URL du genre :"http:tonsite.com/ledossier/afficher_profil.php?id=3"
ici le 3 c'est l'id de l'utilisateur
je crois que ça doit être sa le soucis !!!


ybouane
28/09/2010 à 04:58:26
ybouane
Admin
Bonjour,
peut-tu copier le code de ta page utilisateurs.php

Cordialement :)

Image
jbquentin
29/09/2010 à 16:02:57
jbquentin
Membre
voila utilisateur.php


<?php
//On se connecte a la Base de donnee
include('mysqlcnn.php');
//On affiche la liste des utilisateurs sous la forme dun tableau
?>
Voici la liste des utilisateurs:
<table>
    <tr>
        <th>Id</th>
        <th>Nom d'utilisateur</th>
        <th>Email</th>
    </tr>
<?php
//On recupere les identifiants, les pseudo et les emails des utilisateurs
$req = mysql_query('select id, pseudo, email from utilisateurs');
while($dnn = mysql_fetch_array($req))
{
?>
        <tr>
        <td><?php echo $dnn['id']; ?></td>
        <td><a href="profil.php?id=<?php echo $dnn['id']; ?>"><?php echo htmlentities($dnn['pseudo']); ?></a></td>
        <td><?php echo htmlentities($dnn['email']); ?></td>
    </tr>
<?php
}
?>
</table>
 


ybouane
02/10/2010 à 00:13:11
ybouane
Admin
Bonjour,
le problème provenait de la page inscription, voici le nouveau code que tu doit utiliser pour la page inscription.php:
<?php
//On se connecte a la Base de donnee
include('mysqlcnn.php');
//On verifie si le formulaire a ete envoye
if(isset($_POST['pseudo'], $_POST['pass'], $_POST['passverif'], $_POST['email'], $_POST['avatar']) and $_POST['pseudo']!='')
{
    //On verifie si le mot de passe et celui de la verification sont identiques
    if($_POST['pass']==$_POST['passverif'])
    {
        //On verifie si le mot de passe a 6 caracteres ou plus
        if(strlen($_POST['pass'])>=6)
        {
            //On enleve lechappement si get_magic_quotes_gpc est active
            if(get_magic_quotes_gpc())
            {
                $_POST['pseudo'] = stripslashes($_POST['pseudo']);
                $_POST['pass'] = stripslashes($_POST['pass']);
                $_POST['email'] = stripslashes($_POST['email']);
                $_POST['avatar'] = stripslashes($_POST['avatar']);
            }
            //On verifie si lemail est valide
            if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
            {
                //On echape les variables pour pouvoir les mettre dans une requette SQL
                $pseudo = mysql_real_escape_string($_POST['pseudo']);
                $pass = mysql_real_escape_string($_POST['pass']);
                $email = mysql_real_escape_string($_POST['email']);
                $avatar = mysql_real_escape_string($_POST['avatar']);
                //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
                $dn = mysql_num_rows(mysql_query('select id from utilisateurs where pseudo="'.$pseudo.'"'));
                if($dn==0)
                {
                    //On recupere le nombre dutilisateur pour donner un identifiant a lutilisateur actuel
                    $dn2 = mysql_num_rows(mysql_query('select id from utilisateurs'));
                    $id = $dn2+1;
                    //On enregistre les informations dans la base de donnee
                    if(mysql_query('insert into utilisateurs(id, pseudo, pass, email, avatar, dateinscription) values ('.$id.', "'.$pseudo.'", "'.$pass.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
                    {
                        //Si ca a fonctionne, on naffiche pas le formulaire
                        $form = false;
        ?>
        Vous avez bien &eacute;t&eacute; inscrit. Vous pouvez dor&eacute;navant vous connecter.<br />
        <a href="connection.php">Se connecter</a>
        <?php
                    }
                    else
                    {
                        //Sinon on dit quil y a eu une erreur
                        $form = true;
                        $message = 'Une erreur est survenue lors de l\'inscription.';
                    }
                }
                else
                {
                    //Sinon, on dit que le pseudo voulu est deja pris
                    $form = true;
                    $message = 'Un autre utilisateur utilise d&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.';
                }
            }
            else
            {
                //Sinon, on dit que lemail nest pas valide
                $form = true;
                $message = 'L\'email que vous avez entr&eacute; n\'est pas valide.';
            }
        }
        else
        {
            //Sinon, on dit que le mot de passe nest pas assez long
            $form = true;
            $message = 'Le mot de passe que vous avez entr&eacute; contien moins de 6 caract&egrave;res.';
        }
    }
    else
    {
        //Sinon, on dit que les mots de passes ne sont pas identiques
        $form = true;
        $message = 'Les mot de passe que vous avez entr&eacute; ne sont pas identiques.';
    }
}
else
{
    $form = true;
}
if($form)
{
    //On affiche un message sil y a lieu
    if(isset($message))
    {
        echo '<strong>'.$message.'</strong>';
    }
    //On affiche le formulaire
?>
<form action="inscription.php" method="post">
Veuillez remplir ce formulaire pour vous inscrire:<br />
Nom d'utilisateur:<input type="text" name="pseudo" value="<?php if(isset($_POST['pseudo'])){echo $_POST['pseudo'];} ?>" /><br />
Mot de passe(6 caract&egrave;res min.):<input type="password" name="pass" /><br />
Mot de passe(v&eacute;rification):<input type="password" name="passverif" /><br />
Email:<input type="text" name="email" value="<?php if(isset($_POST['email'])){echo $_POST['email'];} ?>" /><br />
Image perso(non obligatoire):<input type="text" name="avatar" value="<?php if(isset($_POST['avatar'])){echo $_POST['avatar'];} ?>" /><br />
<input type="submit" value="Envoyer" />
</form>
<?php
}
?>

Il faudra aussi vider la table utilisateurs pour que les problèmes disparaissent.

http://www.supportduweb.com/scripts_tutoriaux-code-source-84-espace-membre-en-php-mysql-utilisateurs-espace-membre-inscription-connection-sessions-php-mysql.html

Cordialement :)

Image
Pages: 1