Hoe kan ik delen uit een url halen met php7

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Pagina: 1 2 volgende »

Bas Onbekend

Bas Onbekend

27/03/2020 18:39:45
Quote Anchor link
Vroeger kon ik met

$content = file_get_contents("php://input");
//convert json object to php associative array
$json = json_decode($content,true);

waardes uit een url halen maar nu werkt dat niet meer.

Kan iemand mijn vertellen hoe ik

"name":"iSpindel000","ID":125392,"angle":77.06406,"temperature":34.0625,"battery":4.671533,"gravity":27.02963,"interval":1

kan ontleden? Ik kan de post welke het apparaat geeft namelijk niet aanpassen.


Onderstaand heb ik de aangepaste code staan maar deze krijg ik op een of andere manier niet werkend.Ik denk dat het te maken heeft met het : wat ertussen staat.




Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
date_default_timezone_set('Europe/Amsterdam');
$servername = "localhost";
$username = "user";
$password = "paswoord";
$dbname = "name";
$time = date('Y-m-d h:i:s A');
$unixtime = strtotime($time);
// Create connection
$conn = new mysqli($servername, $username,$password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}


if(isset($_GET["name"])) { // alleen als er data is meegegeven voeren we dit uit
    echo "ok".$_GET;
    $data = $_GET["name\"\:\""]; // parameter ophalen
    $data1 = $_GET["angle"]; // parameter ophalen
    $data2 = $_GET["temperature"]; // parameter ophalen
    $data3 = $_GET["battery"]; // parameter ophalen
    $data4 = $_GET["wort"]; // parameter ophalen
  
}


//$content = file_get_contents("php://input");
//convert json object to php associative array

$json = json_decode($content,true);

$sql = "INSERT INTO fermentervalues (name, angle, temperature, battery,    wort, string )  VALUES( '$data', '$data1', '$data2', '$data3', '$data4', '$unixtime')";
if ($conn->query($sql) === TRUE) {
    
}
else {
  
   echo "Error:" . $sql . "<br>" . $conn->error;
}

$conn->close();

echo "ok";
?>
Gewijzigd op 27/03/2020 18:41:23 door Bas Onbekend
 
PHP hulp

PHP hulp

28/03/2024 12:25:28
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 18:50:11
Quote Anchor link
Ik neem aan dat dit de output is, omdat ik de { en } lijkt te missen, omdat het volgens mij JSON zal zijn?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
{ "name":"iSpindel000","ID":125392,"angle":77.06406,"temperature":34.0625,"battery":4.671533,"gravity":27.02963,"interval":1 }
Gewijzigd op 27/03/2020 18:52:31 door - Ariën -
 
Bas Onbekend

Bas Onbekend

27/03/2020 18:51:39
Quote Anchor link
Dat klopt sorry die heeft hij niet meegenomen
Gewijzigd op 27/03/2020 18:52:45 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 18:53:22
Quote Anchor link
In dat geval werkt dit hier prima:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$content
= '{ "name":"iSpindel000","ID":125392,"angle":77.06406,"temperature":34.0625,"battery":4.671533,"gravity":27.02963,"interval":1 }';
 $json = json_decode($content,true);

echo $json['temperature']; // geeft 34.0625
?>


PS: Je hoeft het laatste bericht in het forum niet te quoten. We weten heus wel waar je op reageert. ;-)
 
Bas Onbekend

Bas Onbekend

27/03/2020 18:57:33
Quote Anchor link
Ok, maar ik krijg de data dan niet uit de url. Als ik hem er direct inzet dan werkt het inderdaad wel. Het lijkt of hij de data niet binnen krijgt
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 19:00:16
Quote Anchor link
php://input is ook niet echt een URL maar input-stream. Wat is precies de bedoeling in dit stukje?
 
Bas Onbekend

Bas Onbekend

27/03/2020 19:02:51
Quote Anchor link
Vroeger kon ik hiermee een apparaatje in de database laten schrijven wat deze waardes deed meten. Nu krijg ik niet eens de waardes meer in het script te zien met een echo. Ik snap er niks meer van. Schrijf regelmatig c# maar mijn php is super roestig op dit moment :]
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 19:05:36
Quote Anchor link
Kan je het niet naar een bestand schrijven, en daarna laten uitlezen?
Of is het realtime? Want volgens mij moet het in PHP werken, en ligt het meer aan de backend van je C# script.
Gewijzigd op 27/03/2020 19:06:08 door - Ariën -
 
