Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 28/12/2011, 11h44   #1
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Par défaut Champ de recherche multiple avec php mysql

Bonjour à tous !

J'ai créer un moteur de recherche qui permet de rechercher plusieurs catégorie avec plusieurs champs.
Une erreur sql n'arrête pas d'apparaître lors de l'exécution de mon script.
S'il vous plait je demande votre assistance.

Voici l'erreur
Code :
1
2
Erreur SQL !DHEAT
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Je vous donne l'ensemble de mon code pour vous permettre une meilleure compréhension. Merci beaucoup d'avance.
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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
//recherche des résultats dans la base de données$result = mysql_query( 'SELECT prenom
if(isset($_GET['recherche'])){
extract($_GET);
$req = "SELECT `id`, `idsiteinterne`, `idsiteprovider`, `site_name`,  `adresseIP`, `service` FROM cyb_site WHERE 1=1 ";
 
//Le WHERE 1=1 permet de pas s'embeter à savoir si le WHERE a déjà été mis ou pas après dans les différents "if isset..."
//Ajout de la recherche sur le idsiteinterne s'il est renseigné
if (isset($_POST['idsiteinterne'])) $req = $req & " AND idsiteinterne LIKE '%".htmlentities(trim($_post['idsiteinterne']))."%'";
 
//Ajout de la recherche sur le idsiteprovider s'il est renseigné
if (isset($_POST['idsiteprovider'])) $req = $req & " AND idsiteprovider LIKE '%".htmlentities(trim($_post['idsiteprovider']))."%'";
 
//Ajout de la recherche sur site_name si elle est renseignée
if (isset($_POST['site_name'])) $req = $req & " AND site_name LIKE '%".htmlentities(trim($_post['site_name']))."%'  ";
 
if (isset($_POST['adresseIP'])) $req = $req & " AND adresseIP LIKE '%".htmlentities(trim($_post['adresseIP']))."%'  ";
 
if (isset($_POST['service'])) $req = $req & " AND service LIKE '%".htmlentities(trim($_post['service']))."%'  ";
 
$req = $req & " LIMIT 10";
 
 echo'<h4>Resultat de recherche</h4>';
 echo '<table>';
 echo '<tr>';
	echo '<th class="td_seach_titre">N&deg;</th>';
	echo '<th class="td_seach_titre">ID Provider</th>';
	echo '<th class="td_seach_titre">ID Interne</th>';
	echo '<th class="td_seach_titre">Etat du site</th>';
	echo '<th class="td_seach_titre">Nom du site</th>';
	echo '<th class="td_seach_titre">Adresse IP</th>';
	echo '<th class="td_seach_titre">Service</th>';
	echo '</tr>';
  echo '</table>';
 
// affichage d'un message "pas de résultats"
	//$result = mysql_query($req)
echo $result = mysql_query($req)
or die('Erreur SQL !'.$req.'<br /><b>'.mysql_error().'</b>');
 
if (mysql_num_rows($result)==0)
{
?>
    <h3 style="text-align:center; margin:10px 0;">Pas de r&eacute;sultats pour cette recherche</h3>
<?php
}
else
{
    // parcours et affichage des résultats
    while( $result = mysql_query($result))
    {
    ?>
 
 
        <div class="article-result">
<table>
			<tr>
			<td class="id"><?php echo $post->id; ?></td>
			<td class="td_seach"><a href="accueil.php?view=24&u='.$row['id'].'""><?php echo $post->idsiteinterne; ?></a></td>
			<td class="td_seach"><?php echo $post->idsiteprovider; ?></td>
			<td class="td_seach"><?php echo $post->idetatsite; ?></td>
			<td class="td_seach"><?php echo $post->site_name; ?></td>
			<td class="td_seach"><?php echo $post->adresseIP; ?></td>
			<td class="td_seach"><?php echo $post->service; ?></td>
			</tr></table>
			</table>
        </div>
    <?php
    }
}
}
?>
<div id="boxManage">
<h4>Rechercher un site</h4>
<p>Trouvez un site par son nom, sa date de cr&eacute;ation, son ID, son statut. </p>
<form method="get" action="">
          <table width="480" border="0" class="right">
 
            <tr>
              <td class="recherche_text"><label for="id_interne">ID interne</label></td>
              <td > <input type="text" name="idsiteinterne" class="recherche" id="id_interne" value="<?php if (isset($_POST['idsiteinterne']))  echo htmlentities(trim($_POST['idsiteinterne'])); ?>"></td>
            </tr>
 
            <tr>
 
              <td class="recherche_text"><label for="id_provider" >ID Provider</label></td>
              <td >
                  <input type="text" name="idsiteprovider" class="recherche" id="id_provider" value="<?php if (isset($_POST['idsiteprovider']))  echo htmlentities(trim($_POST['idsiteprovider'])); ?>"></td>
            </tr>
 
               <tr>
               <td class="recherche_text"><label for="nom_du_site">Nom du site</label></td>
              <td >
                  <input type="text" name="site_name" class="recherche" id="nom_du_site" value="<?php if (isset($_POST['site_name']))  echo htmlentities(trim($_POST['site_name'])); ?>"></td>
            </tr>
 
 <tr>
    <td class="recherche_text"> <label for="adresse_ip">Adresse IP</label></td>
              <td >
                  <input type="text" name="adresseIP" class="recherche" id="adresse_ip" value="<?php if (isset($_POST['adresseIP']))  echo htmlentities(trim($_POST['adresseIP'])); ?>"></td>
            </tr>
 
 
             <tr>
              <td class="recherche_text">Statut</td>
              <td class="seach_name" >
			  <?php
				$query = "SELECT * FROM `etat_site`";
				$result = mysql_query($query);
				echo '<SELECT  name="idetatsite"  class="recherche_select">';
				while ($row = mysql_fetch_array($result)) {
				echo '<OPTION>'.$row['etatsite'].'</OPTION>';
				}
				echo '</SELECT>';
				?>
			 </td>
            </tr>
                   <tr>
                         <td></td>
                         <td><input type="submit" name="recherche" class="recherche_submit" value="Rechercher" /></td>
            </tr>
			</table>
 
