Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2011, 18h28   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 193
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 193
Points : 12
Points : 12
Par défaut erreur + recherche (sql)

Bonjour all,
ne sachant pas trop coder le php j'ai trouvé un code pour vérifier si un pseudo + passe et dans la table sql.

mais voila j'ai une erreur et je ne c'est vraiment pas si c'est bien un code que je désir installer.

Je vous explique j'ai une page index avec un formulaire pseudo, passe, région, age et sexe j'ai des users qui son enregistrer et quand il entre le pseudo sur la page index j'aimerai qu'il y a une alerte pour dire que le pseudo et protéger mais uniquement si le passe na pas était saisi.

Voila j'espère que j'ai était assez claire et que si mon code ne correspond pas a mon attente qu'il y aurait une personne pour m'aidai ou ou me donner se morceau de code.

l'erreur:
Code :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/Moncompte/www/index.php on line 18
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
  // VARIABLES DE CONNEXION
    $host  = 'localhost';    // Votre identifiant
    $user  = 'Login';     // Votre identifant 
    $mdp  = 'Monpass-Sql';     // Votre mot de passe
    $base  = 'Nombase-SQL';     // Nom de votre base
    $tb   = 'Matable';    // Nom de votre table 
 
  // ON SE CONNECTE ET ON SELECTIONNE LA BASE
      mysql_connect($host, $user, $mdp)
      or die("Impossible de se connecter au serveur ".$host);
    mysql_select_db($base)
      or die("Impossible de connecter à la base ".$base);
 
  // ON VERIFIE SI LE psd EST DANS LA TABLE
$sql  = "SELECT COUNT(*) AS nbr FROM ".$tb." WHERE psd = '".$_POST['psd']."'";
    $res  = mysql_query($sql);
    $alors  = mysql_fetch_assoc($res);
 
  // UNE BOUCLE POUR INFORMER L'UTLISATEUR
    if(isset($_POST['psd'])){
      if(!($alors['nbr'] == 0)){
        echo "Ce psd est déjà utilisé !";
      }else{
        echo "Ce psd n'a jamais été utilisé";
      }
    }
?>

et mes input sur ma page index.
Code :
1
2
<input name="psd" type="text" id="psd" class="longueur_inp" value="<?php echo $_COOKIE['psd']; ?>" maxlength="19" />
<input name="pss" type="password" id="pss" class="longueur_inp" value="<?php echo $_COOKIE['pss'];?>" maxlength="20" />
Cordialement Stéphane
snip74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 18h41   #2
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Fait un echo sur la variable $sql est vérifier la requête afficher sur phpmyadmin est ce qu'il va vous retourner des erreurs.
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 20h14   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 193
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 193
Points : 12
Points : 12
Bonsoir
merci de cette réponsse

j'ai teste de mettre un echo comme sa et j'obetient un autre erreur.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
  // VARIABLES DE CONNEXION
    $host  = 'localhost';    // Votre identifiant
    $user  = 'Login';     // Votre identifant 
    $mdp  = 'Monpass-Sql';     // Votre mot de passe
    $base  = 'Nombase-SQL';     // Nom de votre base
    $tb   = 'Matable';    // Nom de votre table 
 
  // ON SE CONNECTE ET ON SELECTIONNE LA BASE
      mysql_connect($host, $user, $mdp)
      or die("Impossible de se connecter au serveur ".$host);
    mysql_select_db($base)
      or die("Impossible de connecter à la base ".$base);
 
  // ON VERIFIE SI LE psd EST DANS LA TABLE
$sql  = "SELECT COUNT(*) AS nbr FROM ".$tb." WHERE psd = '".$_POST['psd']."'";
    $res  = mysql_query($sql);
    $alors  = mysql_fetch_assoc($res);
 
  // UNE BOUCLE POUR INFORMER L'UTLISATEUR
    if(isset($_POST['psd'])){
      if(!($alors['nbr'] == 0)){
        echo "Ce psd est déjà utilisé !";
      }else{
        echo "Ce pseudo n'a jamais été utilisé";
      }
    }
?>
et j'ai sa comme erreur
Code :
Parse error: syntax error, unexpected T_VARIABLE in /home/Moncompte/www/index.php on line 25
Citation:
Envoyé par m4riachi Voir le message
Fait un echo sur


Cordialement Stéphane

la variable $sql est vérifier la requête afficher sur phpmyadmin est ce qu'il va vous retourner des erreurs.
snip74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 20h58   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Je ne vois pas le echo dans ce que tu nous as mis.

