[RESOLU] Apostrophes et guillemets requête

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 : [RESOLU] Apostrophes et guillemets requête

Re: Apostrophes et guillemets requête

par ChrisCMoi62 » 28 mai 2020, 09:47

Bonjour, j'ai trouvé la solution, il suffisait de changer ma reqête, je lap ublie pour vous faire voir :
Encore merci à vous pour votre aide

Nouvelle reqûete
$req = $bdd->query('SELECT * FROM `livres` WHERE `titre` LIKE "%'.$search.'%" OR `auteur` LIKE "%'.$search.'%"');

Ancienne requête :
$req = $bdd->query("SELECT * FROM livres WHERE titre LIKE '%$search%' OR auteur LIKE '%$search%'");

Re: Apostrophes et guillemets requête

par Figuedi » 27 mai 2020, 19:52

quand ut dis que cela ne fonctionne pas, c'est un message d'erreur ? une page vierge ?
si tu teste en fixant ta variable $search est ce que cela fonctionne ?

Re: Apostrophes et guillemets requête

par ChrisCMoi62 » 27 mai 2020, 08:57

Bonjour et merci à vous pour vos réponses, hélas j'en suis toujours au même point, j'ai testé vos idées mais ça ne fonctionne malheureusement pas, je redonne mon code :
première page :
<!--Formulaire-->
<form action="mediatheque-result" method="post">
<div class="wrap">
<div class="search">
<input type="text" class="searchTerm" id="search" name="search" placeholder="Votre recherche..." value="'.$search.'">
<button type="submit" class="searchButton">
<i class="fa fa-search"></i>
</button>
</div>
</div>
</form>
<!--/formulaire-->

2e page :
<!--Traitement formulaire-->
<?php
if(empty($_POST) || empty($_POST['search']))
{
header('Location: mediatheque-livres2');
}
else
{
extract($_POST);
}
?>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mabase;charset=utf8', 'user', 'mdp');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>

<h3>Resultat pour <? echo $search;?> : </h3>
<br />
<?
try{
$bdd = new PDO('mysql:host=localhost;dbname=^mabase', 'user', 'mdp') or die(print_r($bdd->errorInfo()));
$bdd->exec('SET NAMES utf8');
}
catch(Exeption $e){
die('Erreur:'.$e->getMessage());
}
$req = $bdd->query("SELECT * FROM livres WHERE titre LIKE '%$search%' OR auteur LIKE '%$search%'");