</form>
 
</div>
 
<div id="results"></div>
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 11h56   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Bonjour,
Citation:
"Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour le droit d'utiliser la syntaxe''près à la ligne 1"
Affiche la requête $req, pour voir où est l'erreur.

De plus, il est fortement recommandé d'utiliser mysql_real_escape_string() !

[edit] en PHP, la concaténation se fait avec ".", pas avec "&" :
Citation:
$req = $req & " AND...
=> $req = $req . " AND...
ou encore :
=> $req .= " AND...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 13h19   #3
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

Je pense qu tu as un autre problème : pour échapper des valeurs destinées à mysql c'est mysql_real_escape_string() et non htmlentities() (je radote )

Ensuite tu ne fais jamais un extract() sur le tableau global $_GET (brèche dans la sécurité)

Par ailleurs, pour complèter la réponse de l'ami jreaux62, il est préférable de créer ta clause where en utilisant un tableau au lieu d'un critère du genre 1 = 1 :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$where = array();
 
if (isset($_POST['idsiteinterne'])) {
   $where[] = "idsiteinterne LIKE '%".mysql_real_escape_string(trim($_POST['idsiteinterne']))."%'";
}
 
if (isset($_POST['idsiteprovider'])) {
   $where[] = "idsiteprovider LIKE '%".mysql_real_escape_string(trim($_POST['idsiteprovider']))."%'";
}
 
if (isset($_POST['site_name'])) {
   $where[] = "site_name LIKE '%".mysql_real_escape_string(trim($_POST['site_name']))."%'";
}
 
if (isset($_POST['adresseIP'])) {
   $where[]= "adresseIP LIKE '%".mysql_real_escape_string(trim($_POST['adresseIP']))."%'";
}
 
