[C#] Faites vos requêtes MySQL en passant par le PHP

Paradise GTP

Premium
Inscription
30 Juin 2013
Messages
4 271
Réactions
4 414
Points
24 105
RGCoins
519
1484424617-header.png


Salut :tchuss:.

1484424897-1.png

Dans ce tutoriel je vais vous montrer comment faire pour effectuer vos requêtes MySQL depuis votre application mais ceci sans forcément devoir mettre les informations de votre base de données dans le code source. En effet cette chose est plutôt pénible du fait que n'importe quelle personne en suivant un tutoriel peut décompiler votre logiciel et donc avoir toutes les informations de votre base de données


Pour ce faire on utilisera un script PHP , et depuis l'application on le sollicitera.


1484425423-2.png

Donc, on va commencer par créer un script PHP qui renseignera les informations de votre base de données
pour ceci voici le code :
Pensez à bien renseigner les variables si vous les laissez vides cela ne fonctionnera pas

PHP:
<?php
session_start();
$BDD_hote = '';
$BDD_bd = '';
$BDD_utilisateur = '';
$BDD_mot_passe = '';

try{
 
 $bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_bd, $BDD_utilisateur, $BDD_mot_passe);
 $bdd->exec("SET CHARACTER SET utf8");
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}

catch(PDOException $e){
 echo 'Erreur : '.$e->getMessage();
 echo 'N° : '.$e->getCode();
}
ini_set("dislay_errors",1);
error_reporting(0);
?>

Ensuite nous allons créer notre script de requête, à savoir que pour chaque requête il vous faudra un script mais vous verrez en C# c'est plus simple ::):
Voici le squelette du code à vous de mettre votre requête suivant vos envies pour ma part c'est pour une connexion .
PHP:
<?php

// 0 = Erreur de connexion
// 1 = Connexion réussite

include("config.php");

$username = $_GET['username'];
$password = $_GET['password'];


$req = $bdd->prepare('SELECT id FROM users WHERE username = :username AND password = :password');
$req->execute(array(
    'username' => $username,
    'password' => $password));

$resultat = $req->fetch();

if (!$resultat)
{
    echo '0';
}
else
{
    echo '1';
}

?>

Je vais quand même vous expliquer un peu mon code.
PHP:
$username = $_GET['username'];
$password = $_GET['password'];

Ce sont vos variables qu'il faut modifier suivant vos requêtes il faut bien laisser en GET ce qui permettra que votre URL ressemble à ceci :
https://www.rivalslebg.fr/login.php?username=Ilesttrop&password=beau

Si par exemple c'est pour une inscription et que vous voulez demander le mail aussi vous avez par exemple cette variable à ajouter :
PHP:
$mail= $_GET['mail'];

Dans ce cas votre URL ressemblerait à ceci :
https://www.rivalslebg.fr/register.php?username=Ilesttrop&password=beau&[email protected]

Je pense que vous avez compris le principe si ce n'ait pas le cas contacter moi en MP je vous ferai une aide personnalisée ::):
PHP:
$req = $bdd->prepare('SELECT id FROM users WHERE username = :username AND password = :password');

Ici c'est simple entre les " ' " vous mettez votre requête quand vous devez utiliser une variable vous mettez deux points devant et on le définit juste comme ceci :
PHP:
    'username' => $username,
    'password' => $password));

Ensuite on va passer à la partie surement la plus compliquer.
PHP:
if (!$resultat)
{
    echo '0';
}
else
{
    echo '1';
}

Si cela affiche 0 c'est que l'action de la requête ( par exemple la connexion ) n'a pas été validée donc pour l'exemple une mauvaise information dans les logins et si cela affiche 1 tout est bon ! ::):
Eviter de mettre des accents si vous ne mettez pas 1 et 0.

1484427267-3.png


Bon voila je vais faire simple pour ici car c'est simple, je vais toujours faire pour la connexion voici l'exemple de mon design très joli...

69a53824307ad14127e06ec4453802651.png


Vous devez ajouter la bibliothèque du System.Net :
Code:
using System.Net;

