Function : reconnaître un utilisateur par son nom

Bonjour,

Comment reconnaître un utilisateur par son nom (username) et non par son id ?

Voici l'un de mes codes qui reconnait un utilisateur par son id :

<?php 
function info_users($id)
{
$id = (int)$id;
	$sql = mysql_query("SELECT * FROM users WHERE id='$id'");
	
	return mysql_fetch_assoc($sql);
}

if(!empty($_GET['id']))
{
$info=info_users($_GET['id']);

if($info == false)
{
?>
<script language="Javascript">document.location.replace("accueil.php");</script>
<?php 
}
}else{
?>
<script language="Javascript">document.location.replace("accueil.php");</script>
<?php
}
?>


Merci d'avance



--
Une fois un problème résolu, mettez un +1 sur la réponse qui vous à aidez et mettez Problème Résolu ! ;-)

14 réponses

  1. Salut !

    SELECT * FROM users WHERE nom='$nom'
    Non ?
    0
    1. C'est ce que j'ai fais mais c'est dans cette partie j'ai l'impression que ça bloque :
      $id = (int)$id;
      

      car si je met :
      $username=(text)$username;


      rien ne fonctionne
      0
      1. text n'est pas un type, string oui.
        $username=(string)$username;
        0
        1. Merci de ta réponse, ça m'a bien aidé.

          Problème, vu que je me sert de cela pour faire un URL Rewritring,

          quand je fais cela :

          RewriteEngine on
          RewriteBase /m
          RewriteRule ^profil-(.+).php$   profil.php?username=$1[L] 


          La redirection de ce code sur la page profil.php :

          <?php if(!empty($_GET['username']))
          {
          $info=info_users($_GET['username']);
          
          if($info == false)
          {
          ?>
          <script language="Javascript">document.location.replace("accueil.php");</script>
          <?php 
          }
          }else{
          ?>
          <script language="Javascript">document.location.replace("accueil.php");</script>
          <?php
          }
          ?>


          Ce met en route. Comment faire pour que la page s'affiche correctement ?
          0
          1. Il faut faire une autre fonction ;-)
            Une qui récupère les infos avec l'id, et l'autre avec le username

            function info_users_withId($id)
            {
            .....
            }

            function info_users_withName($username)
            {
            .....
            }

            Donc tu appelles l'une ou l'autre suivant ce que t'as sous la main comme info (id ou username)
            0
            1. C'est ce que j'ai fait :

              La fonction

              function info_users_username($username)
              {
              $username=(string)$username; 
              	$sql = mysql_query("SELECT * FROM users WHERE username='$username'");
              	
              	return mysql_fetch_assoc($sql);
              }
              

              .htaccess

              RewriteEngine on
              RewriteBase /m
              RewriteRule ^profil-(.+).php$   profil.php?username=$1[L]
              

              profil.php

              <?php if(!empty($_GET['username']))
              {
              $info=info_users_username($_GET['username']);
              
              if($info == false)
              {
              ?>
              <script language="Javascript">document.location.replace("accueil.php");</script>
              <?php 
              }
              }else{
              ?>
              <script language="Javascript">document.location.replace("accueil.php");</script>
              <?php
              }
              ?>


              Hors un profil-username.php redirige toujours vers accueil.php
              0
              1. if($info == false)
                {
                ?>
                <script language="Javascript">document.location.replace("accueil.php");</script>
                <?php
                }
                }else{
                ?>
                <script language="Javascript">document.location.replace("accueil.php");</script>
                <?php
                }

                Dans tous les cas tu rediriges vers l'accueil :)

                0
                1. Oui mais lorsque mon url est de

                  profil.php?username=username

                  la page s'affiche correctement..

                  La redirection est faite pour que quand l'utilisateur saisie dans l'url n'existe pas, on le redirige vers l'accueil.
                  0
                  1. la page s'affiche correctement..
                    Où est le problème alors ? :p
                    0
                    1. Car j'aimerais que la page s'affiche correctement lorsque c'est profil-username.php, ce qui n'est pas le cas car elle fais une redirection vers accueil.php ;)
                      0
                      1. La réécriture d'url c'est pas spécialement mon truc donc j'ai peur de pas pouvoir t'aider la dessus =/
                        0
                        1. J'ai vu sur internet que le [L] (dans .htaccess) peut ce modifier en [QSA] et très truc comme cela mais je comprends pas trop...

                          Une fois un problème résolu, mettez un +1 sur la réponse qui vous à aidez et mettez Problème Résolu ! ;-)
                          0
                          1. Quelqu'un pourrait-il m'aider ?
                            0