Merge remote-tracking branch 'origin/PHP_Script_on_Docker' into PHP_Script_on_Docker

remotes/origin/mvc-implementation
dorian.hodin 2 years ago
commit 8ed568c2c4

@ -2,6 +2,7 @@ kind: pipeline
type: docker type: docker
name: DAFLPipeline name: DAFLPipeline
trigger: trigger:
event: event:
- push - push
@ -73,5 +74,19 @@ steps:
IMAGENAME: hub.codefirst.iut.uca.fr/dorian.hodin/dafl_music:latest IMAGENAME: hub.codefirst.iut.uca.fr/dorian.hodin/dafl_music:latest
CONTAINERNAME: php_script CONTAINERNAME: php_script
COMMAND: create COMMAND: create
OVERWRITE: true PRIVATE: true
CODEFIRST_CLIENTDRONE_ENV_INNODB_HOST:
from_secret: db_host
CODEFIRST_CLIENTDRONE_ENV_INNODB_DATABASE:
from_secret: db_database
CODEFIRST_CLIENTDRONE_ENV_INNODB_USER:
from_secret: db_user
CODEFIRST_CLIENTDRONE_ENV_INNODB_PASSWORD:
from_secret: db_password
#commands:
# - export DAFL_HOST = $CODEFIRST_CLIENTDRONE_ENV_INNODB_HOST
# - export DAFL_DATABASE = $CODEFIRST_CLIENTDRONE_ENV_INNODB_DATABASE
# - export DAFL_USER = $CODEFIRST_CLIENTDRONE_ENV_INNODB_USER
# - export DAFL_PASSWORD = $CODEFIRST_CLIENTDRONE_ENV_INNODB_PASS
depends_on: [ php_script ] depends_on: [ php_script ]

@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4"> <module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android" name="Android">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true"> <component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output /> <exclude-output />
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
@ -7,7 +12,9 @@
<excludeFolder url="file://$MODULE_DIR$/Sources/dafl_project_flutter/.pub" /> <excludeFolder url="file://$MODULE_DIR$/Sources/dafl_project_flutter/.pub" />
<excludeFolder url="file://$MODULE_DIR$/Sources/dafl_project_flutter/.dart_tool" /> <excludeFolder url="file://$MODULE_DIR$/Sources/dafl_project_flutter/.dart_tool" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="jdk" jdkName="Android API 33, extension level 3 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component> </component>
</module> </module>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpProjectSharedConfiguration" php_language_level="8.1">
<option name="suggestChangeDefaultLanguageLevel" value="false" />
</component>
</project>

@ -1,14 +1,13 @@
<?php <?php
$username="dafldev"; $username="dafldev"; //Get the username
$host="89.83.53.34"; $host="89.83.53.34"; //Get the address IP of the hosting machine
$password="wrap"; $password="wrap"; //Get the password for the user selected
$db_name="positiondaflmusic"; $db_name="positiondaflmusic"; //Get the name of the database
$connect=mysqli_connect($host,$username,$password,$db_name); $connect=mysqli_connect($host,$username,$password,$db_name); //Connecting to database
/*
if(!$connect) if (mysqli_connect_errno()) { //Check if the connection failed
{ print(json_encode("Failed to connect to MySQL")); //Return a json string, so the dart script can interpret the error
print "Connection Failed"; exit(-1); //Send a return code as -1, so insert.php can know if the connection is successful
} }
*/

@ -1,10 +0,0 @@
<?php
$dns = 'mysql:host=89.83.53.34;dbname=positiondaflmusic';
$user = 'dafldev';
$password = 'wrap';
try{
$db = new PDO ($dns, $user, $password);
}catch( PDOException $e){
$error = $e->getMessage();
echo $error;
}

