Le script ne s'exécute pas, si lancé via menu
Posté : 07 août 2024, 11:44
Bonjour,
Tout d'abord je tiens à préciser que je ne maitrise absolument pas PHP/HTML/... Je programme surtout en Autoit, et dans un de mes scripts j'ai eu besoin de faire une page web pour en afficher les résultats (bon ça à un peu déraper...)
J'ai fait tout ça avec l'IA, donc possible qu'il y est beaucoup de chose qui ne soit pas à leur place... Je bosse un peu pour mieux gérer tout ça !
En gros j'ai fait un page index.php, qui contient le menu, et ensuite, j'ai fait des pages (je met contact.html, c'est la plus petite qui pose problème...)
Si j'exécute directement la page contact, via son URL, le script qui est dedans (la carte) s'affiche sans problème. Par contre si sur mon menu je click sur contact, tout s'affiche sauf le script de la carte... J'ai remarqué le même phénomène sur d'autre pages aussi... Ce qui est encapsulé dans les balises <script> ne fonctionne que sur la page directement.
Index.php :
Je ne sais pas si le script va marché, j'ai du supprimer des liens pour la carte ( openstreetmap )
Si vous avez une idée en tout cas !
Merci !
Tout d'abord je tiens à préciser que je ne maitrise absolument pas PHP/HTML/... Je programme surtout en Autoit, et dans un de mes scripts j'ai eu besoin de faire une page web pour en afficher les résultats (bon ça à un peu déraper...)
J'ai fait tout ça avec l'IA, donc possible qu'il y est beaucoup de chose qui ne soit pas à leur place... Je bosse un peu pour mieux gérer tout ça !
En gros j'ai fait un page index.php, qui contient le menu, et ensuite, j'ai fait des pages (je met contact.html, c'est la plus petite qui pose problème...)
Si j'exécute directement la page contact, via son URL, le script qui est dedans (la carte) s'affiche sans problème. Par contre si sur mon menu je click sur contact, tout s'affiche sauf le script de la carte... J'ai remarqué le même phénomène sur d'autre pages aussi... Ce qui est encapsulé dans les balises <script> ne fonctionne que sur la page directement.
Index.php :
<!DOCTYPE html>
<html>
<head>
<base href="http://192.168.10.245/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<style>
:root {
--primary-color: #2c3e50;
--secondary-color: #3498db;
--text-color: #333;
--background-color: #ecf0f1;
}
body {
font-family: 'Arial', sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: var(--background-color);
color: var(--text-color);
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
background-color: var(--primary-color);
color: white;
}
.header nav {
display: flex;
gap: 20px;
}
.header nav a {
color: white;
text-decoration: none;
font-size: 16px;
}
.header nav a:hover {
text-decoration: underline;
}
.login-container {
display: flex;
align-items: center;
gap: 10px;
}
.login-container input {
padding: 5px;
border: 2px solid #b3d9ff;
border-radius: 5px;
font-size: 14px;
}
.login-container input:focus {
outline: none;
border-color: var(--secondary-color);
}
.login-container button {
background-color: var(--secondary-color);
color: white;
border: none;
padding: 5px 10px;
border-radius: 5px;
cursor: pointer;
font-size: 14px;
transition: background-color 0.3s ease;
}
.login-container button:hover {
background-color: #2980b9;
}
#error-message {
color: red;
margin-top: 10px;
display: none;
}
.hidden {
display: none;
}
.container {
width: 90%;
max-width: 1200px;
margin: auto;
overflow: hidden;
padding: 20px;
}
</style>
</head>
<body>
<div class="header">
<nav>
<a href="#accueil.html" data-page="accueil.html">Accueil</a>
<a href="#liens.php" data-page="liens.php">Liens</a>
<a href="#telechargement.php" data-page="telechargement.php">Téléchargement</a>
<a href="#contact.html" data-page="contact.html">Contact</a>
<a href="#helpdesk.php" data-page="helpdesk.php" class="hidden" id="helpdesk-menu">Help-Desk</a>
<a href="#intervention.php" data-page="intervention.php" class="hidden" id="intervention-menu">Intervention</a>
<a href="#administration.php" data-page="administration.php" class="hidden" id="administration-menu">Administration</a>
</nav>
<div class="login-container">
<form id="login-form">
<input type="text" id="username" name="username" placeholder="Nom d'utilisateur" required>
<input type="password" id="password" name="password" placeholder="Mot de passe" required>
<button type="submit">Se connecter</button>
</form>
<button id="logout-button" class="hidden">Déconnexion</button>
<p id="error-message">Nom d'utilisateur ou mot de passe incorrect.</p>
</div>
</div>
<main class="container" id="content-container">
<!-- Le contenu des pages sera chargé ici -->
</main>
<script>
$(document).ready(function() {
// Vérifier si l'utilisateur est authentifié
const isAuthenticated = localStorage.getItem('isAuthenticated') === 'true';
if (isAuthenticated) {
$('#helpdesk-menu').removeClass('hidden');
$('#intervention-menu').removeClass('hidden');
$('#administration-menu').removeClass('hidden');
$('#login-form').hide();
$('#logout-button').removeClass('hidden');
}
$('#login-form').on('submit', function(e) {
e.preventDefault();
const username = $('#username').val();
const password = $('#password').val();
// Envoyer les données du formulaire au fichier PHP
$.post('login.php', { username: username, password: password }, function(response) {
if (response === 'success') {
// Authentification réussie, rediriger vers la page d'accueil
localStorage.setItem('isAuthenticated', 'true');
window.location.reload();
} else {
// Authentification échouée, afficher un message d'erreur
$('#error-message').show();
}
});
});
$('#logout-button').on('click', function() {
localStorage.removeItem('isAuthenticated');
window.location.reload();
});
// Fonction pour charger le contenu de la page
function loadContent(page) {
$('#content-container').load(page);
}
// Charger le contenu initial basé sur le fragment d'URL ou la page d'accueil par défaut
const initialPage = window.location.hash.slice(1) || 'accueil.html';
loadContent(initialPage);
// Intercepter les clics sur les liens de navigation
$('.header nav a').on('click', function(e) {
e.preventDefault();
const page = $(this).data('page');
loadContent(page);
// Mettre à jour le fragment d'URL sans recharger la page
history.pushState(null, '', '#' + page);
});
// Gérer les événements de navigation (boutons précédent/suivant du navigateur)
$(window).on('popstate', function() {
const page = window.location.hash.slice(1) || 'accueil.html';
loadContent(page);
});
});
</script>
</body>
</html>
Et le contact.html :<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact</title>
<style>
:root {
--primary-color: #2c3e50;
--secondary-color: #3498db;
--text-color: #333;
--background-color: #ecf0f1;
}
body {
font-family: 'Arial', sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: var(--background-color);
color: var(--text-color);
}
.container {
width: 90%;
max-width: 1200px;
margin: auto;
overflow: hidden;
padding: 20px;
}
.logo {
font-size: 2em;
font-weight: bold;
color: var(--primary-color);
text-align: center;
margin-bottom: 30px;
}
.highlight {
color: var(--secondary-color);
}
.contact-info, .opening-hours {
background: #ffffff;
border-radius: 15px;
padding: 20px;
margin-bottom: 20px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.contact-info h2, .opening-hours h2 {
color: var(--primary-color);
margin-top: 0;
}
.contact-info p, .opening-hours p {
margin: 10px 0;
}
#map {
width: 100%;
height: 400px;
border-radius: 15px;
margin-top: 20px;
}
footer {
background: var(--primary-color);
color: #ffffff;
text-align: center;
padding: 20px 0;
border-radius: 20px 20px 0 0;
margin-top: 40px;
}
@media (max-width: 768px) {
#map {
height: 300px;
}
}
</style>
</head>
<body>
<main class="container">
<section id="contact" class="contact-info">
<h2>Contactez-nous</h2>
</section>
<section id="hours" class="opening-hours">
<h2>Horaires d'ouverture</h2>
</section>
<div id="map"></div>
</main>
<script>
function initMap() {
const lat = 47.86825;
const lon = -3.54041;
const map = L.map('map').setView([lat, lon], 15);
}
document.addEventListener('DOMContentLoaded', (event) => {
const contactInfo = document.querySelector('.contact-info');
const openingHours = document.querySelector('.opening-hours');
const mapPlaceholder = document.querySelector('#map');
contactInfo.style.opacity = 0;
contactInfo.style.transform = 'translateY(20px)';
contactInfo.style.transition = 'opacity 0.5s ease-out, transform 0.5s ease-out';
openingHours.style.opacity = 0;
openingHours.style.transform = 'translateY(20px)';
openingHours.style.transition = 'opacity 0.5s ease-out, transform 0.5s ease-out';
mapPlaceholder.style.opacity = 0;
mapPlaceholder.style.transform = 'translateY(20px)';
mapPlaceholder.style.transition = 'opacity 0.5s ease-out, transform 0.5s ease-out';
setTimeout(() => {
contactInfo.style.opacity = 1;
contactInfo.style.transform = 'translateY(0)';
}, 300);
setTimeout(() => {
openingHours.style.opacity = 1;
openingHours.style.transform = 'translateY(0)';
}, 600);
setTimeout(() => {
mapPlaceholder.style.opacity = 1;
mapPlaceholder.style.transform = 'translateY(0)';
initMap();
}, 900);
});
</script>
</body>
</html>
Je ne sais pas si le script va marché, j'ai du supprimer des liens pour la carte ( openstreetmap )
Si vous avez une idée en tout cas !
Merci !