intruz
Napraw Licznik PA mini.otwarty.pl
Skrypt ten naprawia błędne stany liczników w panelu administratora, w popularnym skrypcie katalogów mini.otwarty.pl. Błędy te powstają w wyniku przerwania połączenia z serwerem, kliknięcia kilku linków przed całkowitym załadowaniem się strony itp.
I. Cechy
1. Wersja 1.1
- usuwa tylko i wyłącznie błędne wartości wyświetlane w zbiorczym zestawieniu ilości kategorii, podkategorii, wpisów i relacji w panelu administratora
- wyświetla na czerwono ilość o jaką różnią się wartości przedstawiane w PA, a rzeczywiste.
2. Skrypt ten współpracuje z bazami danych tworzonych przez skrypt katalogu stron mini.otwarty.pl 1.0 oraz 1.1 (więcej informacji o skrypcie znajdziesz TUTAJ.
3. Działa całkowicie automatycznie, nie trzeba edytować zawartości pliku skryptu, gdyż korzysta z pliku "./otwarty_inc/config.php" na serwerze gdzie katalog ten jest zainstalowany.
4. Skrypt ten napisałem po około 4 dniach praktyki z PHP, wcześniej nie miałem żadnego doświadczenia w programowaniu w tym języku, jednak za pomocą metody prób i błędów pozbyłem się wszystkich problemów i działa (chyba) bezawaryjnie.
Jestem całkowitym amatorem dlatego kod jest toporny, nie zaawansowany, ale przez to mało skomplikowany, a co najważniejsze działa tak jak zamierzyłem.
Jednak mimo to proszę o ostrożność w posługiwaniu się nim, najlepiej jakby jacyś zaawansowani programiści się jeszcze wypowiedzieli na jego temat. Sam przetestowałem go kilka razy i działa moim zdaniem bez zarzutu.
II. Instalacja
1. Pobierz archiwum ze skryptem i wypakuj plik "napraw_licznik.php".
2. Umieść go na serwerze w folderze w jakim zainstalowany jest Twój skrypt katalogu stron.
3. Wejdź do pliku "napraw_licznik.php" wpisując jego nazwę po adresie katalogu. Np. "http://www.katalog.forumbiznesu.eu/napraw_licznik.php", lub "http://forumbiznesu.eu/katalog/napraw_licznik.php"
4. Pojawi się okno kontrolne z wyświetloną liczbą błędów w każdej z ilości.
5. Jeżeli zdecydujesz się na naprawę to kliknij link "tak napraw"
6. Po naprawieniu ponownie pojawi się okno kontrolne z wynikami ponownego wyszukiwania błędów, tym razem jednak żadnych nie będzie.
7. Plik "napraw_licznik.php" można usunąć potem z serwera, jednak jeżeli chciałbyś go ponownie użyć, nie musi być usuwany.
Bardzo proszę o pomoc w wykryciu i naprawieniu błędów. Będę także bardzo wdzięczny za propozycje i pomoc w modyfikowaniu skryptu.
Pozdrawiam
Twardes
Podaję także kod źródłowy. Może ktoś będzie zainteresowany
<?php
//
// @nazwa Napraw Licznik PA mini.otwarty.pl
// @wersja 1.1
// @autor Twardes
// @email twardes0040@wp.pl
// @strona domowa www.php.forumbiznesu.eu
// @copyright Twardes 2007
//
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="pl">
</head>
<?
include "otwarty_inc/config.php";
$sql = mysql_connect($dbhost, $dbuser, $dbpss);
$db = mysql_select_db($dbname);
$ilosci = "SELECT * FROM `" . $prefix . "ilosci`";
$ilosci_q = mysql_query($ilosci);
while ($l = mysql_fetch_assoc($ilosci_q))
{
$ile[$l['nazwa']] = $l[ilosc];
}
$kategorie = "SELECT * FROM `" . $prefix . "kategorie`";
$kategorie_q = mysql_query($kategorie);
$kategorie_ile = mysql_num_rows($kategorie_q);
$kategorie_n = "SELECT * FROM `" . $prefix . "kategorie` WHERE `akt` =0";
$kategorie_n_q = mysql_query($kategorie_n);
$kategorie_n_ile = mysql_num_rows($kategorie_n_q);
$kategorie_a_ile = $kategorie_ile - $kategorie_n_ile;
$podkategorie = "SELECT * FROM `" . $prefix . "podkategorie`";
$podkategorie_q = mysql_query($podkategorie);
$podkategorie_ile = mysql_num_rows($podkategorie_q);
$podkategorie_n = "SELECT * FROM `" . $prefix . "podkategorie` WHERE `akt` =0";
$podkategorie_n_q = mysql_query($podkategorie_n);
$podkategorie_n_ile = mysql_num_rows($podkategorie_n_q);
$podkategorie_a_ile = $podkategorie_ile - $podkategorie_n_ile;
$wpisy = "SELECT * FROM `" . $prefix . "wpisy`";
$wpisy_q = mysql_query($wpisy);
$wpisy_ile = mysql_num_rows($wpisy_q);
$wpisy_n = "SELECT * FROM `" . $prefix . "wpisy` WHERE `akt` =0";
$wpisy_n_q = mysql_query($wpisy_n);
$wpisy_n_ile = mysql_num_rows($wpisy_n_q);
$wpisy_a_ile = $wpisy_ile - $wpisy_n_ile;
$wpisy_m = "SELECT * FROM `" . $prefix . "wpisy` WHERE `moje` =1";
$wpisy_m_q = mysql_query($wpisy_m);
$wpisy_m_ile = mysql_num_rows($wpisy_m_q);
$relacje = "SELECT * FROM `" . $prefix . "relacje`";
$relacje_q = mysql_query($relacje);
$relacje_ile = mysql_num_rows($relacje_q);
function gdyniezero($roznica)
{
if ($roznica != 0)
{
return ('<font color="#FF0000"><b>' . $roznica . '</b></font>');
}
else
return ($roznica);
}
$kategorie_r = $ile[kat_a] + $ile[kat_n] - $kategorie_ile;
$kategorie_a_r = $ile[kat_a] - $kategorie_a_ile;
$kategorie_n_r = $ile[kat_n] - $kategorie_n_ile;
$podkategorie_r = $ile[pod_a] + $ile[pod_n] - $podkategorie_ile;
$podkategorie_a_r = $ile[pod_a] - $podkategorie_a_ile;
$podkategorie_n_r = $ile[pod_n] - $podkategorie_n_ile;
$wpisy_r = $ile[wpi_a] + $ile[wpi_n] - $wpisy_ile;
$wpisy_a_r = $ile[wpi_a] - $wpisy_a_ile;
$wpisy_n_r = $ile[wpi_n] - $wpisy_n_ile;
$wpisy_m_r = $ile[moje] - $wpisy_m_ile;
$relacje_r = $ile[rel] - $relacje_ile;
?>
<title>Napraw Licznik w PA mini.otwarty.pl</title>
<p align="center"><b><font size="5">Napraw Licznik w PA mini.otwarty.pl</font></b></p>
<p align="center"> </p>
<p align="center">Skrypt służy do aktualizacji kilku pozycji panelu
administratora.<br>Uaktualnia on wpisy w tabeli *ilości w bazie danych
skryptu katalogu stron mini.otwarty.pl</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="4">
<tr>
<td> </td>
<td>
<p align="center">Ilość w PA</td>
<td>
<p align="center">Rzeczywista ilość</td>
<td>
<p align="center">Różnica</td>
</tr>
<tr>
<td>
<p align="center">Kategorie (wszystkie) </td>
<td align="center"><?= $ile[kat_a] + $ile[kat_n] ?></td>
<td align="center"><?= $kategorie_ile ?></td>
<td align="center"><?= gdyniezero($kategorie_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Kategorie aktywne</td>
<td align="center"><?= $ile[kat_a] ?></td>
<td align="center"><?= $kategorie_a_ile ?></td>
<td align="center"><?= gdyniezero($kategorie_a_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Kategorie nieaktywne</td>
<td align="center"><?= $ile[kat_n] ?></td>
<td align="center"><?= $kategorie_n_ile ?></td>
<td align="center"><?= gdyniezero($kategorie_n_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Podkategorie (wszystkie)</td>
<td align="center"><?= $ile[pod_a] + $ile[pod_n] ?></td>
<td align="center"><?= $podkategorie_ile ?></td>
<td align="center"><?= gdyniezero($podkategorie_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Podkategorie aktywne</td>
<td align="center"><?= $ile[pod_a] ?></td>
<td align="center"><?= $podkategorie_a_ile ?></td>
<td align="center"><?= gdyniezero($podkategorie_a_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Podkategorie nieaktywne</td>
<td align="center"><?= $ile[pod_n] ?></td>
<td align="center"><?= $podkategorie_n_ile ?></td>
<td align="center"><?= gdyniezero($podkategorie_n_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Wpisy (wszystkie) </td>
<td align="center"><?= $ile[wpi_a] + $ile[wpi_n] ?></td>
<td align="center"><?= $wpisy_ile ?></td>
<td align="center"><?= gdyniezero($wpisy_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Wpisy aktywne</td>
<td align="center"><?= $ile[wpi_a] ?></td>
<td align="center"><?= $wpisy_a_ile ?></td>
<td align="center"><?= gdyniezero($wpisy_a_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Wpisy nieaktywne</td>
<td align="center"><?= $ile[wpi_n] ?></td>
<td align="center"><?= $wpisy_n_ile ?></td>
<td align="center"><?= gdyniezero($wpisy_n_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Wpisy moje</td>
<td align="center"><?= $ile[moje] ?></td>
<td align="center"><?= $wpisy_m_ile ?></td>
<td align="center"><?= gdyniezero($wpisy_m_r) ?></td>
</tr>
<tr>
<td>
<p align="center">Relacje wpis / podkategoria</td>
<td align="center"><?= $ile[rel] ?></td>
<td align="center"><?= $relacje_ile ?></td>
<td align="center"><?= gdyniezero($relacje_r) ?></td>
</tr>
</table>
</div>
<p align="center"><font size="1" face="Verdana">autor:
<a href="http://www.php.forumbiznesu.eu">Twardes</a>
wersja v1.0test</font></p> <p align="center">
Czy chcesz naprawić licznik w Panelu Administratora?<br>
<a href="napraw_licznik.php?a=tak">tak napraw</a> | <a href="./otwarty_admin/index.php">nie
naprawiaj</a> </p>
<?
switch ($_GET[a])
{
case "tak":
$kat_a_u = "UPDATE `" . $prefix . "ilosci` SET `ilosc` = '$kategorie_a_ile' WHERE `nazwa` = 'kat_a'";
mysql_query($kat_a_u);
$kat_n_u = "UPDATE `" . $prefix . "ilosci` SET `ilosc` = '$kategorie_n_ile' WHERE `nazwa` = 'kat_n'";
mysql_query($kat_n_u);
$pod_a_u = "UPDATE `" . $prefix . "ilosci` SET `ilosc` = '$podkategorie_a_ile' WHERE `nazwa` = 'pod_a'";
mysql_query($pod_a_u);
$pod_n_u = "UPDATE `" . $prefix . "ilosci` SET `ilosc` = '$podkategorie_n_ile' WHERE `nazwa` = 'pod_n'";
mysql_query($pod_n_u);
$wpi_a_u = "UPDATE `" . $prefix . "ilosci` SET `ilosc` = '$wpisy_a_ile' WHERE `nazwa` = 'wpi_a'";
mysql_query($wpi_a_u);
$wpi_n_u = "UPDATE `" . $prefix . "ilosci` SET `ilosc` = '$wpisy_n_ile' WHERE `nazwa` = 'wpi_n'";
mysql_query($wpi_n_u);
$wpi_m_u = "UPDATE `" . $prefix . "ilosci` SET `ilosc` = '$wpisy_m_ile' WHERE `nazwa` = 'moje'";
mysql_query($wpi_m_u);
$rel_u = "UPDATE `" . $prefix . "ilosci` SET `ilosc` = '$relacje_ile' WHERE `nazwa` = 'rel'";
mysql_query($rel_u);
echo "tak";
header("location: napraw_licznik.php");
break;
}
?>
Z góry dziękuję z uwagi!!!
Fajne narzędzie. W rzadziej odwiedzanych katalogach używam go do sprawdzania, czy ktoś sie dodał, bo dużo szybciej się ładuje niż PA, a i czasem jak zauważę pewne nieścisłości to i kliknę "tak napraw". Musiałem sobie tylko dorobić link do PA (o linku do str. startowej pamiętałeś, a o PA zapomniałeś :D ).
dzięki za uwagę :) w niedługim czasie postaram się to zmienić.
dodatkowo powstały 3 nowe narzędzia:
- aktualizacja liczników (na razie tylko wpisów) poszczególnych kategorii
- aktualizacja liczników (na razie tylko wpisów) poszczególnych podkategorii
- usuwanie relacji nieprzypisanych do żadnego wpisu (powstają w efekcie ręcznego usuwania wpisów)
Jednak są to tylko narzędzia naprawcze, nie diagnostyczne i na razie nieprzygotowane do upublicznienia (w pełni ich nie przetestowałem), a niestety czas ich działania jest bardzo długi - bardzo obciąża bazę danych, serwer mysql i staram się usprawnić algorytm, albo jakoś podzielić na etapy wykonywany proces.
pracuje też nad narzędziem które będzie usuwało/aktywowało/dezaktywowało wpisy zawierające wybraną frazę w tytule lub opisie lub słowach kluczowych, albo url (ale napotykam wiele problemów więc nie wiem kiedy to skończę :\
spis zmian w wersji napraw_licznik_v.1.1
I Poprawki:
1. Zmieniony link nie naprawiaj (teraz odsyła do Panelu Administracyjnego)
2. Poprawiony błąd w obliczaniu i wyświetlaniu różnicy wpisów aktywnych
Funkcjonalnie skrypt się nie zmienił, po poprzednia wersja, 1.0test, nie powodowała żadnych problemów ani nieprawidłowości.
-
Tematy
- intruz
- : biedaczka..żel jej..moge dodać na adopcyjne? http://www.rottka.fora.pl...ach,75.html#457
- [ COD2] 79.185.15.166/18 (<PL>Seku)
- instrukcja wzm. kenwood kac-646x - szukam PL
- 83.27.154.191 (^1Lesi^7^1u ^7[PL])
- WSTRZYMAJCIE konie z zakupem COD4 PL - nie dziala MP !!
- 83.23.175.201 (Dorth PL)
- 83.16.102.34 (BOSS..pl)
- 91.146.208.9 (<[GOW]>SHooTER_pl)
- 82.160.42.194 (olo_pl)
- !! PL v1.3 AM3.5 !! .:ReZeRwAt.com:. COD2 (AM)