Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1807 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Projet de fin d'année. (Java,Html,MySQL,PHP)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Projet de fin d'année. (Java,Html,MySQL,PHP)

n°2211454
Aerowiel
Posté le 23-11-2013 à 17:41:16  profilanswer
 

Bonjour,

 

Je suis un nouveau membre du forum et j'ai trouvé votre site car un ami me l'a conseillé. Je suis en Terminale actuellement et je compte rentrer dans une école de Game Designer/Web Designer l'année prochaine, l'entrée dans cette école nécessite un exposé d'un de nos projets personnels afin de prouver notre implications et notre envie d'intégrer l'école. J'ai donc décidé de créer un launcher pour un jeu (minecraft en l’occurrence du fait que ses codes sources sont publiques.) avec une petite difficulté c'est que j'ai pour projet de remplacer le système d'authentification officiel pour y intégrer mon propre système (les membres s'inscriront sur un site et se logeront avec les identifiants du site.) /!\ IMPORTANT /!\
J'ai souscris à un compte prenium afin d'avoir ACCES a mes données SQL et ne pas être obligé de passer par leur bouton PhPmyadmin

 

Mon launcher contiendra donc :
du Java (Création du launcher), EN COURS
du PHP et MySQL (pour créer la base d'authentification perso), BLOQUE
du HTML (création de page d’accueil intégrable au launcher). EN ATTENTE

 


Je vais donc directement vous exposer mes problèmes, au fur et à mesure, avec tout les détails de mon avancés et j'éditerai ce sujet pour pas faire de double poste :

 

J'ai donc commencé avec un code source en travaillant sur Eclipse et avec un hébergeur web possédant un FTP (Hostinger France en l’occurrence) donc là j'ai suivi des guides et j'ai reussi à imposer à mon launcher une version du jeu spécifique (antérieur à la version officiel).
Je posséde donc un launcher qui télécharge la version du jeu directement à part de mon hébergeur web (que j'édite avec FileZila).

 

Je me suis donc intéressé à la deuxième étapes qui est de remplacer le système d'authentification officiel avec mon serveur d'authentification perso, j'ai téléchargé WAMP (http://www.wampserver.com/) afin d'utiliser PhPmyadmin. Ma question pour le moment est donc : Puis-je remplacer le système d'authentification et le remplacer par le miens ? Voici ou on abouti mes recherches : http://wiki.vg/Protocol_Encryption#Authentication
il semble que le script soit celui-ci

 

PS : Je tiens à préciser que je suis novice et qu'il me faut absolument me lancer dans mon projet pour rentrer dans le bain ! Je tiens vraiment à l'avoir fini avant la fin de l'année et je pourrai y mettre beaucoup de temps libre, en aucun cas je vous demande de le faire à ma place mais juste de m'éclairer sur la démarche à suivre.

 

Merci d'avance à vous tous,

 

Aerowiel.


Message édité par Aerowiel le 24-11-2013 à 11:08:04
mood
Publicité
Posté le 23-11-2013 à 17:41:16  profilanswer
 

n°2211477
Aerowiel
Posté le 24-11-2013 à 10:57:37  profilanswer
 

J'suis entrin de bosser sur la conception du script de la page de login mais j'ai beaucoup de mal à configurer des chemins d'accés à mon SQL :(.

 

Voilà la gueule du prog

 

<?php
echo"<h1>S'inscrire</h1>";

 

if(isset($_POST['submit']))
{
 if(mysql_num_rows(mysql_query("SELECT * from users WHERE username='" . $_POST['username'] . "'" )) == 1){
  echo "Oops! Username is already in use!";
}
else if($_POST['password'] != $_POST['retype-password']){
  echo "Oops! The two entered passwords don`t match!";
}
else if(strlen($_POST['username']) > 15)
{
  echo "Oops! Username is too long!";
}
else if(strlen($_POST['username']) < 6){
  echo "Oops! Username is too short!";
}
else if(strlen($_POST['password']) > 15){
  echo "Oops! Password is too long!";
}
else if(strlen($_POST['password']) < 6){
  echo "Oops! Password is too short!";
}
else if(preg_match('/[^0-9A-Za-z]/',$_POST['username'])){
  echo "Oops! Unknown letters at username!";
}
else if(preg_match('/[^0-9A-Za-z]/',$_POST['password'])){
  echo "Oops! Unknown letters at password!";
}
else{
$query = mysql_query("INSERT into users VALUES ('".$_POST['username']."', '".sha1($_POST['password'])."')" ) or die(mysql_error());
}
{

 

$db_host = "mysql.hostinger.fr";
$db_user = "********_aero";
$db_pwd = "*****";
$db_select = "u*********_wttj";
mysql_connect($db_host, $db_user, $db_pwd, $db_select);
}
}

 

?>

 


<form method="POST" action="register.php">
<p>Nom d'utilisateur :</p>
<input type="text" name="username"/>
<p>Mot de passe :</p>
<input type="password" name="password"/>
<p>Repetez mot de passe :</p>
<input type="password" name="repeatpassword"/><br/>
<input type="submit" name="submit" value="valider"/>

 


</form>

 

Et quand je le test ça donne ça :

 

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 6

 

Notice: Undefined index: retype-password in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 9
Oops! The two entered passwords don`t match!
Warning: mysql_connect(): in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 40

 

Warning: mysql_connect(): in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 40

 

Et le module d'inscription que l'on voit à la fin du script est censé die or là il se place juste aprés les 4 lignes d'erreur !


Message édité par Aerowiel le 24-11-2013 à 11:04:56
n°2211478
flo850
moi je
Posté le 24-11-2013 à 11:09:16  profilanswer
 

1/ il faut te connecter avant de faire la moindre requete
2/ il FAUT utiliser des requetes préparées. Ce n'est pas plus compliqué et ça te protégeras gratuitement contre les injections SQL  


---------------

n°2211479
Aerowiel
Posté le 24-11-2013 à 11:58:22  profilanswer
 

Alors suite à la lecture de ta réponse flo850 et à la vue de ce message dans mon pannel de connection à distance :

 

If you wish to connect to our MySQL server form your computer or from some other server use this section to add remote IP addresses that will connect to our MySQL server.

 

Our MySQL server public IP address is: 185.28.20.2. Use this IP address for your PHP scripts.

 

J'ai modifié mon script de cette façon :

 

<?php
echo"<h1>S'inscrire</h1>";

 

if(isset($_POST['submit']))
{
{
$db_host = "185.28.20.2.";
$db_user = "u********_aero";
$db_pwd = "*******";
$db_select = "u********_wttj";
mysql_connect($db_host, $db_user, $db_pwd, $db_select);
}

 

if(mysql_num_rows(mysql_query("SELECT * from users WHERE username='" . $_POST['username'] . "'" )) == 1){
  echo "Oops! Username is already in use!";
}
else if($_POST['password'] != $_POST['retypepassword']){
  echo "Oops! The two entered passwords don`t match!";
}
else if(strlen($_POST['username']) > 15)
{
  echo "Oops! Username is too long!";
}
else if(strlen($_POST['username']) < 6){
  echo "Oops! Username is too short!";
}
else if(strlen($_POST['password']) > 15){
  echo "Oops! Password is too long!";
}
else if(strlen($_POST['password']) < 6){
  echo "Oops! Password is too short!";
}
else if(preg_match('/[^0-9A-Za-z]/',$_POST['username'])){
  echo "Oops! Unknown letters at username!";
}
else if(preg_match('/[^0-9A-Za-z]/',$_POST['password'])){
  echo "Oops! Unknown letters at password!";
}
else{
$query = mysql_query("INSERT into users VALUES ('".$_POST['username']."', '".sha1($_POST['password'])."')" ) or die(mysql_error());
}

 


}

 