Bas Onbekend

Bas Onbekend

27/03/2020 19:06:56
Quote Anchor link
Er hangt geen c# achter. Dit is een arduino welke iedere keer als hij wakker wordt de data verzend en weer in slaap valt.

Toevoeging op 27/03/2020 19:07:40:

php://input werkt toch niet meer in de nieuwe php?
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 19:11:21
Quote Anchor link
Dat zou gewoon moeten werken...
 
Bas Onbekend

Bas Onbekend

27/03/2020 19:16:30
Quote Anchor link
Dat was ook mijn idee. Als ik in de browser

www.website.com/";name":"iSpindel000","ID":125392,"angle":77.06406,"temperature":34.0625,"battery":4.671533,"gravity":27.02963,"interval":1

Krijg ik niks in de database als 0. Enigste wat wel werkt is de $unixtime welke wel weggeschreven is. Dus alles werkt behalve de waardes uit de url halen.

Toevoeging op 27/03/2020 19:18:03:

ps; dit is de oude code welke vorig jaa nog wel werkte
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$time
= date('Y-m-d h:i:s A');
$unixtime = strtotime($time);
// Create connection
$conn = new mysqli($servername, $username,$password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$content = file_get_contents("php://input");
//convert json object to php associative array
$json = json_decode($content,true);
echo $json['temperature'];
$sql = "INSERT INTO fermentervalues (name, angle, temperature, battery,    wort, string )  VALUES( '$json[name]', '$json[angle]', '$json[temperature]', '$json[battery]', '$json[gravity]', '$unixtime')";
if ($conn->query($sql) === TRUE) {
    
}
else {
  
   echo "Error:" . $sql . "<br>" . $conn->error;
}

$conn->close();

echo "ok";
?>


Toevoeging op 27/03/2020 19:30:44:

en op
echo $content;

krijg ik ook geen data.
Gewijzigd op 27/03/2020 19:33:00 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 19:35:13
Quote Anchor link
Die string is ook niet bedoeld om in de URL te kieperen.
Ik heb eerder het idee dat je naar het programma van de Arduino moet kijken. Want de PHP-code ziet er verder prima uit. Test het anders eens uit een hard-coded JSON string, zoals ik al deed.
 
Bas Onbekend

Bas Onbekend

27/03/2020 19:39:16
Quote Anchor link
Als ik die er hard coded in plaats werkt het. Maar als ik de string in de url plaats doet hij het ook niet. Het is net of die $content = file_get_contents("php://input"); regel niet meer werkt.
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 19:43:28
Quote Anchor link
Wanneer is die link dan gebroken? Heb je iets speciaals gedaan?
 
Bas Onbekend

Bas Onbekend

27/03/2020 19:45:03
Quote Anchor link
Nee heb het apparaat 1 jaar niet gebruikt. In 2019 werkte het nog gewoon. Niks veranderd of aangepast.
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 19:46:25
Quote Anchor link
Ik ben niet echt bekend met een Arduino, maar kan je niet daarmee zien of dat script daar ergens vastloopt?
 
Bas Onbekend

Bas Onbekend

27/03/2020 19:48:47
Quote Anchor link
script llopt gewoon goed. als ik de waardes in internet explore achter de url plaats werkte het voorheen ook. Nu dus ook niet meer.
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 20:02:31
Quote Anchor link
Ik ben benieuwd hoe je dat dan doet? Het wordt dus via GET gestuurd?
Kan je dan niet de data in je PHP-script met GET uitlezen?
 
Bas Onbekend

Bas Onbekend

27/03/2020 20:12:43
Quote Anchor link
Ik zou zo niet weten hoe ik dat moet doen.
 
- Ariën  -
Beheerder

- Ariën -

27/03/2020 20:29:32
Quote Anchor link
Via $_GET

print_r($_GET);
 
Bas Onbekend

Bas Onbekend

27/03/2020 20:34:25
Quote Anchor link
dan komt Array ( ) ok terug
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.