Pomoc CURL php -> qnap

sereknr1

Entry Technician
Q Associate
22 Sierpień 2017
56
3
8
44
QNAP
TS-x53B
Ethernet
802.11n (Wi-Fi 4)
Witam, próbował ktoś ze strony z kompa (jakiś localhost) przesłać jakieś dane CURL-em do Qnapa ??
 
Przykładu Ci nie podam bo nie mam przy sobie kompa, chodzi o przesył danych z prostego formularza php do bazy danych umieszczonej na qnap
Przykład tak na szybko, działa na localhoscie:
Index.php
PHP:
<?php

if( isset ($_POST['submit'] )){
   $name = mysql_real_escape_string($_POST['name']);
   $age = mysql_real_escape_string($_POST['age']);
 
$form_data = array(
                   'name'=> $name,
                   'age' => $age
   );

$str = http_build_query($form_data);

$curl = curl_init();

   curl_setopt($curl, CURLOPT_URL, "[URL]http://localhost:8095/curl/data.php[/URL]");
   curl_setopt($curl, CURLOPT_POST,1);
   curl_setopt($curl, CURLOPT_POSTFIELDS, $str);
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

   $response = curl_exec($curl);
 
   curl_close($curl);
   echo $response;
//print_r($data);
}

?>
<html>
<head>
   <meta charset = "UTF-8" />
   <title>cURL</title>
</head>

<body>

<div>
   <?php
   if( isset($output)){
       echo $output;
   }
   ?>
</div>

<form method = "post" action>
   <p><strong>Your name</strong><br /><input type="text" name="name"></p>
   <p><strong>Your age</strong><br /><input type="text" name="age"></p>

   <p><input type="submit" value="send" name="submit"></p>
</form>
 
</body>
</html>

db.php
PHP:
<?php
   $host = 'localhost';
   $user = 'root';
   $pass = '';
   $dbname = 'postdata';
 
   $con = mysqli_connect($host, $user, $pass, $dbname);
?>

data.php
PHP:
<?php

require 'db.php';

if (isset($_POST['name'])){
   $name = $_POST['name'];
   $age = $_POST['age'];
 
   $sql = mysqli_query($con, "INSERT INTO `data` SET  `name` = '$name', `age`='$age' ");
 
   if($sql)
   {
       echo "OK";
   }else{
       echo "Error";
   }
}
Spróbuje przy tym wieczorem usiąść. Dajcie jakieś sugestie i podpowiedzi!
 
Wszystko zależy co rozumiesz pod pojęciem "do Qnapa". Jeśli masz tam końcówkę (usługę - bezpośrednio w QTSie / w kontenerze / w wirtualce), do której można się dostać i która obsłuży żądanie, to nie ma z tym problemu.
 
<form method = "post" action>
Qnap_home :p
Zastanawiałem się nad takim rozwiązaniem:
curl_setopt($curl, CURLOPT_URL, "$ip_qnap.$port");

Qnapa dopiero poznaję i szczerze mówiąc nie wiem jak to przechwycić, czytałem coś o natywnym Debianie. Może mnie ktoś naprowadzić na tory :) ?
 
Krótko i na temat - potrzebujesz dowolnego serwera webowego (WWW). Możesz skorzystać z serwera dostępnego w QTS (system operacyjny QNAP'a), możesz postawić sobie go jako kontener (czyli uruchomić za pomocą Container Station) lub na maszynie wirtualnej (Virtualization Station). Znając jego adres IP i port, na którym jest dostępny, dostosuj swój skrypt PHP. I tyle.
 
Spooky z tego co się orientuję to w ustawieniach można postawić "ptaszka" przy "włącz serwer www" oraz "włącz serwer sql" i nie trzeba do tego używać wirtualizacji ani kontenera, bynajmniej tak mi się wydaje.
Temat uważam za zamknięty. Włączyłem w ustawieniach Qnapa serwer www oraz sql (bez żadnych kontenerów i wirtualizacji) wrzuciłem ścieżkę pozmieniałem kod delikatnie i poszło. Dane wysłane z komputera w localhoscie wpisują dane w bazę na Qnapie! Pozdro.