prob requete avec variable $_SERVER['REMOTE_USER']

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : prob requete avec variable $_SERVER['REMOTE_USER']

par Cyrano » 13 sept. 2005, 08:15

Fais afficher ta requête pour vérifier si ce qui est généré est correct: si ça a l'air bon, alors fais un copier/coller pour la tester directement dans phpMyAdmin et tu auras un message de retour plus explicite si quelque chose n'est pas bon.

par x-ben » 12 sept. 2005, 22:43

Si c'est normal, tu boucles sur la première ligne indéfiniment:
$requete = "SELECT id FROM droits WHERE log = '".$_SERVER['REMOTE_USER']."'";
$id_user = MYSQL_QUERY($requete);
$i=0;
while($id = mysql_result($id_user, $i))
{
    echo "id:". $id .":fin";
    $i++;
}
$date = date("Y-d-m");
echo "test_fin"; 

Code : Tout sélectionner

$requete = "SELECT id FROM droits WHERE log = '".$_SERVER['REMOTE_USER']."'"; $id_user = MYSQL_QUERY($requete); $id = mysql_result($id_user, 0);
salut, le 2eme code c'est bien le 1er sans le while il me semble, mais ça me fait une erreur:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/7/5/blabla/toto/iii.php on line 46

je ne comprend pas :?
pouvez vous me dire ou est encore le prob svp?

par x-ben » 11 sept. 2005, 22:49

merci les ptits gars :wink:
les variables globales, ça a l'air un peu chaud dans un premier temps.
en attendant, mon prob d'origine est résolu donc j'édite le titre

thx 8)

par HD » 11 sept. 2005, 21:32

j'ai donné juste l'algorithme pour expliquer le principe
apres il faut bien sur ecrire ca en php (d'ou lors de la recuperation $_SESSION['effectuee'] que tu donne)

par Cyrano » 11 sept. 2005, 21:28

...crée cette variable de session : $effectuee = 0...
Est-ce que ça ne devrait pas être $_SESSION['effectuee'] = 0 pour une variable de session ?

par HD » 11 sept. 2005, 18:02

lors de la creation de la session crée cette variable de session : $effectuee = 0

si on arrive à la requete :
si $effectuee = 0 --> effectuer la requete
$effectuee = 1
sinon --> ne pas effectuer la requete

par rami » 11 sept. 2005, 18:00

On te parle de variables de session, donc des varaibles qui se propagent sur toutes les pages où il y a un session_start().

Je te conseille fortement d'aller voir la doc php: http://www.php.net/manual/fr/

par x-ben » 11 sept. 2005, 17:57

hum... :shock:

je comprend ça comme ça

test = 0

if test=0 faire la requete

{
requete
test=1
}


sauf qu'a chaque ouverture test va quand mème repasser à 0
donc je vois pas trop

par Cyrano » 11 sept. 2005, 17:46

Établis une variable de session en lui attribuant une valeur par défaut: lors de la récupération de ta requête, modifie cette valeur, et en début de page, teste la valeur: soit la valeur est celle par défaut et tu exécutes la requête, soit la valeur de ta variable de session a été modifiée et tu passes à la suite.

par x-ben » 11 sept. 2005, 17:41

je renconre deja un ptit prob.

cette requete s'execute a chaque ouverture de la page.
je souhaiterai plutot qu'elle ne s'execute qu'une seule fois lors d'une mème session.
je ne sais pas comment tester si il s'agit d'une nouvelle ou de la meme session

par x-ben » 11 sept. 2005, 17:27

ça marche sans le while :wink:

merci vous 2 8)

c'est bien cool le php, je découvre petit à petit.
j'ai pas fini de vous embéter.

a+

ben

par rami » 11 sept. 2005, 17:14

Encore plus simple:
$res = mysql_query
(
    'SELECT id FROM droits
    WHERE log = "' . $_SERVER[ 'REMOTE_USER' ] . '"
    LIMIT 1'
);

echo 'id:', mysql_result($res,0), ':fin';
;)

par Vaedan » 11 sept. 2005, 17:12

Bah une autre façon plus simple :
$res = mysql_query
(
    'SELECT id FROM droits
    WHERE log = "' . $_SERVER[ 'REMOTE_USER' ] . '"
    LIMIT 1'
);

$row = mysql_fetch_array( $res );

echo 'id:', $row[ 'id' ], ':fin';

par rami » 11 sept. 2005, 17:12

Si tu es sur de n'avoir qu'un seul resultat, ne fais pas de boucle while. ;)

par x-ben » 11 sept. 2005, 17:11

alors, le distinct, ça ne change rien.

la méthode de rami fonctionne sauf que apres m'afficher le resultat, ça affiche:
Warning: mysql_result(): Unable to jump to row 1 on MySQL result index 10 in /var/www/free.fr/7/5/blabla/tota/index.php on line 46