Ik heb een Raspberry PI met een Apache2 webserver en een voorbeeld project.
Werkt perfect.
Nu wil ik de PHP-code veranderen van het voorbeeld project. (eerste keer dat ik PHP gebruik)
Als ik (om te beginnen) een simpel echo-statement of print statement toevoeg in de werkende PHP-module, dan krijg ik de run-time error:
localhost meldt het volgende: Something went wrong.

Wat moet ik nog doen om de wijziging te laten werken.
Of je maakt een crontab die elke minuut een triggerscript aanroept, en dan maak je een soort van tijdsschema die controleert of er iets moet gebeuren in dat specifieke tijdvak. Zul je wel een en ander in een database moeten bijhouden waarschijnlijk.
Ik heb de code aangepast, maar krijg nog steeds dezelfde foutmeldinh:
Localhost meldt het volgende:
Something went wrong.

Als ik de originele file terugzet, werkt alles weer. De foutmelding komt op het moment dat ik een toets activeer en dus als de file gpio.php wordt aangeroepen.

Ik heb geen meldingen in de error.log file.

De code is nu:

<?php
//TheFreeElectron 2015, http://www.instructables.com/member/TheFreeElectron/
//This page is requested by the JavaScript, it updates the pin's status and then print it
//Getting and using values

define ('grasklep',0);
define ('groenteklep',1);
define ('bloemenklep',2);
define ('waterpomp',3);

$koppelen = [
'0' => [grasklep, waterpomp],
'1' => [grasklep, waterpomp],
'2' => [grasklep, waterpomp],
'3' => [groenteklep, waterpomp],
'4' => [groenteklep, waterpomp],
'5' => [bloemenklep, waterpomp],
'6' => [bloemenklep, waterpomp],
];

if (isset ( $_GET["pic"] )) {
$pic = strip_tags ($_GET["pic"]);

//test if value is a number
if ( isset($koppelen[$pic]) ) {
foreach ($koppelen[$pic] as $pinout) {

//set the gpio's mode to output
system("gpio mode ".$pinout." out");
//reading pin's status
exec ("gpio read ".$pinout, $status, $return );
//set the gpio to high/low
if ($status[0] == "0" ) { $status[0] = "1"; }
else if ($status[0] == "1" ) { $status[0] = "0"; }
system("gpio write ".$pinout." ".$status[0] );
//reading pin's status
exec ("gpio read ".$pinout, $status, $return );
//print it to the client on the response
echo('pin' . $pinout . ' '.$status[0]);
}
}
else { echo ("fail"); }
} //print fail if cannot use values
else { echo ("fail"); }
?>

Ik heb gekeken naar de rechten van de files, en die liggen allemaal bij 'pi', dus dat klopt.


[size=xsmall]Toevoeging op 29/05/2019 21:33:51:[/size]

Ik heb eerst de declaraties toegevoegd, gesaved en getest. Toen kreeg ik geen fout.
Die kreeg ik pas toen ik de code veranderd had.
Betekent dit iets?
Ik zou uitzoeken waar deze foutmelding precies vandaan komt.

En hiermee bedoel ik in code, waar komt de frase "Something went wrong." precies vandaan.

Dat lijkt mij dan het startpunt van de verdere zoektocht.

Ook kan ik het mij niet voorstellen dat de error nergens gelogd wordt, dus daar zou ik nogmaals naar kijken. Of deze expliciet aanzetten, als je dat wel lukt zonder foutmeldingen :).
Om de bron van die melding te zoeken, raad ik aan om even wat code tijdelijk te isoleren door wat comments te plaatsen.

Reageren