if (isset($_POST['service'])) {
   $where[] = "service LIKE '%".mysql_real_escape_string(trim($_POST['service']))."%'";
}
 
$sqlWhere = implode(' AND ', $where);
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 13h52   #4
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Merci beaucoup j'ai modifié par les sources que vous venez de me fournir mais l'erreur s'affiche toujours.

Code :
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\wamp\www\internetservices\sitemanage.php on line 60
Ligne 60

Code :
while( $result = mysql_query($result))
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 14h04   #5
Membre du Club
 
Femme Adeline
Consultant informatique
Inscription : décembre 2011
Messages : 20
Détails du profil
Informations personnelles :
Nom : Femme Adeline
Âge : 30
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : décembre 2011
Messages : 20
Points : 44
Points : 44
tu construit ta requête dans $req pourquoi tu fais un
Code php :
while( $result = mysql_query($result))
ca devrai pas plutot être:
Code php :
while( $result = mysql_query($req))

et une question si tu affiches $req avant le mysql_query il t'affiche quoi???
PtiteA2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 22h34   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonsoir,

J'ai repris tant bien que mal le code de ta page mais je n'ai pas pu terminer pour la simple et unique bonne raison que ta logique m'échappe...
J'ai joué aux devinettes :
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
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
<?php
 
if( ! isset($_GET['recherche'])) {
   return;
}
 
extract($_GET);  // qu'est ce tu récupères ici ?
 
$sql = 'SELECT id, idsiteinterne, idsiteprovider, site_name, adresseIP, service FROM cyb_site';
 
$where = array();
if (isset($_POST['idsiteinterne'])) {
   $where[] = "idsiteinterne LIKE '%".mysql_real_escape_string(trim($_POST['idsiteinterne']))."%'";
}
if (isset($_POST['idsiteprovider'])) {
   $where[] = "idsiteprovider LIKE '%".mysql_real_escape_string(trim($_POST['idsiteprovider']))."%'";
}
if (isset($_POST['site_name'])) {
   $where[] = "site_name LIKE '%".mysql_real_escape_string(trim($_POST['site_name']))."%'";
}
if (isset($_POST['adresseIP'])) {
   $where[]= "adresseIP LIKE '%".mysql_real_escape_string(trim($_POST['adresseIP']))."%'";
}
if (isset($_POST['service'])) {
   $where[] = "service LIKE '%".mysql_real_escape_string(trim($_POST['service']))."%'";
}
 
if ( ! empty($where)) {
   $sql .= ' WHERE ' . implode(' AND ', $where);
}
 
$sql .= ' LIMIT 10';
 
$exec = mysql_query($sql);
if ( ! $exec) {
   die('Erreur SQL : '.$sql.'<br /><b>'.mysql_error().'</b>');
}
 
$data = array();
while($row = mysql_fetch_assoc($exec)) {
   $data[] = $row;
}
?>
 
<h4>Resultat de recherche</h4>
<table>
   <thead>
      <tr>
         <th class="td_seach_titre">N&deg;</th>
         <th class="td_seach_titre">ID Provider</th>
         <th class="td_seach_titre">ID Interne</th>
         <th class="td_seach_titre">Etat du site</th>
         <th class="td_seach_titre">Nom du site</th>
         <th class="td_seach_titre">Adresse IP</th>
         <th class="td_seach_titre">Service</th>
      </tr>
   </thead>
   <tbody class="article-result">
   <?php if (empty($data)): ?>
      <tr>
         <td colspan="7" style="text-align:center;">Pas de r&eacute;sultats pour cette recherche</td>
      </tr>
   <?php else: ?>
      <?php foreach($data as $row): ?>
      <tr>
         <td class="id"><?php echo $row['id']; ?></td>
         <td class="td_seach"><a href="accueil.php?view=24&u=<?php echo $row['id']; ?>"><?php echo $row['idsiteinterne']; ?></a></td>
         <td class="td_seach"><?php echo $row['idsiteprovider']; ?></td>
         <td class="td_seach"><?php echo $row['idetatsite']; ?></td>
         <td class="td_seach"><?php echo $row['site_name']; ?></td>
         <td class="td_seach"><?php echo $row['adresseIP']; ?></td>
         <td class="td_seach"><?php echo $row['service']; ?></td>
      </tr>
      <?php endforeach; ?>
   <?php endif; ?>
   </tbody>
