http://www14.zippyshare.com/v/52779669/file.html
<? //dodanie auta if($akcja==1){ //najpierw sprawdzamy czy nie dodajemy kolejny raz tego samego auta, blokada anty floadowa $zapytanie="SELECT * FROM auto WHERE id_marka='$marka' AND id_model='$model' AND id_typ='$typ' AND rocznik='$rocznik' AND data_wpisania < DATE_SUB( CURRENT_TIMEstamp(), INTERVAL 3 MINUTE)"; if($jest<1){ //czyli nie ma takiego auta //dodajemy auto do bazy $zapytanie="INSERT INTO auto (id_marka, id_model, id_typ, klimatyzacja, rocznik, kolor, ilosc_miejsc, id_skrzynia_biegow, id_rodzaj_paliwa, moc, pojemnosc, hak, fotka, uwagi, data_wpisania) VALUES ('$marka', '$model', '$typ', '$klimatyzacja', '$rocznik', '$kolor', '$miejsca', '$skrzynia', '$paliwo', '$moc', '$pojemnosc', '$hak', '$userfile', '$uwagi', now())"; if($result){ // ID dodanego rekordu } //dodajemy zdjęcie pojazdu //ładowanie zdjęcia $uploaddir = "galeria_aut/"; // katalog w którym są przechowywane zdjęcia pojazdów $maxfilesize = 6144; // maksymalny rozmiar zdjęcia jakie może zostać wysłane na serwer, rozmiar podany w bajtach $filename = $_FILES['userfile']['name']; $filesize = $_FILES['userfile']['size']; $filetmpname = $_FILES['userfile']['tmp_name']; $allowed_types = array("jpg" , "gif" ,"GIF" ,"JPG"); // rozszerzenia plików graficznych jakie mogą zostać wysłane na serwer, można je także edytować if($filename) { $error = 0; if(($filesize > $maxfilesize) || ($filesize == 0)){ $error = 1; $errmsg .= "<p>Rozmiar pliku jest za duży (limit: 60kB)</p>"; // alert informujący nas o tym że wgrywane zdjęcie przekracza limit } else { $error = 0; } $error = 1; $errmsg .= "<p>Plik ma niedozwolone rozwinięcie (dozwolone typy to: Gif, Jpg)</p>"; // plik graficzny ma niedozwolone rozszerzenie } else { $error = 0; } if($error == 1) { } else { $filename_new = strtolower($num_start.$filename); // tworzy nową nazwe pliku //zmienic ciag znakow na male litery //print_r($_FILES); //info o ladowanym pliku //nie pokazuj bledow if($upload) { //pomniejszenie fotki $img_type = null; function getImage($imgName) { if($ext == 'jpg'){ $img = imagecreatefromjpeg($imgName); $GLOBALS['img_type'] = IMG_JPEG; } else if($ext == 'gif'){ $img = imagecreatefromgif($imgName); $GLOBALS['img_type'] = IMG_GIF; } else if($ext == 'png'){ $img = imagecreatefrompng($imgName); $GLOBALS['img_type'] = IMG_PNG; } else{ $img = null; $GLOBALS['img_type'] = null; } return $img; } function saveImage($img, $name, $imgType, $dest_dir) { $name = $name."."; switch($imgType){ case IMG_JPEG: $name .= "jpg"; imagejpeg($img, "galeria_aut/miniaturki/".$name); break; case IMG_GIF: $name .= "gif"; imagegif($img, "galeria_aut/miniaturki/".$name); break; case IMG_PNG: $name .= "png"; imagepng($img, "galeria_aut/miniaturki/".$name); break; } } function resize($scr_dir, $dest_dir, $imgName, $size) { if(!($img = getImage($scr_dir.$imgName))){ return false; } $img_w = imagesx($img); $img_h = imagesy($img); $ratio = $img_w / $img_h; if($ratio > 1){ $new_img_w = $size; $new_img_h = ($size / $ratio); } else{ $new_img_w = ($size * $ratio); $new_img_h = $size; } $tempImg = imagecreatetruecolor($new_img_w, $new_img_h); imagecopyresized($tempImg, $img, 0, 0, 0, 0, $new_img_w, $new_img_h, $img_w, $img_h); saveImage($tempImg, $imgName, $GLOBALS['img_type'], $dst_dir); } resize("galeria_aut/", "galeria_aut/miniaturki/", "$filename_new", 120); $zapytanie="UPDATE auto SET fotka='$filename_new' WHERE id='$id_auto'"; }//koniec dodawania fotki } //koniec jeœli nie ma auta else { //jeœli auto jest już w bazie } } //koniec dodawania auta wyswietlenie wynikow //wyswietlanie daych auta jeœli opracja była poprawna i uzyskano $id_auto $row=getinfoauto($id_auto); //sprawdzamy co wyszlo $marka=$row['marka']; $model=$row['model']; $typ=$row['typ']; $paliwo=$row['rodzaj']; $skrzynia=$row['skrzynia']; $rocznik=$row['rocznik']; $ilosc_miejsc=$row['ilosc_miejsc']; $moc=$row['moc']; $pojemnosc=$row['pojemnosc']; $kolor=$row['kolor']; $klimatyzacja=$row['klimatyzacja']; $hak=$row['hak']; $uwagi=$row['uwagi']; $fotka=$row['fotka']; $data_wpisania=$row['data_wpisania']; echo "<b>Zdjęcie:</b><br/> <a href=\"galeria_aut/$fotka\" rel=\"lightbox\" title=\"Nr auta $id_auto, $marka, $model,\"><img src=\"galeria_aut/miniaturki/$fotka\" alt=\"$fotka\" border=\"0\" /></a> <br/>"; echo "<b>Uwagi:</b><br/><textarea name=\"\" rows=\"10\" cols=\"20\" readonly=\"\">$uwagi</textarea><br/>"; } ?>
<? include('head.php'); include('sql.php'); include('funkcje.php'); //dodawanie marki samochodu if ($akcja==1){ //sprawdzamy czy nie dodajemy poraz drugi wpisanej marki $zapytanie="SELECT * FROM marka WHERE marka='$nazwa_marka'"; if($jest<1){ $zapytanie="INSERT INTO marka (marka) VALUES ('$nazwa_marka')"; } } else{ } } //koniec dodawania marki do bazy echo" <b>Podaj markę pojazdu:</b><br/> <form name=\"formularz\" action=\"?akcja=1\" method=\"post\" onsubmit=\"if(this.nazwa_marka.value==''){alert('Prosze uzupełnić pole z markš pojazdu.');return false}\"> <input type=\"text\" name=\"nazwa_marka\" value=\"\" maxlength=\"15\" size=\"10\" /> <input type=\"submit\" value=\"Zapisz\" /> </form> "; $zapytanie="SELECT * FROM marka order by marka"; //pobieranie danych o markach z bazy $id_marka=$row['id']; $marka=$row['marka']; } } //koniec wybierania marki auta if ($akcja==1){ //sprawdzamy czy nie dodajemy poraz drugi wpisanego modelu $zapytanie="SELECT * FROM model WHERE id_marka='$marka' and model='$nazwa_model'"; if($jest<1){ $zapytanie="INSERT INTO model (id_marka, model) VALUES ('$marka', '$nazwa_model')"; } } else{ } } //koniec dodawania modelu do bazy echo" <b>Podaj model pojazdu:</b><br/> <form name=\"formularz\" action=\"?marka=$marka&akcja=1\" method=\"post\" onsubmit=\"if(this.nazwa_model.value==''){alert('Prosze uzupełnić pole z modelem pojazdu.');return false}\"> <input type=\"text\" name=\"nazwa_model\" value=\"\" maxlength=\"15\" size=\"10\" /> <input type=\"submit\" value=\"Zapisz\" /> </form> "; $zapytanie="SELECT * FROM model WHERE id_marka='$marka'order by model"; //pobieranie danych o markach z bazy $id_model=$row['id']; $nazwa_model=$row['model']; } } //koniec wybierania modelu auta //uzupelnienie pozostałych danych $zapytanie="SELECT marka FROM marka WHERE id='$marka'"; $nazwa_marka=$row[0]; $zapytanie="SELECT model FROM model WHERE id='$model'"; $nazwa_model=$row[0]; //poczatek formularza //TYP auta $zapytanie="SELECT * FROM typ_auto"; $id_typ=$row['id']; $typ=$row['typ']; } //skrzynia biegow $zapytanie="SELECT * FROM skrzynia_biegow"; $id_skrzynia=$row['id']; $skrzynia=$row['skrzynia']; } //Rodzaj paliwa $zapytanie="SELECT * FROM rodzaj_paliwa"; $id_paliwa=$row['id']; $paliwo=$row['rodzaj']; } echo"<b>Pojemnoœć(cm<sup>3</sup>):</b> <input type=\"text\" name=\"pojemnosc\" size=\"4\" maxlength=\"4\" /><br/>"; echo"<b>Iloœć miejsc:</b> <input type=\"text\" name=\"miejsca\" size=\"2\" maxlength=\"2\" /><br/>"; echo"<b>Uwagi(dodatkowe wyposażenie):</b><br/> <textarea name=\"uwagi\" rows=\"5\" cols=\"20\"></textarea><br/>"; } include('dodanie_auta.php'); } include('dol.php'); ?>
Podczas logowania następuje edycja rekordu i danemu ciasteczku w tabeli zostaje przypisany id_uzytkownik. Hasło wpisane przez użytkownika znów jest szyfrowane i porównywane w tym umieszczonym w bazie. Jeśli login i hasło odpowiadają wpisowi w bazie danych następuje logowanie użytkownika. Jeśli niewyświetlane są odpowiednie komunikaty. Wylogowanie następuje poprzez wymazanie id_uzytkownik z tabeli logowanie przez co ciasteczko nie jest przypisane do żadnego użytkownika w bazie. Kompletny kod pliku logowanie.php. <? include('sql.php'); $sid=$_COOKIE['sid']; if($akcja=="logowanie"){ //sprawdzanie czy użytkownik o podanym loginie i haśle istnieje $zapytanie="SELECT id FROM uzytkownik WHERE login='$l' AND haslo='$h'"; if ($jest=='0'){ //brak użytkownika odpowiadającego podanym danym } else{ //użytkownik istnieje możemy go zalogować $id_uzytkownik=$row['id']; $zapytanie="UPDATE logowanie SET id_uzytkownik='$id_uzytkownik', data_logowania=now() WHERE sid='$sid'"; if($result){ $zapytanie="UPDATE uzytkownik SET data_logowania=now(), ip='$ip', uzytkownik_agent='$uzytkownik_agent'"; if($result){ } } } } //koniec logowania if($akcja=="wylogowanie"){ $zapytanie="UPDATE logowanie SET id_uzytkownik='0'"; } //sprawdzenie czy użytkownik jest już zalogowany $zapytanie="SELECT id_uzytkownik FROM logowanie WHERE sid='$sid' and id_uzytkownik!='0'"; if($jest>0){ //jeśli użytkownik jest zalogowany $id_uzytkownik=$row['id_uzytkownik']; $zapytanie="SELECT * FROM uzytkownik WHERE id='$id_uzytkownik'"; $login=$row2['login']; $konto=$row2['konto'] ; echo "Witaj <b>$login</b><br/> <form name=\"\" action=\"index.php\" method=\"post\"> <input type=\"hidden\" name=\"akcja\" value=\"wylogowanie\" /> <input type=\"submit\" value=\"Wyloguj\" /> </form> <br/>"; } else { //jeśli nie jest zalogowany wyświetlamy formularz logowania echo"<form name=\"formularz\" action=\"index.php\" method=\"post\"> Login <input type=\"text\" name=\"l\" value=\"\" /> Hasło <input type=\"password\" name=\"h\" value=\"\" /> <input type=\"hidden\" name=\"akcja\" value=\"logowanie\" /><br> <input type=\"submit\" value=\"Logowanie\" /> </form> "; echo"<form name=\"formularz\" action=\"rejestracja.php\" method=\"post\"> <input type=\"submit\" value=\"Rejestracja\" /> </form> "; } ?>
Poniższy kod przedstawia fragment formularza rejestracyjnego. Hasło które wpisujemy jest maskowane za pomocą gwiazdek. W formularzu rejestracyjnym wymagane są 3 podstawowe pola: login, hasło i adres e-mail, bez podania tych Pol rejestracja nie będzie mogła zostać ukończona. Login i hasło może składać się maksymalnie z 35 znaków. Poniższy kod sprawdza czy wymagane pola zostały wypełnione, w przeciwnym wypadku wyświetla odpowiedni alert. onsubmit=\"if(this.login.value==''|| this.haslo.value==''|| this.mail.value==''){alert('Prosze upewnić się czy są wypełnione pola oznaczone gwiazdką.');return false}\"> Cały kod odpowiedzialny za formularz rejestracji. <?php include('sql.php'); $ip=$_SERVER["REMOTE_ADDR"]; //adres IP komputera użytkownika $user_agent=$_SERVER['HTTP_USER_AGENT']; //przeglądarka z jakiej korzysta if($akcja==1){ // //sprawdzanie czy użytkownik o podanym loginie istnieje $zapytanie="SELECT * FROM user WHERE login='$login'" ; //jeśli $jest<1 czyli user o takim loginie nie istnieje, wykonaj dalsza cześć operacji czyli rejestracja if ($jest<1){ $zapytanie="INSERT INTO user (login, haslo, pesel, nip, imie, nazwisko, miasto, kod_pocztowy, ulica, nr_domu, nr_mieszkania, mail, telefon, data_rejestracji, ip, user_agent ) VALUES ('$login', '$haslo', '$pesel', '$nip', '$imie', '$nazwisko', '$miasto', '$kod_pocztowy', '$ulica', '$nr_domu', '$nr_mieszkania', '$mail', '$telefon', now(), '$ip', '$user_agent')" ; if($result){ } } else { //jeśli podana osoba istnieje } } else { //rejestracja formularz echo "<form name=\"formularz\" action=\"?akcja=1\" method=\"post\" onsubmit=\"if(this.login.value==''|| this.haslo.value==''|| this.mail.value==''){alert('Prosze upewnić się czy sš wypełnione pola oznaczone gwiazdkš.');return false}\"> <b>Login:*</b><br/> <input type=\"text\" name=\"login\" value=\"\" maxlength=\"35\" /><br/> <b>Hasło min 5 znaków:*</b><br/> <input type=\"password\" name=\"haslo\" value=\"\" maxlength=\"35\"><br/> <b>E-mail:*</b> <br /> <input type=\"text\" name=\"mail\" value=\"\" /><br /> <b>Tel. kontaktowy:</b> <br /> <input type=\"text\" name=\"telefon\" value=\"\" size=\"10\"/><br /> <b>Pesel</b> - osoba fizyczna<br /> <input type=\"text\" name=\"pesel\" value=\"\" size=\"11\" maxlength=\"11\"><br /> <!--<b>NIP</b> - firma</br/> <input type=\"text\" name=\"nip\" value=\"\" size=\"13\" maxlength=\"13\" /> <br /> --> <b>Imie:</b><br /> <input type=\"text\" name=\"imie\" value=\"\" maxlength=\"25\"><br/> <b>Nazwisko:</b> <br /> <input type=\"text\" name=\"nazwisko\" value=\"\" /><br /> <b>Miejscowoœć:</b><br /> <input type=\"text\" name=\"miasto\" value=\"\" /><br /> <b>Kod pocztowy:</b><br /> <input type=\"text\" name=\"kod_pocztowy\" value=\"\" size=\"6\" maxlength=\"6\" format=\"NN-NNN\"><br/> <b>Ulica nr domu / mieszkania</b><br/> <input type=\"text\" name=\"ulica\" size=\"10\" value=\"\" /> <input type=\"text\" name=\"nr_domu\" size=\"2\" value=\"\" />/<input type=\"text\" name=\"nr_mieszkania\" value=\"\" size=\"2\"/><br/> <input type=\"submit\" value=\"Rejestacja\" /> </form>"; } ?> Następuje przesłanie danych z formularza i rejestracja użytkownika, jeśli zostaną spełnione następujące warunki i tak pokoleji nastepuje walidacja adresu e-mail sprawdzenie czy jest poprawny. if(preg_match ("/^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,6}$/", "$mail")){} Jeśli ten warunek jest spełniony następuje sprawdzenie w bazie danych czy użytkownik o podanym loginie lub adresie e-mail przypadkiem nie istnieje. Jeśli nie szyfrujemy hasło $haslo=md5($haslo); ze względów bezpieczeństwa
Sesja.php plik odpowiada za identyfikacje użytkownika, każdy użytkownik wchodzący na stronę otrzymuje unikalny klucz sesji przechowywany w ciasteczku generowany przez funkcje function genSesja . Oprócz tego dane są zapisywane w bazie dany w tabeli logowanie. Dzięki czemu wyciągając ostatni nr id z tej tabeli w łatwy sposób możemy określić ile było wejść na nasza stronę, ile aktualnie jest użytkowników i gości. Ciasteczka ważne są tylko do zamknięcia przeglądarki oraz usuwane z bazy danych po 20 min od żadnej reakcji użytkownika. W pliku sesja.php przechowujemy login hasło i nazwę bazy danych, czyli funkcje umożliwiającą polaczenie z baza danych. Kompletny kod pliku sesja.php. <? include('sql.php'); $ip=$_SERVER["REMOTE_ADDR"]; $użytkownik_agent=$_SERVER['HTTP_UŻYTKOWNIK_AGENT']; // funkcja generująca sesje function genPass($len) { if ($len <1 || $len >16) return" "; $chars="ABCDEFGHIJKLMNOPQRTSUVWXYZ"; $chars.="1234567890"; $chars.="abcdefghijklmnoprstuvwxyz"; $pass=""; for($i = 0; $i < $len; $i++){ $pass.=$chars[$rand]; } return $pass; } // koniec funkcji generującej sesje //usuwanie z tabeli starych użytkowników i gości $zapytanie="DELETE FROM logowanie WHERE data_waznosc<'$data_aktualna'"; $sid=$_COOKIE['sid']; $zapytanie="SELECT * FROM logowanie WHERE sid='$sid'"; if($jest>0){ $zapytanie="UPDATE logowanie SET data_waznosc='$data_waz'"; } else { $sid=(genPass(16)); $zapytanie="INSERT INTO logowanie (sid, data_waznosc, ip, użytkownik_agent)VALUES('$sid', '$data_waz', '$ip', '$użytkownik_agent')"; } } else{ $sid=(genPass(16)); $zapytanie="INSERT INTO logowanie (sid, data_waznosc, ip, użytkownik_agent)VALUES('$sid', '$data_waz', '$ip', '$użytkownik_agent')"; } ?>