?>

 


<form method="POST" action="register.php">
<p>Nom d'utilisateur :</p>
<input type="text" name="username"/>
<p>Mot de passe :</p>
<input type="password" name="password"/>
<p>Repetez mot de passe :</p>
<input type="password" name="retypepassword"/><br/>
<input type="submit" name="submit" value="valider"/>

 


</form>

 

J'ai placé le module de connexion au serveur MySQL avant le stockage mais ça parait encore faux... Pour preuve je reçois encore ça sur ma page PHP :
Warning: mysql_connect(): Host '92.149.60.127' is not allowed to connect to this MySQL server in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 11

 

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 14
No database selected

 

Il me dit ''No database selected'' alors qu'on voit clairement sur mon script que j'ai défini ou la chercher...

 

Je me suis dis aussi en voyant que cet ''host'' n'a pas le droit d'accéder à MySQL que je pourrai tester avec l'adresse d'host que m'a donné Hostinger j'ai donc remplacer l'ip par => mysql.hostinger.fr

 

Et ça me donne cette erreur cette fois :
Warning: mysql_connect(): in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 11

 

Warning: mysql_connect(): in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 11

 

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\register.php on line 14
No database selected

 

Je ne comprend pas cette erreur : ''Warning; mysql_connect"

 

Aussi j'ai entendu parlé d'un nouveau mysql_connect () qui se remplace par mysqli_connect () , or quand je le remplace dans mon script NotePad++ il ne reconnait pas l'argument... (affiché en gris)

 


