JSON of weatherRequest is recovered in PHP

This commit is contained in:
Divlo 2019-10-04 13:47:32 +02:00
parent 53db5b80b3
commit 108295322f
8 changed files with 36 additions and 73 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
htaccess
scripts/config.js
php/keyVariable.php

View File

@ -15,16 +15,16 @@ Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/).
## La liste des Fonctions Principales :
| Nom | Description | Paramètre(s) |
| -- | -- | -- |
| **weatherRequest(url,toDo)** | Permet de faire une requête à l'API [openweathermap.org](https://openweathermap.org/). | - url : l'url avec le nom de la ville. - toDo : afficher l'heure uniquement ou aussi la météo ? |
| **weatherRequest()** | Affiche la météo et l'heure local selon la ville grâce à l'API : [openweathermap.org](https://openweathermap.org/). | Aucun paramètre |
| **randomNumber(min, max)** | Génère un nombre aléatoire entre un minimum inclus et un maximum inclus. | - min : Nombre Minimum - max : Nombre Maximum |
| **calculateAge(birthDate)** | Calcule l'âge de quelqu'un selon la date de naissance. | - birthDate : date de naissance au format (dd/mm/yyyy). |
| **convertTemperature(degree,unit)** | Convertit des Degré Celsius en Degré Fahrenheit et l'inverse aussi. | - degre : Le nombre que vous voulez convertir - unite : l'unité du nombre que vous voulez convertir (°C ou °F) |
| **convertDistance (firstValue, unitFirstValue, unitFinalValue)** | Convertit la longueur (distance) avec les unités allant de picomètre au Téramètre. | - firstValue : Le nombre que vous voulez convertir - unitFirstValue : l'unité du nombre que vous voulez convertir - unitFinalValue : l'unité de votre nombre après la conversion |
| **filterStudents(filteredLetter, students)** | Affiche uniquement les prénoms (qui sont dans la liste) qui commence par la lettre souhaitée. | - filteredLetter : la lettre à filtré - students : la liste des prénoms |
| **randomQuote()** | Génère aléatoirement une citation ou un proverbe. | Aucun paramètre |
| **convertCurrency(value, currency, url)** | Convertis une valeur dans une devise dans une autre devise. [exchangeratesapi.io](https://exchangeratesapi.io/) | - value : la valeur à convertir - currency : la devise à avoir après conversion - url : l'url de la requête à l'API en fonction du paramètre dans l'url '?base=' |
| **utf8ToBin(s)** | UTF-8 vers Binaire | - s : la valeur à convertir |
| **binToUtf8(s)** | Binaire vers UTF-8 | - s : la valeur à convertir |
| **convertCurrency(value, currency, url)** | Convertis une valeur dans une devise dans une autre devise grâce à l'API [exchangeratesapi.io](https://exchangeratesapi.io/). | - value : la valeur à convertir - currency : la devise à avoir après conversion - url : l'url de la requête à l'API en fonction du paramètre dans l'url '?base=' |
| **utf8ToBin(s)** | UTF-8 vers Binaire. | - s : la valeur à convertir |
| **binToUtf8(s)** | Binaire vers UTF-8. | - s : la valeur à convertir |
| **convertArabicToRoman(nombre)** | Convertis un nombre arabe en nombre romain. | - nombre : le nombre à convertir |
| **convertRomanToArabic(str)** | Convertis un nombre romain en nombre arabe. | - str : le nombre romain à convertir |
| **armstrongNumber(nombre)** | Vérifie si un nombre fait partie des nombres d'Armstrong ou non. | - nombre : le nombre à tester |
@ -40,4 +40,5 @@ Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/).
| **showDateTime(enteredOffset)** | Affiche la date et l'heure (format : dd/mm/yyyy - 00:00:00). | - enteredOffset : date à formaté |
| **realDateTime(id)** | Affiche l'heure en temps réel. | - id : l'id de votre span/div où vous voulez afficher l'heure en temps réel |
| **timeZone(json)** | Récupére le décalage en secondes à partir de l'heure UTC grâce à l'API openweathermap.org. | - json : le json de l'API |
| **isValidDate(s)** | Vérifie si une date est valide par rapport à la date d'aujourd'hui. | - s : la date à verifier (format : dd/mm/yyyy) |
| **isValidDate(s)** | Vérifie si une date est valide par rapport à la date d'aujourd'hui. | - s : la date à verifier (format : dd/mm/yyyy) |
| **createSessionCookie(name, value)** | Créer un cookie de session | - name : nom du cookie - value : valeur du cookie |

View File

@ -32,7 +32,6 @@
<!-- Frameworks and Tools -->
<script src="/scripts/libs/jquery-min.js"></script>
<script type='text/javascript' src='/scripts/config.js'></script>
<link rel="stylesheet" href="/css/libs/bootstrap-min.css">
<script src="/scripts/libs/bootstrap-min.js"></script>
<script src="/scripts/libs/moment.js"></script>

8
php/getWeatherJson.php Normal file
View File

@ -0,0 +1,8 @@
<?php
include 'keyVariable.php';
ini_set("allow_url_fopen", 1);
$cityName = $_COOKIE['city'];
$url = 'https://api.openweathermap.org/data/2.5/weather?q='.$cityName.'&lang=fr&units=metric&appid='.$apiWeather;
$json = file_get_contents($url);
// $obj = json_decode($json);
echo $json;

View File

@ -203,4 +203,9 @@ function isValidDate(s) {
} else {
return messageError;
}
}
}
// Créer un cookie de session
function createSessionCookie(name, value) {
document.cookie = escape(name) + "=" + escape(value) + " ; path=/";
}