Il faut afficher l'erreur mysql :
Code :
$res  = mysql_query($sql) or exit(mysql_error());
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 21h57   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 193
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 193
Points : 12
Points : 12
Bonsoir sabotage

bah me suis planté de copier coller
puis toute facon mon echo et mal créer je l'avais comme sa mais sa va pas gt entrain de cherché sur le net :$ donc j'avais mis comme sa

Code :
1
2
3
4
5
6
7
8
      }else{
        echo "Ce pseudo n'a jamais été utilisé";
}else{
        echo (".$sql");
 
      }
    }
?>
et j'ai sa comme erreur

Code :
Parse error: syntax error, unexpected T_ELSE in /home/moncompte/www/index.php on line 26
donc j'ai télement de bloc not ouvert que je me suis même planté de ligne lol

donc je recherche encore comment planté l'echo

Cordialement Stéphane

Citation:
Envoyé par sabotage Voir le message
Je ne vois pas le echo dans ce que tu nous as mis.

Il faut afficher l'erreur mysql :
Code :
$res  = mysql_query($sql) or exit(mysql_error());
snip74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 22h12   #6
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

une piste... :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$psd='';
if(isset($_POST['psd'])) {
  $psd= addslashes( $_POST['psd'] );
}
 
$sql  = "SELECT psd FROM ".$tb." WHERE psd = '".$psd."'";
$res  = mysql_query($sql);
if(!mysql_num_rows($res)) {
  echo "Ce pseudo n'a jamais été utilisé";
} else {
  echo "Pseudo déjà utilisé";
}
bon courage...
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 22h25   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 193
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 193
Points : 12
Points : 12
Bonsoir ska_root,
merci de ton aide sa fait plaisir de voir des gens qui aide ^^


afff j'ai mis ton code pour voir car je mis connais pas assez en php
et sur le index j'ai sa comme erreur:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
  // VARIABLES DE CONNEXION
    $host  = 'localhost';    // Votre identifiant
    $user  = 'admin';     // Votre identifant 
    $mdp  = 'monpass';     // Votre mot de passe
    $base  = 'nombase';     // Nom de votre base
    $tb   = 'Labase_2';    // Nom de votre table 
 
  // ON SE CONNECTE ET ON SELECTIONNE LA BASE
      mysql_connect($host, $user, $mdp)
      or die("Impossible de se connecter au serveur ".$host);
    mysql_select_db($base)
      or die("Impossible de connecter à la base ".$base);
 
  // ON VERIFIE SI LE psd EST DANS LA TABLE
$sql  = "SELECT COUNT(*) AS nbr FROM ".$tb." WHERE psd = '".$_POST['psd']."'";
    $res  = mysql_query($sql);
    $alors  = mysql_fetch_assoc($res);
 
  // UNE BOUCLE POUR INFORMER L'UTLISATEUR
    if(isset($_POST['psd'])){
      if(!($alors['nbr'] == 0)){
        echo "Ce pseudo est déjà utilisé !";
      }else{
        echo "Ce pseudo n'a jamais été utilisé";
      }
    }
?>
Erreur :
Code :
1
2
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/Moncompte/www/index.php on line 23
Ce pseudo n'a jamais été utilisé
Cordialement Stéphane
snip74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 22h36   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Toujours pareil :
Citation:
Il faut afficher l'erreur mysql :
Code :
$res  = mysql_query($sql) or exit(mysql_error());
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 22h42   #9
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 193
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 193
Points : 12
Points : 12
re
moi je veut bien t'aficher tout se que tu me demande mais comment ?

Cordialement Stéphane

Citation:
Envoyé par sabotage Voir le message
Toujours pareil :
snip74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 22h56   #10
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Es-tu sûr du nom de ta table ?

si oui,
comme déjà dit par sabotage :

remplace le

Code :
$res= mysql_query($sql);
par

Code :
$res= mysql_query($sql) or die(mysql_error());
si une erreur s'affiche, essaies d'afficher la variable $sql et copie/colle la requête obtenue dans phpMyAdmin pour en vérifier l'intégrité...

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 23h15   #11
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 193
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 193
Points : 12
Points : 12
re
oui ma table et bonne la ou je pense que se n'est pas bon c'est ici :
Code :
1
2
    $base  = 'Nomdemabase_2';     // Nom de votre base
    $tb   = 'C'est ici que j'ai un gros doute';    // Nom de votre table

aprés avoir remplacé le code que tu ma dit de remplacer j'ai sa comme erreur.
Code :
Erreur de syntaxe près de '-fusion_2 WHERE psd = ''' à la ligne 1
Cordialement Stéphane

Citation:
Envoyé par ska_root Voir le message
Es-tu sûr du nom de ta table ?