</table>
?>
Comme tu le verras je me suis arrêté juste avant <div id="boxManage">Dans tous les cas, étudies mon code, tu verras comment utiliser mysql_query()
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 15h35   #7
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Merci beaucoup.
Avec votre aide et proposition j'ai eu a reprendre tout mon code pour bien suivre chaque ligne. Cette fois je n'ai aucune erreur qui s'affiche, mais quand j'essaie de lancer une recherche aucun résultat apparaît même quand un des champs est rempli. Alors je vous donne l'ensemble de mes codes pour vous permettre la meilleure compréhension. Merci

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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php
 
mysql_connect("localhost","root") or die("erreur de connexion au serveur $host");
mysql_select_db("test_2");
 
//recherche des résultats dans la base de données
if(isset($_POST['recherche']))
{
 
	$where = array();
 
 
	if (!empty($_POST['idsiteinterne']))
		$where[] = "idsiteinterne LIKE '%".htmlentities(trim($_POST['idsiteinterne']))."%'";
 
	if (!empty($_POST['idsiteprovider']))  
		$where[] = "idsiteprovider LIKE '%".htmlentities(trim($_POST['idsiteprovider']))."%'";
 
	if (!empty($_POST['idetatsite'])) 
		$where[] = "idetatsite='".htmlentities(trim($_POST['idetatsite']))."'";
 
	if (!empty($_POST['site_name'])) 
		$where[] = "site_name LIKE '%".htmlentities(trim($_POST['site_name']))."%'";
 
	if (!empty($_POST['adresseIP'])) 
		$where[]= "adresseIP LIKE '%".htmlentities(trim($_POST['adresseIP']))."%'"; 
 
	if (!empty($_POST['service'])) 
		$where[] = "service LIKE '%".htmlentities(trim($_POST['service']))."%'";
 
	if(sizeof($where) > 0) 
	{
		//  "on peut rechercher soit par le nom, par le prénom, par adresse ainsi de suite..." 
		$sqlWhere = ' WHERE '.implode(' AND ', $where); 
 
		$req = "SELECT id, idsiteinterne, idsiteprovider, site_name, adresseIP, service, idetatsite FROM cyb_site ".$sqlWhere. " LIMIT 10;";
 
		echo '<div class="article-result">';
 
		echo'<h4>Resultat de recherche</h4>';
 
		$result = mysql_query($req) or die('Erreur SQL !'.$req.'<br /><b>'.mysql_error().'</b>');
 
		if ( mysql_num_rows( $result ) == 0 )
			{	echo '<h3 style="text-align:center; margin:10px 0;">Pas de r&eacute;sultats pour cette recherche</h3>'; }
		else
			{	
 
				echo "<table>";
					echo '<tr>';
						echo '<th class="td_seach_titre">N&deg;</th>';
						echo '<th class="td_seach_titre">ID Provider</th>';
						echo '<th class="td_seach_titre">ID Interne</th>';
						echo '<th class="td_seach_titre">Nom du site</th>';
						echo '<th class="td_seach_titre">Adresse IP</th>';
						echo '<th class="td_seach_titre">Service</th>';
						echo '<th class="td_seach_titre">Etat du site</th>';
					echo '</tr>';
 
					while($row = mysql_fetch_array($result))
					{
 
						echo "<tr>";
							echo '<td class="id">'.$row['id'].'</td>';
							echo '<td class="td_seach">'.$row['idsiteinterne'].'</td>';
							echo '<td class="td_seach">'.$row['idsiteprovider'].'</td>';
							echo '<td class="td_seach">'.$row['site_name'].'</td>';
							echo '<td class="td_seach">'.$row['adresseIP'].'</td>';
							echo '<td class="td_seach">'.$row['service'].'</td>';
							echo '<td class="td_seach">'.$row['idetatsite'].'</td>';
						echo "</tr>";
					}
 
				echo "</table>";
 
			}
 
		echo "</div>";
 
	}else{ echo 'Vous devez remplir au moins un des champs de recherche !'; }
}
 