View File

@ -1,31 +1,20 @@
/* Fonctions Principales */
// Requête à l'API openweathermap.org
function weatherRequest(url) {
$.ajax({
url : url,
dataType : "json",
success: function (json) {
let city = json.name;
let showDateTimeValue = timeZone(json);
if(city === 'Moscou')
{
$('.results').html(`🌎 Position : <a href='https://www.google.com/maps/place/${city}/' class="yellow-color" target="_blank">${city}, RU</a><br>⏰ Date et heure : ${showDateTimeValue}<br>☁️ Météo : ${capitalize(json.weather[0].description)}<br> 🌡️ Température : ${json.main.temp} °C<br> 💧 Humidité : ${json.main.humidity}% <br> <img src="https://openweathermap.org/img/wn/${json.weather[0].icon}@2x.png"/>`);
$("#cityName, #submitWeatherRequest").click(function() {
document.location.replace("../../views/function-views/weatherRequest.php");
});
}
else
{
// Affiche la météo et l'heure local selon la ville.
function weatherRequest() {
$.ajax({
url: '/php/getWeatherJson.php',
type: "POST",
success: function(data) {
try {
let json = jQuery.parseJSON(data);
let city = json.name;
let showDateTimeValue = timeZone(json);
$('.results').html(`🌎 Position : <a href='https://www.google.com/maps/place/${city}/' class="yellow-color" target="_blank">${city}, ${json.sys.country}</a><br>⏰ Date et heure : ${showDateTimeValue}<br>☁️ Météo : ${capitalize(json.weather[0].description)}<br> 🌡️ Température : ${json.main.temp} °C<br> 💧 Humidité : ${json.main.humidity}% <br> <img src="https://openweathermap.org/img/wn/${json.weather[0].icon}@2x.png"/>`);
$("#cityName, #submitWeatherRequest").click(function() {
document.location.replace("../../views/function-views/weatherRequest.php");
});
}
},
statusCode: {
404: function() {
document.location.replace("../error404Weather");
catch(error) {
$('.results').html("La ville que vous avez rentré n'existe pas (dans l'API).");
}
}
});

View File

@ -9,14 +9,11 @@ $(function () {
if(isEmptyValue(cityName))
{
$('.results').html(emptyMessageError);
$("#cityName, #submitWeatherRequest").click(function() {
document.location.replace("../function-views/weatherRequest.php");
});
}
else
{
let url = "https://api.openweathermap.org/data/2.5/weather?q=" + cityName + "&lang=fr&units=metric&appid=" + config.APIkeyWeather + "";
weatherRequest(url);
createSessionCookie("city", cityName);
weatherRequest();
}
});

View File

@ -1,36 +0,0 @@
<!-- Config -->
<?php include("../php/config.php");?>
<!-- Header -->
<?php include("../incl/header.php");?>
<!-- Page Content -->
<div class="container">
<h1><span class="important">La météo</span> :</h1>
<p class="pt-3 text-center">Affiche la météo et l'heure local selon la ville.</p>
<div class="form-group">
<label for="cityName">Entrez le nom d'une ville :</label>
<input name="cityName" type="text" id="cityName" placeholder="(e.g : Paris)" class="form-control">
<br>
<div class="form-row text-center">
<div class="col-12">
<button type="submit" id="submitWeatherRequest" class="btn btn-dark text-center">Envoyer</button>
</div>
</div>
<br> <br>
<p class="results text-center">La ville que vous avez rentré n'existe pas (dans l'API).</p>
</div>
</div>
<script>
$(function () {
$("#cityName").click(function() {
document.location.replace("../views/function-views/weatherRequest.php");
});
$("#submitWeatherRequest").click(function() {
document.location.replace("../views/function-views/weatherRequest.php");
});
})
</script>
<!-- Footer -->
<?php include("../incl/footer.php");?>