2024-05-15 03:54:13
  • Hello!
  • Whats ya doin?
  • ByeBye

[&]

13.58.233.216

Przeanalizuj kod, znajdź i popraw błędy

exercises: #12-code-analysis.html

Analiza kodu

Przygotowanie

  1. Uczeń zapoznał się z prezentacją do tematu
  2. Uczeń posiada dostęp do sieci Internet oraz do witryny z materiałami edu.gplweb.pl
  3. Uczeń posiada proste IDE oraz środowisko uruchomieniowe dla: JavaScript oraz PHP
  4. Uczeń posiada wiedzę z zakresu kodowania w: HTML, CSS, JavaScript oraz PHP
  5. Do wykonania zadania należy dobrać się w grupy 2-osobowe, wynotować błędy oraz je poprawić.
1 Witryna z bazą danych MySQL

Retrospekcja z rozmowy telefonicznej

  1. Zgłosił się do Ciebie klient z zapytaniem o naprawienie niedziałającej witryny Web - mniej więcej od końca sierpnia
  2. Dostawał od dłuższego czasu wiadomość e-mail od FIRMY, ale ich nie rozumie - wszystkie faktury zostały opłacone
  3. Na stronie wyświetla się jakiś błąd i nie ma strony
  4. Ile to potrwa, ile będzie kosztować? Czego potrzebujesz?

Informacje z panelu Hostingu

Nazwa użytkownika BD:	thehostingthe
Nazwa bazy danych: 	thehostingthe
Adres serwera:		thehostingthe.mysql.db

Email - eMail-1.txt

Drogi Kliencie,

w 2017 roku wprowadziliśmy aliasy służące do łączenia się z serwerem bazy danych. Alias lub nazwa hosta jest skonstruowany w następujący sposób: ".mysql.db".

UWAGA: począwszy od 31.08.2021, z związku ze stałym podnoszeniem jakości usług i zwiększaniem ich bezpieczeństwa, dopuszczalne będą jedynie połączenia zgodne z formatem ".mysql.db".

Jeśli nie wprowadzisz odpowiednich modyfikacji, po upływie wskazanej wyżej daty połączenie między stroną(ami) WWW na Twoim hostingu a powiązaną bazą danych przestanie działać.

Twój hosting: thehosting.pl
Twoja baza danych: thehostingthe.mysql.db



- Jakie kroki powinieneś przeprowadzić?

Prosimy o sprawdzenie wszystkich połączeń i ewentualne zmodyfikowanie tych, które używają nazwy serwera innej niż: "NomDeLaBase>.mysql.db". Modyfikacje należy wprowadzić bezpośrednio w plikach wszystkich stron WWW, które korzystają z tej bazy danych.

Jeśli uważasz, że nie posiadasz odpowiednich umiejętności, aby to zrobić, zalecamy skorzystanie z profesjonalnej pomocy.



- Gdzie znajdziesz nazwę hosta Twoje bazy danych?

W przypadku baz danych "Start SQL", informację tę znajdziesz w zakładce "Baza danych" na Twoim hostingu, w tabeli, w kolumnie "Adres serwera".

W przypadku baz danych "Private SQL", nazwa hosta serwera jest widoczna w zakładce "Informacje ogólne" dotyczące serwera bazy danych, w ramce "Administracja bazą danych" pod wzmianką "Nazwa hosta" w sekcji SQL.

Dziękujemy za zaufanie i pozostajemy do dyspozycji.


Z poważaniem,
Biuro Obsługi Klienta OVHcloud

thehosting.pl - Warning-mysqli.html

<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"></head><body><br>
<b>Warning</b>:  mysqli::set_charset() [<a href="http://www.thehosting.pl/mysqli.set-charset">mysqli.set-charset</a>]: Couldn't fetch mysqli in <b>/home/thehosting/www/lib/class.data.php</b> on line <b>27</b><br>
<br>
<b>Warning</b>:  mysqli::query() [<a href="http://www.thehosting.pl/mysqli.query">mysqli.query</a>]: Couldn't fetch mysqli in <b>/home/thehosting/www/lib/class.data.php</b> on line <b>79</b><br>
<br>
<b>Warning</b>:  Data::query() [<a href="http://www.thehosting.pl/data.query">data.query</a>]: Couldn't fetch mysqli in <b>/home/thehosting/www/lib/class.data.php</b> on line <b>79</b><br>

select * from `thweb_conf` <br>
<b>Warning</b>:  mysqli::close() [<a href="http://www.thehosting.pl/mysqli.close">mysqli.close</a>]: Couldn't fetch mysqli in <b>/home/thehosting/www/lib/class.data.php</b> on line <b>38</b><br>
</body></html>

Konfiguracja - database.ini

hostname = mysql5-13.perso
port = 3306
database = thehostingthe
username = thehostingthe
password = 12345Ty#
prefix = thweb
charset = utf8
2 Skrypt JavaScript z koordynatami

Zadane koordynaty dla Elementu Przykładowy akapit nie chcą się ustawić. Po próbach naprawy pojawił się też problem z działaniem przycisku Zmień koordynaty

demo-2.html

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8" />
  <title>Tytuł</title>
</head>
<body>
  <h1>Pusta strona</h1>
  <button id="move">Zmień koordynaty</button>
  <p id="moveMe">Przykładowy akapit strony.</p>
  <script src="skrypt-2.js"></script>
</body>
</html>

skrypt-2.js

console.log("Koordynaty");
let box = document.getElementsById("#moveMe");
document.getElementsById("#move").addEventListener('click', ()=>{
	console.log("Moving");
	box.style.position="absolute";
	box.style.top=150;
	box.style.left=150;
});
3 Skrypt PHP z załączaniem plików

Brak oczekiwanej odpowiedzi skryptu: Plik istnieje lub Plik nie istnieje.

<?php
class FileSystem
{
	private string dmsg = "";
	
	function construct(id){
		echo "ID instancji: "+id;
	}
	public function get( $dir, $file){
		$out = false;
		if( is_dir($dir) )
		{
			$this->dmsg = 'Katalog istnieje: '.$dir;
			if(file_exists($dir'/'.$file){
				$this->dmsg = $dir'/'.$file;
				$out = true;
			} else
				$this->dmsg = $dir.'/'.$file;
		} else
			$this->dmsg = $dir;
		}
	return $out;
}

	$fs = new Filesysten();

	# jedno z wielu wywołań wybranego pliku, który może się znajdować w katalogu A lub A/B
	$fleLded = $fs.get( './media', 'dokument.html' );
	echo ($fleLded) ? '#1 Plik istnieje' : '#1 Brak pliku'
	echo ': '.$fs - > dmsg;
	if($fleLded=false);
		$fleLded = $fs.get( './media/assets', 'dokument.html' );
	echo '<br/>'.(($fleLded) ? '#2 Plik istnieje' ; '#2 Brak pliku');
	echo ': '.$fs - > dmsg;
?>
4 Skrypt PHP z generowaniem formularza

Formularz generuje się niepoprawnie: brak 2 etykiet, 1 inputa, przycisk nie posiada tekstu.

Efekt skryptu demo-4.php
<?php
require_once("etc/conf-1.php");
require_once("etc/conf-2.php");
require_once("libs/lib-1.php");
require_once("libs/lib-2.php");
require_once("libs/lib-3.php");
require_once("libs/lib-4.php");
$f = new Form('Logowanie');
$l1 = new Label('Login');
$l2 = new Label('Hasło');
$i1 = new Input('user');
$i2 = new Input('pass');
$b2 = new Button('Wyślij');
$f->pack($l1,$l2,$i1,$b2);
echo $f->display();
?>

Dodatkowo brak mechanizmu wybierającego jakie ustawienia połączenia z Bazą danych wybrać - dla lokalnego serwera deweloperskiego LUB dla publicznej witryny na hostingu z domeną.

5 Skrypt JavaScript z kolekcją elementów

1. Elementy z tablicy przestały się dodawć do listy.

2. Oprócz [1] występował dziwny problem z kasowaniem elementów w pętli.

3. Proszę pobrać skrypty z archiwum

Podsumowanie

  1. Czas: 1-2 lekcje
  2. Realizacja: grupy 2-osobowe
  3. Zdanie: zaprezentownie poprawionego kodu zadań prowadzącemu wraz z listą znalezionych błędów