Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 19/12/2011, 09h48   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 54
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 54
Points : 6
Points : 6
Par défaut Vérification d'une variable

Bonjour,

J'aimerais vérifier le contenu d'une variable.

Cette variable est définie comme integer dans ma db et je voudrais afficher un message d'erreur sur ma page php, cela fonctionne très bien pour tous les caractères mais lorsque je tape " (double quote suivi d'autres caractère spéciaux), j'obtiens un message d'erreur SQL.

Voici mon idée:

Code :
1
2
3
4
 
if ($val like '$"$') {
echo "<br/><p>Error</p>";
}
Quel serait la bonne requête dans mon cas?

Merci
fra7878 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 10h01   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par fra7878 Voir le message
J'aimerais vérifier le contenu d'une variable.

Cette variable est définie comme integer dans ma db
Euh... tu veux vérifier en PHP si ta variable est bien un entier ?
Utilise is_int().
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 10h07   #3
Membre régulier
 
Étudiant
Inscription : octobre 2010
Messages : 92
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 92
Points : 78
Points : 78
Bonjour,

Pour tester si ta variable est un entier :
is_int().
Pour tester si ta variable existe :
isset().
Pour tester si ta variable est vide :
empty().
zeclad01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 12h15   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 671
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 671
Points : 5 404
Points : 5 404
Et sinon, depuis PHP 5.2, il ya les fonctions de filtrage, qui permettent entre autres de valider des formats.
Les filtres PHP : une fonctionnalité importante de sécurité
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 15h56   #5
Invité régulier
 
Inscription : janvier 2011
Messages : 54
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 54
Points : 6
Points : 6
J'ai testé la fonction is_int () sans succès:

Code :
1
2
3
4
5
 
if (!is_int ($val))
{
echo "<br/><p>ERROR</p>";
}
J'obtiens le message d'erreur SQL suivant lorsque j'entre &é"' (les touches 1,2,3,4) pour ma valriable $val:

Code :
1
2
 
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
Que pourrais-je faire pour adapter mon code et avoir un message d'erreur PHP?

Merci
fra7878 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 16h26   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
C'est une fonction PHP ; ce n'est pas à mettre dans une requête SQL !

Puisque ta colonne est de type entier, ce n'est pas ce qu'il y a dans la table qu'il faut que tu testes mais les variables que tu tuilises dans les requêtes que tu envoies au serveur.

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
if(is_int($var))
{
	$sql = "
		SELECT nom, prenom
		FROM personne
		WHERE id = $var
	";
	$result = mysql_query($sql);
}
else
{
	// Traitement de l'erreur
}
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 16h28   #7
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour,

Un truc du genre :
Code :
1
2
3
4
5
6
7
8
9
10
 
 
if (is_int($_POST['ma_variable'])) {
{
//insertion requête
}
else
{
echo 'Ce n'est pas un entier';
}

EDIT : Cinephil a été + rapide que moi
heretik25 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 20h06.


 
 
 
 
Partenaires

Hébergement Web