C# to php to mysqli [Résolu]

gghitman 9 Messages postés dimanche 22 décembre 2013Date d'inscription 9 septembre 2016 Dernière intervention - 9 sept. 2016 à 15:00 - Dernière réponse : gghitman 9 Messages postés dimanche 22 décembre 2013Date d'inscription 9 septembre 2016 Dernière intervention
- 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
	}

	?>			
Afficher la suite 

6 réponses

Répondre au sujet
jordane45 19221 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par jordane45 le 9/09/2016 à 15:32
0
Utile
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                                                                 
Commenter la réponse de jordane45
gghitman 9 Messages postés dimanche 22 décembre 2013Date d'inscription 9 septembre 2016 Dernière intervention - 9 sept. 2016 à 16:01
0
Utile
1
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[]
jordane45 19221 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 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
Commenter la réponse de gghitman
gghitman 9 Messages postés dimanche 22 décembre 2013Date d'inscription 9 septembre 2016 Dernière intervention - Modifié par gghitman le 9/09/2016 à 17:15
0
Utile
1
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 .
jordane45 19221 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 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

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.