@ -1,61 +1,57 @@
<?php <?php
function meters($lat1, $lng1, $lat2, $lng2): float
class distance
{
public function meters($lat1, $lng1, $lat2, $lng2): float
{ {
// Radius of the Earth in meters : $earth_radius = 6378137; // Radius of the Earth in meters :
$earth_radius = 6378137; $rlo1 = deg2rad($lng1); //Transform the coordinate longitude1 from degree to radian
// Calculation of the distance between 2 GPS coordinates: $rla1 = deg2rad($lat1); //Transform the coordinate latitude1 from degree to radian
$rlo1 = deg2rad($lng1); $rlo2 = deg2rad($lng2); //Transform the coordinate longitude2 from degree to radian
$rla1 = deg2rad($lat1); $rla2 = deg2rad($lat2); //Transform the coordinate latitude2 from degree to radian
$rlo2 = deg2rad($lng2); $dlo = ($rlo2 - $rlo1) / 2; //Stock in $dlo the result of the calcul : ($rlo2 - $rlo1) / 2
$rla2 = deg2rad($lat2); $dla = ($rla2 - $rla1) / 2; //Stock in $dla the result of the calcul : ($rla2 - $rla1) / 2
$dlo = ($rlo2 - $rlo1) / 2; $a = (sin($dla) * sin($dla)) + cos($rla1) * cos($rla2) * (sin($dlo) * sin($dlo)); //Do some operations to return the distance in meters
$dla = ($rla2 - $rla1) / 2; $d = 2 * atan2(sqrt($a), sqrt(1 - $a)); //Do some operations to return the distance in meters
$a = (sin($dla) * sin($dla)) + cos($rla1) * cos($rla2) * (sin($dlo) * sin($dlo)); return round($earth_radius * $d); // Return the distance in meters between 2 GPS points
$d = 2 * atan2(sqrt($a), sqrt(1 - $a));
// Return the distance in meters between 2 GPS points
return round($earth_radius * $d);
} }
$connect=""; //Else PHP send an error, "connect don't exist", but that work anyway, this is just to remove a fake error
$res=include "config.php"; //$res get the result of the calling of "config.php"
if ($res != 1){ //Check if config.php work
print (json_encode("Failed to connect to MySQL")); //Return a json string, so the dart script can interpret the error
}
if (!empty($_POST)) {
$id = $_POST['id']; //Get the result of the POST method in id
$query = 'SELECT * FROM gps'; //Browse all the database
$results = mysqli_query($connect, $query); //Execute the SQL command
$lat1 = 0; //Set $lat1 to test if the user exist
$lng1 = 0; //Set $lng1 to test if the user exist
$listUser = []; //Set the listUser to an empty list
while ($row = $results->fetch_row()){ //For all the row in the database
if (strcmp($row[0], $id) == 0) { //If the user is found in the database
$lat1 = $row[1]; //Set $lat1 to the latitude of the current user
$lng1 = $row[2]; //Set $lng1 to the longitude of the current user
}
}
if ($lat1 == 0 && $lng1 == 0) { //Check if the user get found in the database
print(json_encode("ERROR No user found in the database")); //Return a json string, so the dart script can interpret the error
exit(1); //Exit the actual script
}
$results = mysqli_query($connect, $query); //Execute again the SQL command to restart the fetch_row()
while ($row = $results->fetch_row()) { //For all the row in the database
if (strcmp($row[0], $id) != 0) { //If the row is not the row of the current user
$lat2 = $row[1]; //Set $lat2 to the latitude of the user who is in the actual row
$lng2 = $row[2]; //Set $lng2 to the latitude of the user who is in the actual row
$userID = $row[0]; //Set $userID to the username of the user who is in the actual row
$idMusic = $row[3]; //Set $idMusic to the id of the actual song of the user who is in the actual row
$dist = meters($lat1, $lng1, $lat2, $lng2); //With the function meters, calcul of the distance between the current user and the user who is in the actual row
if ($dist <= 100) { //If the user in the actual row is less than 100 meters away of the current user
$listUser[] = ['user' => $userID, 'music' => $idMusic]; //Add the username and the ID of the song that user who is in the actual row is listening
} }
$db=0;
$connect="";
require_once('db.php');
include "config.php";
$id = $_POST['id'];
$query = 'SELECT * FROM gps';
$stm = $db->prepare($query);
$stm->execute();
$row = $stm->fetchAll(PDO::FETCH_ASSOC);
$lat1=0;
$lng1=0;
$listUser=[];
Foreach ($row as $col) {
if (strcmp($col['id'], $id) == 0) {
$lat1 = $col['latitude'];
$lng1 = $col['longitude'];
}
}
if ($lat1==0 && $lng1==0){
print(json_encode("ERROR No user found in the database"));
exit(1);
} }
Foreach ($row as $col) {
if (strcmp($col['id'],$id)!=0) {
$lat2 = $col['latitude'];
$lng2 = $col['longitude'];
$userID = $col['id'];
$idMusic = $col['idMusic'];
$dist = (new distance)->meters($lat1, $lng1, $lat2, $lng2);
if ($dist <= 100) {
$listUser[] = ['user' => $userID, 'music' => $idMusic]; }
} }
print(json_encode($listUser)); //Return a json string of the list listUser
}else{ //If the method POST return nothing
print (json_encode("The POST didn't return any values")); //Return a json string, so the dart script can interpret the error
} }
print(json_encode($listUser));

