Il lui manque un paramètre, donc elle fonctionne pas.
Utilise Firebug, tu auras de meilleures erreurs.
Version imprimable
Il lui manque un paramètre, donc elle fonctionne pas.
Utilise Firebug, tu auras de meilleures erreurs.
Etant donné que je n'ai que des warnings j'arrive à accéder à la prochaine page web
D'accord, et bien bonne continuation.
Mais il faut que je retire ces messages tout de mêmes car ils s'affichent sur ma page web
C'est tout de même mieux que les erreurs qui s'affichent sur ta page web, dans ce sens là, elles sont meilleures :aie:
d'accord d'où l'intérêt d'utilisé firebug pour retirer les erreurs restantes, sauf si je trouve les bon parametres à rajouter n'est ce pas ?
Citation:
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\html\facture.php on line 35
- Voir : mysqli_query()
mysql_fetch_array() : NON !Citation:
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\wamp\www\html\facture.php on line 37
mysqli_fetch_array()
- Voir : mysqli_fetch_array()
Il faut TOUJOURS aller consulter la doc (Manuel PHP) : :recherch: :google:
Maintenant je n'ai plus qu'un seul message d'erreur toujours celui ci :
Warning: mysqli_query() expects at least 2 parameters, 1 given
voici le code :
Le message d'ereur se trouve au niveau des lignes écrites en rougeCode:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <?php if(isset($_POST['nom'])) $nom=$_POST['nom']; else $nom=""; if(isset($_POST['prenom'])) $prenom=$_POST['prenom']; else $prenom=""; // On vérifie si les champs sont vides // connexion à la base require_once 'login1.php'; $conn = new mysqli($hn, $un, $pw, $db); if ($conn->connect_error) die($conn->connect_error); $query = "SET NAMES utf8"; // Force l'encodage en utf-8 $result = $conn->query($query); if (!$result) die($conn->error); if ( $query = mysqli_query("select nom from login where nom = '$nom'") == true) { $row = mysqli_fetch_array($result, MYSQL_ASSOC); printf("nom : %s ", $row["nom"]); $query->close(); } if ( $result = mysqli_query("select password from login where password = '$password'")==true){ $row = mysqli_fetch_array($result, MYSQL_ASSOC); printf("password : %s", $row["password"]); $result->close(); } if ( $result = mysqli_query("select prenom from login where prenom = '$prenom'")==true){ $row = mysqli_fetch_array($result, MYSQL_ASSOC); printf("prenom : %s", $row["prenom"]); $result->close(); } $conn->close(); if (isset($_GET['message'])) { echo($_GET['message']); } else // Sinon, on affiche un message d'erreur { $message = "Identifiants incorrects."; header( 'Location: http://localhost/html/identification_facture.php?message=' . $message); echo "vous n'êtes pas autorisé à accéder aux archives des fichiers factures."; } ?> <h1><center> Facture </center></h1> <p> Les champs sont les suivants : </p> <p> Nom du client, n°client, n°facture </p> <legend>Mots clés :</legend> <fieldset> <form method="POST" action="liste_facture.php"> <center> <input type="text" name="nomclient" size="30" value="nomclient" maxlength="50"><br> <br> <input type="text" name="numclient" size="30" value="numclient" maxlength="6"><br> <br> <input type="text" name="numfacture" size="30" value="numfacture" maxlength="6"><p> le champs fichierfacture peut rester vide <p> <input type="text" name="fichierfacture" size="30" value="fichierfacture" maxlength="50"><br> <br> <input type="submit" value="Rechercher" name="Rechercher"> </center> </form> </fieldset> <img src ='carmi.png'> <br> </body> </html>
C'est écrit au moins deux ou trois fois plus haut.
J'ai suivi la doc pourtant mais je ne comprend quel parametre il me manque
http://lmgtfy.com/?q=+mysqli_query()...rs%2C+1+given+ Oh beh, y à déjà 2 millions de résultats sur cette question
Bonjour,
1/ déjà, vu ton niveau, évite de mettre plusierus instructions sur la même ligne :
à remplacer par :Code:if ( $result = mysqli_query("select password from login where password = '$password'")==true){
mysqli_query() : 2 PARAMETRES !! (ce n'est pourtant pas difficile de LIRE la doc (surtout quand elle est en français !)Code:
1
2
3
4 $query = "select password from login where password = '$password'"; $result = mysqli_query( $conn, $query ); // 2 PARAMETRES !! if ( $result ) {
2/ Je ne voudrais pas t'embrouiller mais...
quand on est "débutant", on n'utilise pas mysqli_ (à réserver uniquement à ceux qui veulent mettre à jour "à moindre frais" un ancien code mysql_),
mais PDO !
Merci pour ce coup de pouce :)
Maintenant il ne me reste plus qu'à bloquer les autres utilisateur en renvoyant un message d'erreur
lorsque je teste avec un utilisateur présent dans ma table ça fonctionne, j'accède à la page suivante
le printf me renvoi le nom et prenom de la personne.
Mais lorsque je saisi un utilisateur qui n'est pas présent dans ma table ça fonctionne aussi j'accède à la page suivante alors que ça ne devrait pas fonctionner.
le printf ne me renvoi aucune valeur.
Je pensais utiliser un message d'erreur de ce type est-ce que la syntaxe est correcte ?
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <?php if (isset($_GET['message'])) { echo($_GET['message']); } if(isset($_POST['nom'])) $identifiant=$_POST['nom']; else $nom=""; if(isset($_POST['prenom'])) $prenom=$_POST['prenom']; else $prenom=""; $query = "select nom from login where nom = '$nom'"; $result = mysqli_query( $conn, $query ); if ( $result ) { $row = mysqli_fetch_array($result, MYSQL_ASSOC); printf("nom :%s", $row["nom"]); $result->close(); } else // Sinon, on affiche un message d'erreur { $message = "nom incorrect."; header( 'Location: http://localhost/html/facture.php?message=' . $message); $result->close(); } $query = "select prenom from login where nom ='$nom' and prenom = '$prenom'"; $result = mysqli_query( $conn, $query ); if ( $result ) { $row = mysqli_fetch_array($result, MYSQL_ASSOC); //printf("prenom : %s ", $row["prenom"]); $result->close(); } else // Sinon, on affiche un message d'erreur { $message = "prenom incorrect"; header( 'Location: http://localhost/html/facture.php?message=' . $message); $result->close(); }?>
Si je saisie des valeurs ne se trouvant pas la base de donnée j'arrive tout de meme à passer comment se faisse ?
Bonjour,
Ca se faisse (;)) que $result vaut true si la requête est BONNE ou false si elle est MAUVAISE. Point.Code:
1
2 $result = mysqli_query( $conn, $query ); if ( $result )
Mais ça ne veut pas dire qu'elle renvoit des données.
Il te faut vérifier que la requête renvoit bien UN enregistrement (une ligne de résultat).
Voir : mysqli_num_rows()
Lorsque je vérifie avec un printf et que je saisisse un nom et prénom se trouvant dans la table users il me l'affiche à l'écran
il écrit sur la page suivante nom:toto prenom:titi
et lorsque je saisie un nom et prénom qui ne se trouve pas dans la table users
il m'affiche sur la page suivante nom: prenom:
Est-ce normal ?
Je ne comprensd pas du tout pourquoi il accéde a la page suivante meme si le nom et prenom ne se trouve pas dans la BD
Bonjour,
la requête renvoie null quand il n'y a pas de résultat. Il faut donc tester la valeur de retour.
Personnellement, je mettrais "close" avant "header".