?>
 
<div id="boxManage">
 
	<h4>Rechercher un site</h4>
 
	<p>Trouvez un site par son nom, sa date de cr&eacute;ation, son ID, son statut. </p>
 
	<form method="POST" action="">
 
	        <table width="480" border="0" class="right">
 
            		<tr>
              			<td class="recherche_text"><label for="id_interne">ID interne</label></td>
              			<td > <input type="text" name="idsiteinterne" class="recherche" id="id_interne" value="<?php if (isset($_POST['idsiteinterne']))  echo htmlentities(trim($_POST['idsiteinterne'])); ?>"></td>
            		</tr>
 
            		<tr>
              			<td class="recherche_text"><label for="id_provider" >ID Provider</label></td>
              			<td>
                  			<input type="text" name="idsiteprovider" class="recherche" id="id_provider" value="<?php if (isset($_POST['idsiteprovider']))  echo htmlentities(trim($_POST['idsiteprovider'])); ?>">
				</td>
			</tr>
 
			<tr>
				<td class="recherche_text"><label for="nom_du_site">Nom du site</label></td>
				<td >
		                	<input type="text" name="site_name" class="recherche" id="nom_du_site" value="<?php if (isset($_POST['site_name']))  echo htmlentities(trim($_POST['site_name'])); ?>">
				</td>
            		</tr>
 
 
			<tr>
				<td class="recherche_text"> <label for="adresse_ip">Adresse IP</label></td>
				<td >
					<input type="text" name="adresseIP" class="recherche" id="adresse_ip" value="<?php if (isset($_POST['adresseIP']))  echo htmlentities(trim($_POST['adresseIP'])); ?>">
				</td>
			</tr>
 
			<tr>
				<td class="recherche_text">Statut</td>
		                <td class="seach_name" >
					<SELECT  name="idetatsite"  class="recherche">
						<OPTION>active</OPTION>
						<OPTION>desactive</OPTION>
						<OPTION>suspendu</OPTION>
					</SELECT>
				</td>
			</tr>
 
			<tr>
                        	<td colspan=2>
					<input type="submit" name="recherche" class="recherche_submit" value="Rechercher" />
				</td>
			</tr>
		</table>
 
	</form>
 
</div>
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 16h25   #8
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Ligne 91 de ton code, l'attribut action est non renseigné.

Pour échapper des caractères pour mysql c'est mysql_real_escape() et non htmlentites(),
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 16h34   #9
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 82
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 82
Points : 31
Points : 31
Envoyer un message via MSN à stringman62
Action non renseigné ne pose pas de problème vu que le traitement se fait sur la même page...
Et je ne pense pas que ce soit le changement des htmlentities() en mysql_real_escape() qui sont en causes
stringman62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 16h39   #10
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Non, pour soumettre des données d'un formulaire, il faut obligatoirement renseigner l'attribut action de la balise <form>. A moins que tu le fasses en javascript.
Sinon pas de données.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 16h44   #11
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Citation:
Ligne 91 de ton code, l'attribut action est non renseigné.

Pour échapper des caractères pour mysql c'est mysql_real_escape() et non htmlentites(),
C'est modifié pour htmlentities par mysql_real_escape()
Par rapport à la ligne 91 je crois que ce n'est pas ça le problème d'autant plus que il parvient à rechercher mais le problème est qu'il ne parvient pas à retrouver
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 16h50   #12
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 82
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 82
Points : 31
Points : 31
Envoyer un message via MSN à stringman62
@rawsrc :

