У меня есть PHP-скрипт, который получает его данные после моего кода на C#. Мой код C# отправляет данные POST на мой PHP-скрипт, включая строку base64 и имя файла. С этими двумя частями данных он должен создать файл JSON в папке JSON с именем файла, а затем он должен записать декодированную строку base64 в только что созданный файл. После этого он должен сохранить данные JSON в базе данных. Но есть одна проблема: он не создает файл JSON, и он сохраняет пустые данные в моей базе данных. Вот то, что я до сих пор:PHP-скрипт, который не создает и не записывает JSON-файл
PHP:
<?php
$link = new mysqli($host, $user, $pass, $db);
if($link ->connect_errno)
{
echo 'Database connection wrong<br/>';
}
else
{
if(isset($_POST['filename']) && isset($_POST['b64string']))
{
$jsonstring = base64_decode($_POST['b64string']);
$filename = $_POST['filename'] . '.json';
$create = fopen(__DIR__. "/json/" . $filename, "W+");
fwrite($create, $jsonstring);
$json = fread($create, filesize(__DIR__. "/json/" . $filename));
fclose($create);
$obj = json_decode($json);
$query_opslaan = "INSERT INTO SalesKicker (BedrijfsNaam, ContPers, TelNr, Email, Land, Plaats, POC) VALUES ('". $obj->bedrijfsNaam ."' , '". $obj->ContPers ."', '". $obj->TelNum ."', '". $obj->email ."', '". $obj->Land ."', '". $obj->Plaats ."', '". $obj->PostCode ."')";
mysqli_query($link, $query_opslaan) or die(mysqli_error($query_opslaan));
}
else
{
echo 'ERROR: no data!';
}
}
?>
Это получить это данные из следующих C# сценарий:
if (reqCat == "bvg")
{
json = "{\"bedrijfsNaam\":\"" + bedrijfsNaam + "\"," +
"\"ContPers\":\"" + ContPers + "\"," +
"\"TelNum\":\"" + TelNum + "\"," +
"\"email\":\"" + email + "\"," +
"\"Land\":\"" + Land + "\"," +
"\"Plaats\":\"" + Plaats + "\"," +
"\"PostCode\":\"" + PostCode + "\"}";
var b64bytes = System.Text.Encoding.UTF8.GetBytes(json);
b64encode = System.Convert.ToBase64String(b64bytes);
using (WebClient client = new WebClient())
{
byte[] sendB64 = client.UploadData("http://" + ConfigurationManager.AppSettings["scripturi"].ToString() + "SalesKicker.php", "POST",
System.Text.Encoding.ASCII.GetBytes("b64string=" + b64encode + "&filename=" + dt.bedrijfsNaam));
}
}
Это моя структура папок:
public_html (здесь находится весь материал PHP) -> json (папка, где он должен быть сохранен)
Я действительно не знаю, что делать в данный момент, поэтому я пришел сюда, чтобы опубликовать мою проблему. Может кто-то, пожалуйста, помогите мне и скажите мне, что я здесь делаю неправильно?
В чем заключается содержимое '$ jsonstring'? – jeroen
Есть ли папка json? пользователь, запускающий этот код, может создать файл? – TehSphinX
$ jsongstring содержит правильные данные, которые правильно декодируются в скрипте PHP @jeroen –