Witam, napisałem skrypt który obsługuje błedy i dodaje informacje do bazy danych a nastepnie na innej stronie informacje sa odczytywane. Chciałbym was zapytać jak oceniacie mój skrypt i czego w nim brakuje.
Oczywiście brakuje tutaj obslugi błedów co do JS,PHP itd jak mam sformatować zmienne aby nie formatowały kodu JS, PHP itd (IMG:
style_emoticons/default/questionmark.gif)
Dodawanie informacji do bazy danych if (isset($_POST['przycisk'])) {
//Tworzymy krótkie nazwy zmiennych
$nazwaskryptu = $_POST['nazwaskryptu'];
$profesja = $_POST['profesja'];
$nazwapoziom = $_POST['nazwapoziom'];
$komentarz = $_POST['komentarz'];
$miasto = $_POST['miasto'];
$jaki_bot = $_POST['jaki_bot'];
$plikuzytkownika = $_FILES['plikuzytkownika'];
$skrypter = $_POST['skrypter'];
//Sklejanie zmiennych
$danatabela = $jaki_bot . $miasto;
//lokalizacja pliku
$lokalizacja = 'wyslane/'.$_FILES['plikuzytkownika']['name'];
if(strlen($lokalizacja) > 50
) { echo 'Dodawany plik nie może mieć nazwy dłuższej niż 50 znaków'; }
// tworzenie zmiennej nazwy pliku
$nazwapliku = $_FILES['plikuzytkownika']['name'];
// Sprawdzanie, czy wszystkie dane zostały wpisane
if(!$nazwaskryptu || !$nazwapoziom || !$komentarz || $miasto == "brak" || $jaki_bot == "pusty" || $profesja == "brak" || !$plikuzytkownika) {
echo 'Nie podałeś wszystkich danych'; }
// Sprawdzenie, czy przy próbie wysłania pliky wystąpił błąd
if ($_FILES['plikuzytkownika']['error'] > 0)
{
switch ($_FILES['plikuzytkownika']['error'])
{
case 1
: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break; case 2
: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break; case 3
: echo 'Plik wysłany tylko częściowo'; break; case 4
: echo 'Nie wysłano żadnego pliku'; break; case 6
: echo 'Nie można wysłać pliku: Nie wskazano katalogu tymczasowego.'; break; case 7
: echo 'Wysłane pliku nie powiodło się: Nie zapisano pliku na dysku.'; break; }
}
// sprawdzanie czy pole POZIOM zawiera same cyfry
echo 'Pole "Podaj poziom" musi zawierać same cyfry'; }
//sprawdzanie czy plik o podanej nazwie istnieje w katalogu
if($istnieje) {
echo 'Plik o nazwie <font color="#00FF00">'.$nazwapliku.'</font> istnieje już w katalogu, zmień nazwę pliku i spróbuj ponownie.'; }
//formatowanie zmiennych przed włożeniem do bazy danych
}
//laczenie z baza danych i dodawanie zapytania
@ $db = new mysqli('xxxxxxxx', 'xxxxxxxx', 'xxxxxxx', 'xxxxxxxx');
if(mysqli_connect_errno()) {
echo 'Blad: Polaczenie z baza danych nie powiodlo sie'; }
$zapytanie = "insert into $danatabela values (NULL, '".$profesja."', '".$nazwaskryptu."', '".$nazwapoziom."', '".$komentarz."', '".$skrypter."', '".$lokalizacja."',
'".$lokalizacja."') ";
$wynik = $db->query($zapytanie);
if(!$wynik) {
echo "Wystąpił błąd podczas zapisywania danych"; }
$db->close();
// umieszczenie pliku w pożądanej lokalizacji
{
{
echo 'Problem: Plik nie może być skopiowany do katalogu'; }
}
else
{
echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: '; echo $_FILES['plikuzytkownika']['name']; }
echo 'Plik został wysłany<br><br>'; }
Odczytywanie informacji@ $db = new mysqli('xxxxx', 'xxxxxx', 'xxxxxxx', 'xxxxxxxxx');
if(mysqli_connect_errno()) {
echo 'Blad: Polaczenie z baza danych nie powiodlo sie'; }
$zapytanie = "select * from $tabela order by profesja";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
for($i=0; $i <$ile_znalezionych; $i++) {
$wiersz = $wynik->fetch_assoc();
echo '<td width="50" bgcolor="#00FF00"><font size="5">'; $numerrek = stripslashes($wiersz['numer']); // numer rekordu w bazie danych nie usuwac tego echo '<td width="55" bgcolor="#C0C0C0">'; echo '<td width="100" bgcolor="#993333">'; echo '<td width="50" bgcolor="#00FFFF">'; echo '<td width="570" bgcolor="#663399">'; echo '<td width="55" bgcolor="#99ccff">'; echo '<td width="100" bgcolor="#99ff99">'; echo '<a href="podglad.php?lokalizacja='.$infpodg.'">Zobacz</a>'; echo '<td width="100" bgcolor="#ccff33">'; echo '<a href="pobierz.php?skad='.$infpobi.'">Pobierz</a>'; if(isset($_SESSION['prawid_uzyt'])) {
echo '<a href="usunskr.php?numerskr='.$numerrek.'&nazwatab='.$tabela.'&sciezka='.$infpodg.'">X</a>'; }
}
$wynik->free();
$db->close();