Depuis que je pratique PHP et que je ne fais pas de renvoi vers une autre page l'attribut action a toujours été vide sans posé de problème, l'attribut indispensable est method pour savoir si les paramètre du formulaire sont passés par URL (GET) ou sous forme de données par en-tête HTTP (POST)

'fin bref, comme je disais je ne pense pas que ça soit ça qui résoudra le problème de glodybiss4.

Le problème est que la requête ne retourne aucun résultat...
stringman62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 16h54   #13
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par stringman62 Voir le message
@rawsrc :

Depuis que je pratique PHP et que je ne fais pas de renvoi vers une autre page l'attribut action a toujours été vide sans posé de problème, l'attribut indispensable est method pour savoir si les paramètre du formulaire sont passés par URL (GET) ou sous forme de données par en-tête HTTP (POST)
au temps pour moi, habitude personnelle de ne jamais renvoyer des données sur le script qui les a générées

Citation:
Envoyé par glodybiss4 Voir le message
C'est modifié pour htmlentities par mysql_real_escape()
Par rapport à la ligne 91 je crois que ce n'est pas ça le problème d'autant plus que il parvient à rechercher mais le problème est qu'il ne parvient pas à retrouver
Tu veux dire que tu n'as aucune données en provenance de mysql_query()
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h00   #14
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Quand tu as inséré tes données, tu les as échappées avec htmlentities() ou mysql_real_escape_string()
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h03   #15
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Stringman62
Citation:
Depuis que je pratique PHP et que je ne fais pas de renvoi vers une autre page l'attribut action a toujours été vide sans posé de problème, l'attribut indispensable est method pour savoir si les paramètre du formulaire sont passés par URL (GET) ou sous forme de données par en-tête HTTP (POST)
Tu es là aussi ?!

Tu parles de données en provenance de mysql_query()

Mais c'est bien toi qui m'a beaucoup aidé je n'ai pas changé le code je l'ai gardé comme tu l'as modifié.
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h08   #16
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Non, non ce que je veux dire c'est avant d'interroger ta table, tu as bien dû insérer des données. C'est à ce moment que je souhaiterai savoir comment tu les as échappées. Et ne me dit pas que ta table est vide et que tu ne comprends pas pourquoi tu n'as pas de données en sortie, parce que la je te pends moi-même
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h18   #17
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
J'ai repris ton dernier code, essayes avec :
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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
 
mysql_connect("localhost","root") or die("erreur de connexion au serveur $host");
mysql_select_db("test_2");
 
//recherche des résultats dans la base de données
$idSiteInterne  = '';
$idSiteProvider = '';
$siteName       = '';
$adresseIp      = '';
$service        = '';
 