Puis le code dans notre bouton :
Code:
            string Reponse = new WebClient().DownloadString("https://www.rivalslebg.fr/login.php?username=" + textBox1.Text + "&password=" + textBox2.Text);
            if (Reponse == "0")
            {
                label1.Text = "Mauvais mot de passe !";
            }

            else if (Reponse == "1")
            {
                label1.Text = "Connexion réussite";
            }

            else
            {
                label1.Text = "WTF ?";
            }

Voilà vous devez modifier l'URL comme je vous ai expliqué dans la partie PHP, et aussi pas seulement afficher dans un label je pense pas cela soit le but ::):

Voici quelques captures d'écran :


f4d3c33f5b7388dc601152939849622a.png

bb6e04d87f24baee7185dedb69633435.png


1484425630-4.png


C# :

PHP :


Merci à @Rivals

 
1484424617-header.png


Salut :tchuss:.

1484424897-1.png

Dans ce tutoriel je vais vous montrer comment faire pour effectuer vos requêtes MySQL depuis votre application mais ceci sans forcément devoir mettre les informations de votre base de données dans le code source. En effet cette chose est plutôt pénible du fait que n'importe quelle personne en suivant un tutoriel peut décompiler votre logiciel et donc avoir toutes les informations de votre base de données


Pour ce faire on utilisera un script PHP , et depuis l'application on le sollicitera.


1484425423-2.png

Donc, on va commencer par créer un script PHP qui renseignera les informations de votre base de données
pour ceci voici le code :
Pensez à bien renseigner les variables si vous les laissez vides cela ne fonctionnera pas

PHP:
<?php
session_start();
$BDD_hote = '';
$BDD_bd = '';
$BDD_utilisateur = '';
$BDD_mot_passe = '';

try{
 
 $bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_bd, $BDD_utilisateur, $BDD_mot_passe);
 $bdd->exec("SET CHARACTER SET utf8");
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}

catch(PDOException $e){
 echo 'Erreur : '.$e->getMessage();
 echo 'N° : '.$e->getCode();
}
ini_set("dislay_errors",1);
error_reporting(0);
?>

Ensuite nous allons créer notre script de requête, à savoir que pour chaque requête il vous faudra un script mais vous verrez en C# c'est plus simple ::):
Voici le squelette du code à vous de mettre votre requête suivant vos envies pour ma part c'est pour une connexion .
PHP:
<?php

// 0 = Erreur de connexion
// 1 = Connexion réussite

include("config.php");

$username = $_GET['username'];
$password = $_GET['password'];


$req = $bdd->prepare('SELECT id FROM users WHERE username = :username AND password = :password');
$req->execute(array(
    'username' => $username,
    'password' => $password));

$resultat = $req->fetch();

if (!$resultat)
{
    echo '0';
}
else
{
    echo '1';
}

?>

Je vais quand même vous expliquer un peu mon code.
PHP:
$username = $_GET['username'];
$password = $_GET['password'];

Ce sont vos variables qu'il faut modifier suivant vos requêtes il faut bien laisser en GET ce qui permettra que votre URL ressemble à ceci :
https://www.rivalslebg.fr/login.php?username=Ilesttrop&password=beau

Si par exemple c'est pour une inscription et que vous voulez demander le mail aussi vous avez par exemple cette variable à ajouter :
PHP:
$mail= $_GET['mail'];

Dans ce cas votre URL ressemblerait à ceci :
https://www.rivalslebg.fr/register.php?username=Ilesttrop&password=beau&[email protected]

Je pense que vous avez compris le principe si ce n'ait pas le cas contacter moi en MP je vous ferai une aide personnalisée ::):
PHP:
$req = $bdd->prepare('SELECT id FROM users WHERE username = :username AND password = :password');

Ici c'est simple entre les " ' " vous mettez votre requête quand vous devez utiliser une variable vous mettez deux points devant et on le définit juste comme ceci :
PHP:
    'username' => $username,
    'password' => $password));

Ensuite on va passer à la partie surement la plus compliquer.
PHP:
if (!$resultat)
{
    echo '0';
}
else
{
    echo '1';
}

