Bonjour/Bonsoir,
je vais donc tenter de faire un petit tutoriel de manière simple pour commencer :-)
Donc pourquoi ce code ?
Combien de fois nos logiciel ne plantent-ils pas ? Combien de fois on aimerais un petit mot d'encouragement d'un utilisateur de nos logiciels ? Etc etc....
Ce petit code a donc pour but de faire la liaison (grand mot pour si peu) entre votre logiciel (VB6, Csharp, Cpp, ou autres) et votre server ...
Tout bêtement il écrit sur votre server FTP, mais sans pour autant donner les accès à quelqu'un et sans upload ni rien.
Que fais ce code ?
Il se base sur le GET en PHP, et récupère et traite l'information, vérifie si la variable est remplie et l'écris dans un fichier prédéfini.
Avantage du code ?
- Rapide et stable.
- Pas de code d'accès.
- Facile à mettre en place.
Inconvénient du logiciel ?
- Ne gère pas encore le multiple-lignes.
il fais un retour automatique a la fin du message mais si on inclus des /n ou chr(10) chr(13) dans le message il l'écrira en brute et ne l’interprétera pas.
Donc le code PHP :
Cliquez pour révéler
Cliquez pour masquer
<html>
<head></head>
<title>Coms</title>
<body>
<?php
// Réceptionne les variables "URL" et le stock en variables
$message = $_GET['msg'];
$fichier = $_GET['fic'];
// On déclare l'extension obligatoire du fichier, peux supprimer cette ligne
// pour pouvoir le faire directement dans le nom de fichier
// mais alors modifier la ligne $handle pour enlever .$ext
$ext = '.txt';
// On enleve les espace a la fin et debut des deux variable
$message = trim($message);
$fichier = trim($fichier);
// Vérifie que les deux champs contienne quelque chose
if($message!= '' && $fichier!= '')
{
// Déclare ou le fichier sera mis
$handle = fopen('./'.$fichier.$ext,'a+');
// Ecris le fichier à l'endroit prévu avec son contenu
fwrite($handle, $message."\r\n");
// Ferme l'ecriture
fclose($handle);
// Préviend que l'action a été faite correctement
echo 'Ecriture réussie';
}
else{echo 'Une des variables est vide';}
?>
</body>
</html>
Code d'utilisation en VB6 :
En début de code :
Cliquez pour révéler
Cliquez pour masquer
Private WithEvents WebCom As WebBrowser
Attribute WebCom.VB_VarHelpID = -1
Ensuite il vous faut, Un bouton appelé Cmd_Send et deux textbox appelé TxtEmail et TxtPseudo ainsi qu'un combobox appelé Combo_Com.
Cliquez pour révéler
Cliquez pour masquer
Private Sub Cmd_Send_Click()
Dim TabMsg() As String
Dim Coms As String
Set WebCom = Controls.Add("Shell.explorer.2", "WebCom", Frm_Base)
With WebCom
.Visible = False
.Top = 720
.Left = 120
.Width = 2175
End With
TabMsg = Split(TxtMsg, vbCrLf)
For i = LBound(TabMsg) To UBound(TabMsg)
WebCom.Navigate "http://zartus.goldzoneweb.info/Projets/GBB/" & Combo_Com.Text & "/Com.php?msg=" & TabMsg(i) & "&fic=" & TxtPseudo
Coms = WebCom.LocationName: DoEvents
Sleep (1000)
Next i
Sleep (1000)
WebCom.Navigate "http://zartus.goldzoneweb.info/Projets/GBB/" & Combo_Com.Text & "/Com.php?msg= &fic=" & TxtPseudo
Sleep (1000)
WebCom.Navigate "http://zartus.goldzoneweb.info/Projets/GBB/" & Combo_Com.Text & "/Com.php?msg=" & TxtEmail & "&fic=" & TxtPseudo
Sleep (1000)
WebCom.Navigate "http://zartus.goldzoneweb.info/Projets/GBB/" & Combo_Com.Text & "/Com.php?msg=------------------------------------------------------------&fic=" & TxtPseudo
Sleep (1000)
Erase TabMsg
Me.Controls.Remove "WebCom"
End Sub
Pour la seconde partie du code n'est pas commentée, assez simple donc je ne pense pas que cela sois nécessaire, j'explique tout de même :-)
Vu qu'il ne gère pas le multiple-lignes je déclare un tableau et une variable qui reprendra le locationname du webbrowser par la suite.
Ensuite vu que j'ai mis les lignes en début de code, je crée un contrôle webbrowser, pourquoi le créer plutôt que d'en déposer un et le réutiliser ? Simplement car ca prendrais de la mémoire inutile et de plus un webbrowser embarquer sur la form ne gère pas plusieurs commentaires (une fois envoyer un avec il enverra toujours le même qu'il a en mémoire, alors qu'un qu'on créer et détruit sa mémoire se remet a zero à chaque fois)
Ensuite un petit split, pour pouvoir faire un message avec plusieurs lignes et pour finir un for qui va écrire chaque ligne du tableau dans le fichier sur le server avec les paramètres qui ont été donner.
la ligne :
WebCom.Navigate "http://zartus.goldzoneweb.info/Projets/GBB/" & Combo_Com.Text & "/Com.php?msg=" & TabMsg(i) & "&fic=" & TxtPseudo
Explication pas à pas :
- Il prend le contrôle WebCom et va à l'adresse mise donc http://zartus.goldzoneweb.info/Projets/GBB/
- Combo_Com.Text ici sers a stipuler le dossier, sur mon projet j'avais un combobox avec Bug / Commentaire / Suggestions. et sur mon server il y avais donc 3 dossier + ma page Com.php
- Ensuite il fais l'url avec le message correspondant a la cellule du tableau.
- Pour fini il stock le tout dans un fichier qui sera appeler comme le pseudo de la personne qui écris (plus mention .txt qui se trouve dans Com.php)
Le sleep est pour donner le temps à la page de faire l'action, sinon il peut s'emmêler.
Les lignes suivante en faite écrive a la fin du fichier : son pseudo, a la ligne, son e-mail (car j'ai un textbox pour le pseudo et un pour l'e-mail) et un séparateur (car si la même personne renvoie un commentaire s'il en à déjà envoyer un cela le mettra a la suite)
Voila voila ^^
Pour une utilisation plus simplement dites, il suffit que votre programme aie un contrôle sur une page web et lui dise d'allez sur http://www.votresite.com/Com.php?msg=vo ... mdufichier
Et il écrira "votremessage" (les espaces sont autorisé lol) dans nomdufichier.txt a la racine de votre server.
soyez indulgent cela reste mon premier :-)
Bonne journée/soirée
Kozengod