Message édité par Aerowiel le 24-11-2013 à 12:06:27
n°2211489
flo850
moi je
Posté le 24-11-2013 à 15:55:35  profilanswer
 

Tu executes ton code depuis ton pc perso , alors que le serveur mysql n'est vraisemblablement accessible que depuis un site hébergé chez eux  
 
la coloration syntaxique de notepad n'a pas grand chose à voir avec ce qui est supporté et ne l'est pas. Ce n'est qu'une indication


---------------

n°2211492
Aerowiel
Posté le 24-11-2013 à 17:24:35  profilanswer
 

Je suis donc censé mettre mon login sur une page hebergé chez eux ?

n°2211493
flo850
moi je
Posté le 24-11-2013 à 17:33:50  profilanswer
 

Tout ton code PHP  doit être chez eux


---------------

n°2211495
Volkhen
Posté le 24-11-2013 à 17:52:16  profilanswer
 

flo850 a écrit :

1/ il faut te connecter avant de faire la moindre requete
2/ il FAUT utiliser des requetes préparées. Ce n'est pas plus compliqué et ça te protégeras gratuitement contre les injections SQL  


J'ajouterais: utiliser bcrypt pour hasher les mots de passe et non sha1 (et ne mettre aucune limite au mot de passe utilisable).


---------------
Main/Alt1/Alt2/Alt3
n°2211510
Aerowiel
Posté le 24-11-2013 à 22:46:23  profilanswer
 

D’abord merci de votre aide, voici là ou j'en suis :
 
 
Bonsoir,
 
Veuillez utiliser les bons identifiants MySQL:
Adresse ip MySQL distant: ***.**.**.*
Utilisateur: u********3_aero
Nom de la base de données: u********_wttj
 
Veuillez utiliser les bons identifiants MySQL pour que vous puissiez vous connecter à votre base de données à distance.
 
Veuillez ajouter l'adresse ip de votre ordinateur dans la section "MySQL distant", vous ne l'avez pas fait pour le moment.
 
Si vous avez d'autres questions, n'hésitez pas à nous contacter à nouveau.
Merci d'avoir choisi d'utiliser nos services.
 
Cordialement
Nacim C.
 
Département d'assistance client
http://www.hostinger.fr
 
Voici la réponse du support, apparement mon script n'arrive pas à entrer dans leur base mySQL parce que j'ai pas mis mon IP mais je ne vois pas ou la mettre dans mon panel je suis allé dans la section mais il me propose juste d'ajouter un ''Host'' + ''Nom de DB'' or j'ai esseyé de mettre mon ip en host mais ça change rien.
Dois-je indiquer au script quelle ip utiliser ? Si oui comment ?

n°2211555
basicsolut​ions
solutionpour la vidéosurveilla
Posté le 25-11-2013 à 12:23:30  profilanswer
 

Bonjours,
D’après la consultation de votre gueule de programme  je confirme la réponse de flo850 car il faut tjr connecter avant de faire la moindre requête et de prépare les requêtes d'avance afin d’éviter toute injection sql.
 cordialement.
