Cześć wszystkim!
Chciałbym podzielić się pomysłem na system dodawania wpisów do katalogu stron, który planuję wdrożyć na mojej stronie. Chciałbym poznać Wasze opinie na ten temat oraz ewentualne sugestie.
Oto, jak to ma działać:
Dodawanie wpisów bez rejestracji: Użytkownicy będą mogli dodawać swoje wpisy do katalogu bez konieczności rejestracji. Wystarczy, że wypełnią formularz z informacjami o stronie (tytuł, link, opis, obrazek).
Edycja wpisów z weryfikacją: Jeśli użytkownik będzie chciał edytować swój wpis, będzie musiał umieścić na swoim serwerze plik HTML o nazwie plik_weryfikacja.html, który będzie zawierał jego nazwę domeny. Dzięki temu będę mógł zweryfikować, że rzeczywiście jest właścicielem danej strony.
Zalety tego rozwiązania:
Umożliwia łatwe dodawanie wpisów bez zbędnych formalności.
Weryfikacja tożsamości przy edycji wpisu zwiększa bezpieczeństwo i zapobiega nadużyciom.
[
{
"title": "Gmina Terespol",
"link": "https://www.gminaterespol.pl",
"description": "Oficjalna Strona Gminy Terespol.",
"image": "https://fusion-v9.5v.pl/zapisane/images/1.png",
"owner": "gminaterespol.pl" // Nazwa domeny
},
{
"title": "Wędkarstwo Łowisko Wędkarskie Łążyn II",
"link": "http://lowisko-lazyn2.cba.pl",
"description": "Łowisko Wędkarskie Łążyn II Zapraszamy na malowniczo położone łowisko.",
"image": "https://fusion-v9.5v.pl/zapisane/images/1.jpg",
"owner": "lowisko-lazyn2.cba.pl" // Nazwa domeny
}
]
plik do edycji
<?php
function loadData($filePath) {
$json = file_get_contents($filePath);
return json_decode($json, true);
}
function saveData($filePath, $data) {
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
file_put_contents($filePath, $json);
}
function editRecord($filePath, $domain, $titleToEdit, $newLink, $newDescription, $newImage, $htmlFileUrl) {
$data = loadData($filePath);
foreach ($data as &$record) {
// Sprawdzenie, czy użytkownik jest właścicielem wpisu
if ($record['title'] === $titleToEdit && $record['owner'] === $domain) {
// Sprawdzenie, czy plik HTML istnieje
if (checkHtmlFile($htmlFileUrl)) {
$record['link'] = $newLink;
$record['description'] = $newDescription;
$record['image'] = $newImage;
break;
} else {
echo "Adres do pliku HTML jest niepoprawny.";
return;
}
}
}
saveData($filePath, $data);
echo "Wpis został zaktualizowany.";
}
function checkHtmlFile($url) {
// Sprawdzenie, czy plik HTML istnieje
$headers = @get_headers($url);
return $headers && strpos($headers[0], '200') !== false;
}
// Przykład użycia
$filePath = 'data.json'; // Ścieżka do pliku JSON
$domain = 'gminaterespol.pl'; // Nazwa domeny użytkownika
$titleToEdit = 'Gmina Terespol';
$newLink = 'https://www.nowy-link.pl';
$newDescription = 'Nowy opis gminy Terespol.';
$newImage = 'https://fusion-v9.5v.pl/zapisane/images/2.png';
$htmlFileUrl = 'https://gminaterespol.pl/plik_weryfikacja.html'; // Adres do pliku HTML
editRecord($filePath, $domain, $titleToEdit, $newLink, $newDescription, $newImage, $htmlFileUrl);
?>
Katalog stron demo
https://fusion-v9.5v.pl/katalog