si oui,
comme déjà dit par sabotage :

remplace le

Code :
$res= mysql_query($sql);
par

Code :
$res= mysql_query($sql) or die(mysql_error());
si une erreur s'affiche, essaies d'afficher la variable $sql et copie/colle la requête obtenue dans phpMyAdmin pour en vérifier l'intégrité...

snip74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 23h32   #12
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Le nom de ta table mysql n'est pas bien renseigné à la variable $tb ! (peut-être un "underscore" au lieu du "tiret" ? )

vérifies l'orthographe de ta table dans phpMyAdmin...

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 00h05   #13
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 193
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 193
Points : 12
Points : 12
Bon a force de bidouiller maintenent sa me dit sa :
Champ 'psd' inconnu dans where clause

je pense que c'est normal que j'ai se message car les services anope n'utilise pas psd mais pseudo ou autre me semble

j'ai trouvé dans la base sql de anope --> anope_ns_core

Car je vous explique mieux.

dans services.conf de anope on a un petit code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
#######################
# Configuration mySQL #
#######################
 
MysqlHost "127.0.0.1"
MysqlUser "Moncompte"
MysqlPass "Monpasse"
MysqlName "Nomdemabase_2"
MysqlSock "/tmp/mysql.sock"
MysqlPort 3306
#MysqlSecure "md5"
#MysqlRetries 10
#MysqlRetryGap 1
et dans le dossier service de anope on a un fichier tables.sql que j'ai importé dans ma 2eme base SQL.

sa créer des dossier comme sa :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    * Structure anope_bs_core
    anope_cs_access
    anope_cs_akicks
    anope_cs_badwords
    anope_cs_info
    anope_cs_levels
    anope_cs_ttb
    anope_hs_core
    anope_info
    anope_ms_info
    anope_ns_access
    anope_ns_alias
    anope_ns_core
    anope_ns_request
    anope_os_akills
    anope_os_core
    anope_os_exceptions
    anope_os_news
    anope_os_sglines
    anope_os_sqlines
    anope_os_szlines
Et quand je clic sur anope_ns_core j'ai un menu en haut avec :
Textes complets nc_id / display / pass / email / icq / url / flags / language / accesscount / memocount / memomax / channelcount / channelmax / greet / active

dans le Textes complets nc_id j'ai des chiffres pour chaque user ex :
1 pseudo1
2 pseudo2
3 pseudo3
4 pseudo4
etc...5 ...

dans display j'ai tout les pseudos

dans pass [BLOB - 9o]

etc... email = mail de luser breff bla bla bla

Voila j'espére que cette explication serra mieux que la précédente.


pour finir dans mon index.php
j'ai mis comme sa :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
  // VARIABLES DE CONNEXION
    $host  = 'localhost';    // Votre identifiant
    $user  = 'Login';     // Votre identifant 
    $mdp  = 'Monpass';     // Votre mot de passe
    $base  = 'matable_2';     // Nom de votre base
    $tb   = 'anope_ns_core';    // Nom de votre table 
 
  // ON SE CONNECTE ET ON SELECTIONNE LA BASE
      mysql_connect($host, $user, $mdp)
      or die("Impossible de se connecter au serveur ".$host);
    mysql_select_db($base)
      or die("Impossible de connecter à la base ".$base);
 
  // ON VERIFIE SI LE psd EST DANS LA TABLE
$sql  = "SELECT COUNT(*) AS nbr FROM ".$tb." WHERE psd = '".$_POST['psd']."'";
    $res= mysql_query($sql) or die(mysql_error());
    $alors  = mysql_fetch_assoc($res);
 
  // UNE BOUCLE POUR INFORMER L'UTLISATEUR
    if(isset($_POST['psd'])){
      if(!($alors['nbr'] == 0)){
        echo "Ce pseudo est déjà utilisé !";
      }else{
        echo "Ce pseudo n'a jamais été utilisé";
      }
    }
?>
avec se code j'ai cette erreur :
Citation:
Champ 'psd' inconnu dans where clause
et avec la ligne d'origine j'ai sa comme erreur:

Code :
$res= mysql_query($sql);
Citation:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/Moncompte/www/index.php on line 18
donc voila encore une fois j'espére que j'ai était précis

donc la question et faut il que je change PSD de ma page index.php par pseudo ?


Cordialement Stéphane
snip74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 00h51   #14
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Cette documentation devrait aider...

http://wiki.anope.org/index.php/Tech...s:MySQL:Scheme

Je pense donc au champ "user"...

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h44.


 
 
 
 
Partenaires

Hébergement Web