www.basicsolutions.ma


Message édité par basicsolutions le 25-11-2013 à 12:24:43
mood
Publicité
Posté le 25-11-2013 à 12:23:30  profilanswer
 

n°2211562
David Bori​ng
Posté le 25-11-2013 à 12:46:55  profilanswer
 

Et sinon, tu dois mettre tes cours de php à la poubelle.
Cela fait plusieurs années que mysql_connect n'est plus employée.
 
Quitte à apprendre, je te conseille de partir sur de bonne bases
http://www.amportfolio.com/knowled [...] entals-pdo

n°2211748
Aerowiel
Posté le 26-11-2013 à 18:43:58  profilanswer
 

J'ai suivi vos conseils, mon script marche (bon ya pas de mise en page mais c'est pas la priorité) j'ai donc reussi à me connecter au MySQL de Hostinger et d'y envoyer des identifiants et mon serveur les reçois :)
 
<form method="post">
<label>Pseudo: <input type="text" name="pseudo"/></label><br/>
<label>Mot de passe: <input type="password" name="passe"/></label><br/>
<label>Confirmation du mot de passe: <input type="password" name="passe2"/></label><br/>
<label>Adresse e-mail: <input type="text" name="email"/></label><br/>
<input type="submit" value="M'inscrire"/>
</form>
 
<?php
if(!empty($_POST['pseudo']))
{
 
$con=mysqli_connect("***.**.**.*","u********_aero","******","u********_wttj" );
 
$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
$passe2 = mysql_real_escape_string(htmlspecialchars($_POST['passe2']));
if($passe == $passe2)
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
 
$passe = sha1($passe);
 
mysqli_query($con,"INSERT INTO validation (pseudo, passe, email)
VALUES ('$pseudo', '$passe','$email')" );
}
 
else
{
echo 'Les deux mots de passe que vous avez rentrés ne correspondent pas…';
}
}
?>
 
Je voudrai que mon script génére le même genre de logs que ceux utilisé par Mojang (vous savez les créateurs de minecraft :P) en analysant un peu la documentation j'en ai retiré les éléments que mon script doit générer et stocker surement ?
La base de données est plus importante sur le serveur d'authentification Mojang, il faudrait donc avoir ce genre de truc dans le MySQL
-Colonne id
-Colonne Pseudo
-Colonne Email
-Colonne Nom
-Colonne ClientToken
-Colonne AccessToken
-Colonne Password (crypté biensûr)
-Colonne SelectedProfile_id
-Colonne SelectedProfile_name
-Colonne AvailableProfile_id
-Colonne AvailableProfile_name


Message édité par Aerowiel le 26-11-2013 à 20:34:06
n°2211771
flo850
moi je
Posté le 26-11-2013 à 21:27:43  profilanswer
 

non,  
non
non
non
non
 
Toutes tes requetes doivent être des requêtes préparées : http://fr.php.net/manual/fr/mysqli [...] ements.php
 
(en plus ça t'éviteras de devoir penser a mysql_escape_string)
(et que vient foutre htmlspecialchars ? )


---------------

n°2211809
Aerowiel
Posté le 27-11-2013 à 06:56:47  profilanswer
 

Merci beaucoup de prendre du temps pour me faire progresser, je reviens quand j'aurai amélioré ça^^

n°2211923
Aerowiel
Posté le 27-11-2013 à 18:14:00  profilanswer
 

J'ai lu mais j'ai beaucoup de mal à changer mon script... Pourriez-vous m'aider ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Projet de fin d'année. (Java,Html,MySQL,PHP)

 

Sujets relatifs
[Projet étudiant] Passage d'un mot dans un réseau d'effetsAide tri par selection java's cool
erreur de compilation projet ou bibliothèque introuvableactiver un bouton radio à partir d'un autre bouton radio en java
Récupération données d'un site PHPprojet excel non finalisé car limites de competences HELP HELP
C++ et procédure stockées MySqlJava - système de réservation de restaurant
[JAVASCRIPT + HTML] Problème fonction Return 
Plus de sujets relatifs à : Projet de fin d'année. (Java,Html,MySQL,PHP)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR