Zgodnie z potrzebą napisałem stronę zawierającą minimum do pracy ale wszelkie znaczniki do poprawnego działania są zawarte.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1">
<title>test</title>
</head>
<body bgcolor="#000000" text="#ffffff">
<script type="text/javascript">
var test = 0;
document.writeln(innerWidth);
if (window.innerWidth <= 700) {
document.writeln("mniejszy");
test = test+1;
const zm_Html1 =
`
<div><p>Niższa rozdzielczość - test</p></div>
<div><?php require('skrypt1.php'); ?></div>
`;
document.writeln(zm_Html1);
} else {
document.writeln("większy");
test = test+1;
const zm_Html2 =
`
<div><p>Wyższa rozdzielczoć - test</p></div>
<div><?php require('skrypt2.php'); ?></div>
`;
document.writeln(zm_Html2);
}
document.writeln(test); // wynik poprawny równy 1
</script>
</body>
</html>
Jak widać kod zawiera proste rozpoznanie rozdzielczości wewnętrznej okna przeglądarki i przy ładowaniu strony w zwężonej przeglądarce <= 700 odpala skrypt1.php w innym przypadku skrypt2.php.
Skrypty PHP za to ma proste zadanie:
- wyświetlić info do strony www z tekstem odpowiednio informując czy uruchomiony jest nr1 czy nr2
- dodać jedną linijkę do pliku info.txt z informacją który skrypt został uruchomiony i godzinę
Problem polega na tym, iż na stronie WWW wynik zmiennej "var test" jest poprawny, wyświetlone informacje ze skryptu PHP adekwatne do uruchomionej rozdzielczości. Natomiast w pliku info.txt widać wyraźnie, że za każdym razem wykonywane jest polecenie zarówno skrypt1.php jak i skrypt2.php. Dlaczego?
Poniżej daje linki do testowo wstawionej strony i wyraźnie widać omawiany problem. Ręcznie klikając w plik skrypt1.php widać dodawanie tylko jednego wiersza czyli PHP działa poprawnie.
Linki:
index.php
skrypt1.php
skrypt2.php
info.txt
Jakieś pomysły co jest nie tak?