[Mon premier script][Aide]

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 : [Mon premier script][Aide]

Re: [Mon premier script][Aide]

par AB » 27 oct. 2010, 01:21

Ben oui c'est ce qu'on fait habituellement :wink:
D'ailleurs on se sert de ce comptage souvent également pour indiquer le nombre de résultats correspondant à la recherche :)

Re: [Mon premier script][Aide]

par necromoine » 26 oct. 2010, 22:29

Ok ,merci pour vos réponse, pour ne pas laisser de pages vide, j'ai simplement compter le ligne qui retourne de la demande et si il est égale a 0 alors on affiche un message disant il n'y a pas de resultat a votre recherche bien non ?

Re: [Mon premier script][Aide]

par AB » 26 oct. 2010, 15:51

Il y a une différence entre modifier la requête et modifier les paramètres de recherche de la requête...

Si les paramètres de recherche sont bien protégés, et comme le dit stealth35 c'est le cas avec une requête préparée, tu n'as pas à craindre d'injection. Le cas où la requête ne trouve aucun résultat est une possibilité tout à fait normale (dans ce cas à toi d'envoyer par exemple un message d'information ou suivant les cas de faire une redirection vers une autre page...)

Re: [Mon premier script][Aide]

par stealth35 » 26 oct. 2010, 15:28

Oui normalement, mais il est possible de modifier la requete, ce qui pourrait faire apparaitre une faille typer injection Mysql.
Comment faire pour que si le nom (possesseur) indiqué dans l'URL n'est pas dans la BDD un message d'erreur apparaise.
en requête preparer t'auras pas d'injection, si on met un nom bidon ca va juste t'affiche 0 résultat

Re: [Mon premier script][Aide]

par necromoine » 26 oct. 2010, 15:23

Oui normalement, mais il est possible de modifier la requete, ce qui pourrait faire apparaitre une faille typer injection Mysql.
Comment faire pour que si le nom (possesseur) indiqué dans l'URL n'est pas dans la BDD un message d'erreur apparaise.

Re: [Mon premier script][Aide]

par stealth35 » 26 oct. 2010, 15:12

Oui, je parle bien de possesseur.
normalement il est sélectionner partir d'une liste créer en rapport avec la base non ?

Re: [Mon premier script][Aide]

par necromoine » 26 oct. 2010, 15:01

Oui, je parle bien de possesseur.

Re: [Mon premier script][Aide]

par stealth35 » 26 oct. 2010, 14:55

Oui, tout marche, le probleme du triple affichage venait de la BDD.
Reste un interrogation, comment verifié que le nom recupérer avec GET est bien dans la base de donnée ?
tu récupères pas de nom la ? (tu parles du processeur ?)

Re: [Mon premier script][Aide]

par Necromoine » 26 oct. 2010, 14:50

Oui, tout marche, le probleme du triple affichage venait de la BDD.
Reste un interrogation, comment verifié que le nom recupérer avec GET est bien dans la base de donnée ?

Re: [Mon premier script][Aide]

par stealth35 » 26 oct. 2010, 14:45

et quand tu fais ta requête sous phpmyadmin c'est OK ?

Re: [Mon premier script][Aide]

par Necromoine » 26 oct. 2010, 14:42

function my_error($errno, $error)
{
	$message = "Erreur MySQL $errno<br />$error";
	trigger_error($message, E_USER_ERROR);
}
$sql = new mysqli($serveur, $user, $password, $bdd) or my_error(mysqli_connect_errno(),mysqli_connect_error());

$stmt = $sql->prepare('SELECT nom, prix FROM jeux_video WHERE possesseur = ? AND prix <= ?');

$stmt->bind_param('si', $utilisateur, $prix_max);
$utilisateur = $_GET['possesseur'];
$prix_max = $_GET['prix'];
$stmt->bind_result($nom, $prix);
$stmt->execute() or my_error($stmt->errno,$stmt->error);

echo '<ul>';
while($stmt->fetch())
{
echo '<li>' . $nom . ' (' . $prix . ' EUR)</li>';
}
echo '</ul>';

$stmt->free_result();
$sql->close();
?>

Re: [Mon premier script][Aide]

par stealth35 » 26 oct. 2010, 14:35

y'a toujours ta boucle qui sert a rien, épure ton code :wink:

Re: [Mon premier script][Aide]

par necromoine » 26 oct. 2010, 14:29

Je n'ai pas eu le temps car j'ai essayer de refaire le code que j'ai poster mais en utilisant un formulaire et une methode POST, mais le probleme est qu'il m'affiche les resultats en ... triple.

Re: [Mon premier script][Aide]

par stealth35 » 26 oct. 2010, 13:44

Merci a vous tout de meme (nottament le line vers la gestion d'erreur)
pourtant t'as pas du tout fait la gestion comme dans le lien...

Re: [Mon premier script][Aide]

par necromoine » 26 oct. 2010, 12:37

Le code était "totalement " faux, je n'ai pas suivi un tuto et j'ai pris des infos un peu partout...
Pour ceux que sa interesse, le "bon" code est :
<?php 
$serveur = "segsgse";   // serveur
$user= "egsgegseg";         // identifiant
$password = "2esegs";         // mot de passe
$bdd = "qfqzfqzzf";      // Base de donnée
function my_error($errno, $error)
{
	$message = "Erreur MySQL $errno<br />$error";
	trigger_error($message, E_USER_ERROR);
}
$sql = new mysqli($serveur, $user, $password, $bdd) or my_error(mysqli_connect_errno(),mysqli_connect_error());
$result= $sql->query('SELECT nom, prix FROM jeux_video') or my_error($sql->errno, $sql->error);
while(($row = $result->fetch_assoc()) !== Null)
{

}
$result->free();

$stmt = $sql->prepare('SELECT nom, prix FROM jeux_video WHERE possesseur = ? AND prix <= ?');
$stmt->bind_param('si', $possesseur, $prix_max);
$possesseur = $_GET['possesseur'];
$prix_max = $_GET['prix_max'];
$stmt->execute() or my_error($stmt->errno,$stmt->error);
$stmt->bind_result($nom, $prix);
echo '<ul>';
while($stmt->fetch())
{
echo '<li>' . $nom . ' (' . $prix . ' EUR)</li>';
}
echo '</ul>';

$stmt->free_result();
$sql->close();
?>
Merci a vous tout de meme (nottament le line vers la gestion d'erreur)