Function : reconnaître un utilisateur par son nom

Fermé
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - 11 juin 2013 à 17:40
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 13 juin 2013 à 16:12
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


14 réponses

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
11 juin 2013 à 20:09
Salut !

SELECT * FROM users WHERE nom='$nom'
Non ?
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
12 juin 2013 à 12:06
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
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 14:38
text n'est pas un type, string oui.
$username=(string)$username;
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
12 juin 2013 à 16:33
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 16:38
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
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
12 juin 2013 à 16:55
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
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 16:57
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
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
12 juin 2013 à 17:07
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
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 17:11
la page s'affiche correctement..
Où est le problème alors ? :p
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
12 juin 2013 à 17:13
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
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 17:16
La réécriture d'url c'est pas spécialement mon truc donc j'ai peur de pas pouvoir t'aider la dessus =/
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
Modifié par nik029 le 12/06/2013 à 17:23
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
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
13 juin 2013 à 13:11
Quelqu'un pourrait-il m'aider ?
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
13 juin 2013 à 16:12
Refais un post à mon avis ;-)
0