if (isset($_POST['recherche'])) {
   $where = array();
 
   if (isset($_POST['idsiteinterne']) && strlen($idSiteInterne = trim($_POST['idsiteinterne']))) {
      $where[] = "idsiteinterne LIKE '%".mysql_real_escape_string($idSiteInterne)."%'";
   }
 
   if (isset($_POST['idsiteprovider']) && strlen($idSiteProvider = trim($_POST['idsiteprovider']))) {
      $where[] = "idsiteprovider LIKE '%".mysql_real_escape_string($idSiteProvider)."%'";
   }
 
   if (isset($_POST['site_name']) && strlen($siteName = trim($_POST['site_name']))) {
      $where[] = "site_name LIKE '%".mysql_real_escape_string($siteName)."%'";
   }
 
   if (isset($_POST['adresseIP']) && strlen($adresseIp = trim($_POST['adresseIP']))) {
      $where[]= "adresseIP LIKE '%".mysql_real_escape_string($adresseIp)."%'";
   }
 
   if (isset($_POST['service']) && strlen($service = trim($_POST['service']))) {
      $where[] = "service LIKE '%".mysql_real_escape_string($service)."%'";
   }
 
   if (empty($where)):
      echo 'Vous devez remplir au moins un des champs de recherche !';
 
   else:
      $sql = "SELECT id, idsiteinterne, idsiteprovider, site_name, adresseIP, service, idetatsite
              FROM cyb_site
              WHERE ". implode(' AND ', $where) . "
              LIMIT 10";
 
      $result = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br /><b>'.mysql_error().'</b>'); ?>
      <div class="article-result">
         <h4>Resultat de recherche</h4>
 
         <?php if (mysql_num_rows($result) === 0): ?>
         <h3 style="text-align:center; margin:10px 0;">Pas de r&eacute;sultats pour cette recherche</h3>
 
         <?php else: ?>
         <table>
            <thead>
               <tr>
                  <th class="td_seach_titre">N&deg;</th>
                  <th class="td_seach_titre">ID Provider</th>
                  <th class="td_seach_titre">ID Interne</th>
                  <th class="td_seach_titre">Nom du site</th>
                  <th class="td_seach_titre">Adresse IP</th>
                  <th class="td_seach_titre">Service</th>
                  <th class="td_seach_titre">Etat du site</th>
               </tr>
            </thead>
            <tbody>
               <?php while($row = mysql_fetch_assoc($result)): ?>
               <tr>
                  <td class="id"><?php echo $row['id']; ?></td>
                  <td class="td_seach"><?php echo $row['idsiteinterne']; ?></td>
                  <td class="td_seach"><?php echo $row['idsiteprovider']; ?></td>
                  <td class="td_seach"><?php echo $row['site_name']; ?></td>
                  <td class="td_seach"><?php echo $row['adresseIP']; ?></td>
                  <td class="td_seach"><?php echo $row['service']; ?></td>
                  <td class="td_seach"><?php echo $row['idetatsite']; ?></td>
               </tr>
               <?php endwhile; ?>
            </tbody>
         </table>
         <?php endif; ?>
      </div>
   <?php endif; ?>
<?php 
} 
?>
<div id="boxManage">
   <h4>Rechercher un site</h4>
   <p>Trouvez un site par son nom, sa date de cr&eacute;ation, son ID, son statut. </p>
   <form method="POST" action="">
      <table width="480" border="0" class="right">
         <tr>
            <td class="recherche_text"><label for="id_interne">ID interne</label></td>
            <td><input type="text" name="idsiteinterne" class="recherche" id="id_interne" value="<?php echo htmlentities($idSiteInterne); ?>"></td>
         </tr>
         <tr>
            <td class="recherche_text"><label for="id_provider" >ID Provider</label></td>
            <td><input type="text" name="idsiteprovider" class="recherche" id="id_provider" value="<?php echo htmlentities($idSiteProvider); ?>"></td>
         </tr>
         <tr>
            <td class="recherche_text"><label for="nom_du_site">Nom du site</label></td>
            <td ><input type="text" name="site_name" class="recherche" id="nom_du_site" value="<?php echo htmlentities($siteName); ?>"></td>
         </tr>
         <tr>
            <td class="recherche_text"> <label for="adresse_ip">Adresse IP</label></td>
            <td ><input type="text" name="adresseIP" class="recherche" id="adresse_ip" value="<?php echo htmlentities($adresseIp); ?>"></td>
         </tr>
         <tr>
            <td class="recherche_text">Statut</td>
            <td class="seach_name" >
               <select  name="idetatsite"  class="recherche">
                  <option value="active">active</option>
                  <option value="desactive">desactive</option>
                  <option value="suspendu">suspendu</option>
               </select>
            </td>
         </tr>
         <tr>
            <td colspan=2><input type="submit" name="recherche" class="recherche_submit" value="Rechercher" /></td>
         </tr>
      </table>
   </form>
</div>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h46   #18
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Merci merci merci merci merci Rawsrc.
ça y est ça fonctionne.

Je remercie également Stringman62 qui m'a beaucoup vraiment beaucoup aider.
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h48   #19
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par glodybiss4 Voir le message
Merci merci merci merci merci Rawsrc.
ça y est ça fonctionne.
De rien , plus qu'un mot à rajouter OUF
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h09.


 
 
 
 
Partenaires

Hébergement Web