Si cela affiche 0 c'est que l'action de la requête ( par exemple la connexion ) n'a pas été validée donc pour l'exemple une mauvaise information dans les logins et si cela affiche 1 tout est bon ! ::):
Eviter de mettre des accents si vous ne mettez pas 1 et 0.

1484427267-3.png


Bon voila je vais faire simple pour ici car c'est simple, je vais toujours faire pour la connexion voici l'exemple de mon design très joli...

69a53824307ad14127e06ec4453802651.png


Vous devez ajouter la bibliothèque du System.Net :
Code:
using System.Net;

Puis le code dans notre bouton :
Code:
            string Reponse = new WebClient().DownloadString("https://www.rivalslebg.fr/login.php?username=" + textBox1.Text + "&password=" + textBox2.Text);
            if (Reponse == "0")
            {
                label1.Text = "Mauvais mot de passe !";
            }

            else if (Reponse == "1")
            {
                label1.Text = "Connexion réussite";
            }

            else
            {
                label1.Text = "WTF ?";
            }

Voilà vous devez modifier l'URL comme je vous ai expliqué dans la partie PHP, et aussi pas seulement afficher dans un label je pense pas cela soit le but ::):

Voici quelques captures d'écran :


f4d3c33f5b7388dc601152939849622a.png

bb6e04d87f24baee7185dedb69633435.png


1484425630-4.png


C# :

PHP :


Merci à @Rivals

Facilement bypassable avec une redirection grace au fichier host rediregeant vers un site "pigeon" ayant comme text 1. Mais sinon bon tuto pour les débutants :p
 
Facilement bypassable avec une redirection grace au fichier host rediregeant vers un site "pigeon" ayant comme text 1. Mais sinon bon tuto pour les débutants :p

Apres comme j'ai dis c'est pas le plus sécurisé mais toujours plus que avec les id dans le code ^_^
 
Tu ne montre pas la partie phpMyAdmin ?
 
Trop facile à bypass je préfère utiliser MongoDB
 
J'y arrive pas quand je fais connexion sa me met WTF ??
 
j'ai un probleme moi sur mon site sa n'affiche pas de 0 ou de 1


Édit : problème regler
 
Dernière édition par un modérateur:
Normale que sa me redirige vers une page error 500 pourtant j'ai remplis tout les info de ma base ?
 
Normale que sa me redirige vers une page error 500 pourtant j'ai remplis tout les info de ma base ?
Active les erreurs PHP pour voir d'où vient ton problème.
Tu peux aussi nous donner ton code ici afin qu'on puisse t'aider
 
Active les erreurs PHP pour voir d'où vient ton problème.
Tu peux aussi nous donner ton code ici afin qu'on puisse t'aider
C'etais le même que celui sur la page rgcomment faire un api
 
1484424617-header.png


Salut :tchuss:.

1484424897-1.png

Dans ce tutoriel je vais vous montrer comment faire pour effectuer vos requêtes MySQL depuis votre application mais ceci sans forcément devoir mettre les informations de votre base de données dans le code source. En effet cette chose est plutôt pénible du fait que n'importe quelle personne en suivant un tutoriel peut décompiler votre logiciel et donc avoir toutes les informations de votre base de données


Pour ce faire on utilisera un script PHP , et depuis l'application on le sollicitera.


1484425423-2.png

Donc, on va commencer par créer un script PHP qui renseignera les informations de votre base de données
pour ceci voici le code :
Pensez à bien renseigner les variables si vous les laissez vides cela ne fonctionnera pas

PHP:
<?php
session_start();
$BDD_hote = '';
$BDD_bd = '';
$BDD_utilisateur = '';
$BDD_mot_passe = '';

try{

$bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_bd, $BDD_utilisateur, $BDD_mot_passe);
$bdd->exec("SET CHARACTER SET utf8");
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}

catch(PDOException $e){
echo 'Erreur : '.$e->getMessage();
echo 'N° : '.$e->getCode();
}
ini_set("dislay_errors",1);
error_reporting(0);
?>