if($req->rowCount()>0)
{
while($data = $req->fetch(PDO::FETCH_OBJ))
{
$titre = $data->titre;
$auteur = $data->auteur;
$reference = $data->reference;
$dispo = $data->dispo;
?>
<form method="post" enctype="multipart/form-data" action="mediatheque-livres-reservation">
<?
$dispo = $dispo;
if ($dispo == '2') { $message =" : ---- EMPRUNTE ----";
}
?>
<input type="text" name="search" style="width:100%; border:none" value="réf : (<? echo $reference ?>) - <? echo str_replace("'", '5',$titre) ?> - <? echo $auteur ?> <? echo $message ?>" readonly="readonly">

<button class="button">Réserver</button>
</form>
<!--/Traitement formulaire-->

Re: Apostrophes et guillemets requête

par Figuedi » 26 mai 2020, 21:52

Chez moi cela fonctionne parfaitement, j'ai juste une page avant pour choisir le produit

<?php
require('_connexion_pdo.php');


if (!isset ($_POST['produit'])){$produit="%";}
else $produit=$_POST['produit'];
if (!isset ($_POST['search'])){$search="%";}
else $search=$_POST['search'];
echo'<h1>'.$produit.'</h1>';
echo '<div>';
    echo'<a href="./lire.php">Choix du type de machine</a>';
    echo'<form action="toto.php" method="POST">';
        echo '<input type="text" name="search" value="'.$search.'" ;/>';
        echo '<input type="checkbox" name="produit" value="'.$produit.'" checked style.visibility="hidden";/>';
        echo'<input type="submit" name="submit" value="cherche";/>';
    echo'</form>';
echo'</div>';
$query = "SELECT *from vividparts where Product_Name='$produit' AND Part_Description like '%$search%'";
//echo "SELECT *from vividparts where Product_Name='$produit' AND Part_Description like '%$search%'";

try {
    $pdo_select = $pdo->prepare($query);
    $pdo_select->execute();
    $NbreData = $pdo_select->rowCount();
    $rowAll = $pdo_select->fetchAll();      // tout dans le meme tableau
}
catch (PDOException $e){ echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }
//affichage en fonction du resultat de la division Euclidiene "modulo" X%Nbcol si =col-1 tu es a la derniere colone si 0 tu es sur l premiere
$nbcol=1;
echo '<table id="u1">';
                       
for($i=0;$i<$NbreData;$i++){
	$valeur1=$rowAll[$i]['Part_Number'];
    $valeur2=$rowAll[$i]['Part_Description'];
    if($i%$nbcol==0) echo '<tr class="ligne">';
	echo '<td>'.$valeur1.'</td><td>'.$valeur2.'</td>';
    if($i%$nbcol==($nbcol-1)) echo '</tr>';
}
echo '</table>'; 

Re: Apostrophes et guillemets requête

par Figuedi » 26 mai 2020, 21:21

chez moi ça fonctionne comme ça
$query = "SELECT *from vividparts where Product_Name='$produit' AND Part_Description like '%$search%'";

Re: Apostrophes et guillemets requête

par Figuedi » 26 mai 2020, 20:38

j'y connais surement moins que vous mais j'utilise régulièrement un echo en lieu et place de la query pour voir si les paramètres passent bien comme je le veux

Re: Apostrophes et guillemets requête

par LGV » 26 mai 2020, 20:03

Bonjour,

Ça donne quoi avec ça ?

$req = $bdd->query('SELECT * FROM livres WHERE titre LIKE \'%'.$search.'%\' OR auteur LIKE \'%'.$search.'%\' ');

Apostrophes et guillemets requête

par ChrisCMoi62 » 26 mai 2020, 16:47

Bonjour,
je galère avec ma requête qui n'affiche pas les apostrophes ni les guillemets,
j'ai créé un moteur de recherche sur la 1ère page et le code ci-dessous sur ma 2e page, j'ai tenté avec htmlspecialchars, et str_replace pour essayer de contourner le problème mais rien n'y fait, j'en ai marre, si quelqu'un pouvait m'aider ça serat super.
Merci d'avance



<h3>Resultat pour <? echo $search;?> :</h3>
<br />
<?
try{
$bdd = new PDO('mysql:host=localhost;dbname=dbname', 'user', 'mdp') or die(print_r($bdd->errorInfo()));
$bdd->exec('SET NAMES utf8');
}
catch(Exeption $e){
die('Erreur:'.$e->getMessage());
}
$req = $bdd->query("SELECT * FROM livres WHERE titre LIKE '%$search%' OR auteur LIKE '%$search%'");

if($req->rowCount()>0)
{
while($data = $req->fetch(PDO::FETCH_OBJ))
{

$titre = $data->titre;
$titre = html_entity_decode($titre);
$search = html_entity_decode($search);

$auteur = $data->auteur;
$reference = $data->reference;
$dispo = $data->dispo;
?>

<form method="post" enctype="multipart/form-data" action="mediatheque-livres-reservation">
<?
$dispo = $dispo;
if ($dispo == '2') { $message =" : ---- EMPRUNTE ----";
}
?>
<input type="text" name="search" style="width:100%; border:none" value="réf : (<? echo $reference ?>) - <?php echo $titre ?> - <? echo $auteur ?> <? echo $message ?>" readonly="readonly">

<button class="button">Réserver</button>
</form>