@ -1,5 +0,0 @@
<?php
echo "Hello world Dafl for PHP"
?>

@ -1,20 +1,26 @@
<?php <?php
$connect=""; $connect=""; //Else PHP send an error, "connect don't exist", but that work anyway, this is just to remove a fake error
include "config.php"; $res=include "config.php"; //$res get the result of the calling of "config.php"
$id = mysqli_real_escape_string($connect, $_POST['id']); if ($res != 1){ //Check if config.php work
$latitude = mysqli_real_escape_string($connect, $_POST['latitude']); print (json_encode("Failed to connect to MySQL")); //Return a json string, so the dart script can interpret the error
$longitude = mysqli_real_escape_string($connect, $_POST['longitude']); }
$idMusic = mysqli_real_escape_string($connect, $_POST['idMusic']); if (!empty($_POST)) { //Check if the method POST return something
$id = mysqli_real_escape_string($connect, $_POST['id']); //Get the result of POST method
$latitude=doubleval($latitude); $latitude = mysqli_real_escape_string($connect, $_POST['latitude']); //Get the result of POST method
$longitude=doubleval($longitude); $longitude = mysqli_real_escape_string($connect, $_POST['longitude']); //Get the result of POST method
$idMusic = mysqli_real_escape_string($connect, $_POST['idMusic']); //Get the result of POST method
$latitude = doubleval($latitude); //Convert a string to a double
$longitude = doubleval($longitude); //Convert a string to a double
/* /*
$query = "DELETE FROM gps WHERE (SELECT TIMESTAMPDIFF(MINUTE,CURRENT_TIMESTAMP,dateLog))>10;"; $query = "DELETE FROM gps WHERE (SELECT TIMESTAMPDIFF(MINUTE,CURRENT_TIMESTAMP,dateLog))>10;";
$results = mysqli_query($connect, $query); $results = mysqli_query($connect, $query);
*/ */
$query = "DELETE FROM gps WHERE id='$id';"; $query = "DELETE FROM gps WHERE id='$id';"; //Delete the actual line and replace this line with the next lines
$results = mysqli_query($connect, $query); $results = mysqli_query($connect, $query); //Execute the SQL command
$query = "INSERT INTO gps (id,latitude,longitude,idMusic,dateLog) VALUES('$id','$latitude','$longitude','$idMusic',CURRENT_TIMESTAMP);";
$results = mysqli_query($connect, $query);
$query = "INSERT INTO gps (id,latitude,longitude,idMusic,dateLog)
VALUES('$id','$latitude','$longitude','$idMusic',CURRENT_TIMESTAMP);"; //Insert into the database the new data and new information about this user
$results = mysqli_query($connect, $query); //Execute the SQL command
}else{ //If the method POST return nothing
print (json_encode("The POST didn't return any values")); //Return a json string, so the dart script can interpret the error
}
Loading…
Cancel
Save