Ensuite nous allons créer notre script de requête, à savoir que pour chaque requête il vous faudra un script mais vous verrez en C# c'est plus simple ::):
Voici le squelette du code à vous de mettre votre requête suivant vos envies pour ma part c'est pour une connexion .
PHP:
<?php

// 0 = Erreur de connexion
// 1 = Connexion réussite

include("config.php");

$username = $_GET['username'];
$password = $_GET['password'];


$req = $bdd->prepare('SELECT id FROM users WHERE username = :username AND password = :password');
$req->execute(array(
    'username' => $username,
    'password' => $password));

$resultat = $req->fetch();

if (!$resultat)
{
    echo '0';
}
else
{
    echo '1';
}

?>

Je vais quand même vous expliquer un peu mon code.
PHP:
$username = $_GET['username'];
$password = $_GET['password'];

Ce sont vos variables qu'il faut modifier suivant vos requêtes il faut bien laisser en GET ce qui permettra que votre URL ressemble à ceci :
https://www.rivalslebg.fr/login.php?username=Ilesttrop&password=beau


Si par exemple c'est pour une inscription et que vous voulez demander le mail aussi vous avez par exemple cette variable à ajouter :
PHP:
$mail= $_GET['mail'];

Dans ce cas votre URL ressemblerait à ceci :
https://www.rivalslebg.fr/register.php?username=Ilesttrop&password=beau&[email protected]


Je pense que vous avez compris le principe si ce n'ait pas le cas contacter moi en MP je vous ferai une aide personnalisée ::):
PHP:
$req = $bdd->prepare('SELECT id FROM users WHERE username = :username AND password = :password');

Ici c'est simple entre les " ' " vous mettez votre requête quand vous devez utiliser une variable vous mettez deux points devant et on le définit juste comme ceci :
PHP:
    'username' => $username,
    'password' => $password));

Ensuite on va passer à la partie surement la plus compliquer.
PHP:
if (!$resultat)
{
    echo '0';
}
else
{
    echo '1';
}

Si cela affiche 0 c'est que l'action de la requête ( par exemple la connexion ) n'a pas été validée donc pour l'exemple une mauvaise information dans les logins et si cela affiche 1 tout est bon ! ::):
Eviter de mettre des accents si vous ne mettez pas 1 et 0.

1484427267-3.png


Bon voila je vais faire simple pour ici car c'est simple, je vais toujours faire pour la connexion voici l'exemple de mon design très joli...

69a53824307ad14127e06ec4453802651.png


Vous devez ajouter la bibliothèque du System.Net :
Code:
using System.Net;

Puis le code dans notre bouton :
Code:
            string Reponse = new WebClient().DownloadString("https://www.rivalslebg.fr/login.php?username=" + textBox1.Text + "&password=" + textBox2.Text);
            if (Reponse == "0")
            {
                label1.Text = "Mauvais mot de passe !";
            }

            else if (Reponse == "1")
            {
                label1.Text = "Connexion réussite";
            }

            else
            {
                label1.Text = "WTF ?";
            }

Voilà vous devez modifier l'URL comme je vous ai expliqué dans la partie PHP, et aussi pas seulement afficher dans un label je pense pas cela soit le but ::):

Voici quelques captures d'écran :

f4d3c33f5b7388dc601152939849622a.png

bb6e04d87f24baee7185dedb69633435.png


1484425630-4.png


C# :

PHP :


Merci à @Rivals
Sinon, il existe aussi les webservices avec .NET, et là tu peux faire des API Restful très facilement. Ah et au passage, c'est peu commun de mélanger du .NET avec du PHP.
 
Facilement bypassable avec une redirection grace au fichier host rediregeant vers un site "pigeon" ayant comme text 1. Mais sinon bon tuto pour les débutants :p
Dans le cas d'une API, une redirection serait inutile, car tu n'aurais pas de token de connexion donc pas de modifications possibles vers la vraie API et donc la base de données. Un spoof avec le fichier host serait utile uniquement si l'application a juste besoin d'une authentification.
 
Retour
Haut