C# to php to mysqli

Résolu
gghitman Messages postés 9 Date d'inscription dimanche 22 décembre 2013 Statut Membre Dernière intervention 9 septembre 2016 - 9 sept. 2016 à 15:00
gghitman Messages postés 9 Date d'inscription dimanche 22 décembre 2013 Statut Membre Dernière intervention 9 septembre 2016 - 9 sept. 2016 à 17:44
Bonjour, a tous et a toute
voila mon probleme j envoie un string[] en c# a mon php

   WWW query = new WWW(Path.Url_csv_database + "?" + "name=" + Input_Name.text + "&email=" + Mail + "&csv=" + Data_csv + "&secureid=" + Path.Secure_Key);
// data est le string[] sous forme 
// prenom=jack
//nom=bob
//tel=000000000
//etc ..... 

mon code php recoi l'info et je voudrai qu' il s' insert dans ma bdd
mais dans mon code php je bloque car les valeurs arrive ou vide ou pas help me please
<?php
    include('config.php');
   include('secureFunction.php');	
    include("Key.php");	
	if($_GET['secureid'] != $SecureKey)
	{
		die("0"); // mauvaise cle secure
	}
	if(!empty($_GET['name']))
	{
		if(!empty($_GET['email']))
		{
			if(!empty($_GET['csv']))
			{
				$dataa = $_GET['csv'];
				$array = explode("\n", $dataa);
				for($i=0; $i < count($array); $i++)
				{
					$lol = explode("=",$array[$i]);
						
						mysqli_query($GLOBALS["___mysqli_ston"], "INSERT INTO gamecharacter($lol[0]) VALUES($lol[1])");
		
				}
				
	
			}
			else
			{
				die("0"); // pas de data recu
			}
			
		}
		else
		{
			die("0"); // pas email recu
		}
		
		
	}
	else
	{
		die("0"); // pas de name recu
	}

	?>			

4 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 9/09/2016 à 15:32
Bonjour,

Pour commencer...
affiche le contenu de $_GET dans ton code php
<?php
  //Affichage des erreurs PHP
   error_reporting(E_ALL);

  // affichage du contenu de $_GET
   print_r($_GET);
 
  // Tes includes....
   include('config.php');
   include('secureFunction.php'); 
   include("Key.php"); 

  // ... le reste de ton code
  //...
 
?>


Puis ...as tu essayé d'afficher, du côté de ton code c#, la valeur de ton URL ?
En faisant un truc du genre par exemple :
String url = 
Path.Url_csv_database + "?" + "name=" + Input_Name.text + "&email=" + Mail + "&csv=" + Data_csv + "&secureid=" + Path.Secure_Key;
Console.WriteLine(url); 
WWW query = new WWW(url);


Ensuite, une fois l'url récupérée via ce code (dans la fenêtre d'éxécution (ou de debugage..)) ... tu la colles dans ton navigateur web et tu regardes ce que ça fait.


Cordialement, 
Jordane                                                                 
0
gghitman Messages postés 9 Date d'inscription dimanche 22 décembre 2013 Statut Membre Dernière intervention 9 septembre 2016
9 sept. 2016 à 16:01
dans php il me met
Array
(
[name] => ####
[email] => ########
[csv] => System.String[]
[secureid] => #######)
c moi qui est mis ####

dans le navigateur idem
invalide jeton 1 pour $lol[1]
est ce que ma fonction for est correct
je suis bon en c# mais null en php
en c# la boucle for marche bien mais c pas la meme syntaxe
est ce que je separe bien les ligne de mon string[]
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
9 sept. 2016 à 17:00
Dans php il t'affiche [csv] => System.String[] ?
Donc le contenu de csv n'est visiblement pas ce à quoi tu t'attends.....
Attention en plus lorsque tu as des retours à la ligne dans les variables que tu veux transmettre en GET ... je pense que ça peut poser des problèmes.

Il semble que ce que tu essaies de faire c'est une sorte de webservice....
Je te conseille vivement dans ce cas de regarder comment fonctionne le SOAP et la transmission de données en XML ou JSON
0
gghitman Messages postés 9 Date d'inscription dimanche 22 décembre 2013 Statut Membre Dernière intervention 9 septembre 2016
Modifié par gghitman le 9/09/2016 à 17:15
en faite c' est un tableau simple . En c# et une boucle for each je peut afficher chaque ligne alors pourquoi en php je n'y arrive pas ?
je comprend pas .en faite ces donnes provienne d un fichier txt mais je veux pas envoyer le fichier alors je prend les donnees et je les envois a mon php qui lui les tranmet a ma base de donne c simple .
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
9 sept. 2016 à 17:32
Sur le papier c'est simple oui..... mais dans les faits... tu essayes de transmettre tes données via la méthode GET.....
Donc dans une URL .....

C'est un peu comme dire que tu veux transmettre une video en utilisant un pigeon voyageur ... sur le papier l'idée semble réalisable .... et puis tu t'aperçois vite que ce n'est pas la meilleur solution....

As tu fais ce que je t'ai dis ? As tu affiché ton URL dans ton code C# ??
Cela te semble correct ???
Faut peut être commencer par là non ?

Il me semble également qu'il existe une limite dans la taille des URL (2048 caractères je crois).
Je ne crois pas non plus qu'on puisse y mettre des retours à la ligne.

Une autre solution (qui t'éviterait de passer par du SOAP) serait d'utiliser la méthode POST au lieu de GET.
Tu auras sûrement moins de soucis pour envoyer les données que tu souhaites.
Regardes du côté (en c#) de : NameValueCollection
Tu as un exemple en bas de cette page : https://msdn.microsoft.com/en-us/library/debx8sh9(v=vs.110).aspx

.
0
gghitman Messages postés 9 Date d'inscription dimanche 22 décembre 2013 Statut Membre Dernière intervention 9 septembre 2016
9 sept. 2016 à 17:44
ok je vais regarder de ce cote merci de ta patience et pour ton eclairage
0
Rejoignez-nous