15.02.2014 o 13:37

[PHP] Tworzymy skracacz linków - cz. II - sprawdzanie i dodawanie przez PHP do bazy MySQL

Siemka :)

W ostatniej części "Tworzymy skracacz linków" pisałem o planach, bazie danych i formularzu - zobacz.

Dzisiaj opiszę o działaniach PHP z bazą danych, zaczniemy od połączenia z bazą, później sprawdzania czy w bazie jest dany skrót, a później dodaniu skrótu do bazy.

Łączenie z bazą.
Tworzymy plik np. w Notepad++ w PHP i ustawiamy format na "Koduj z UTF-8 (bez BOM)" i dajemy nazwę np. db_connect.php, a jego zawartość będzie wyglądać tak.

<?php
    mysql_connect("localhost", "login", "haslo") or die("Błąd połączenia z bazą danych");
    mysql_select_db("nazwa tabeli") or die("Błąd połączenia z tabelą");
?>


Gdzie mysql_connect(); służy do połączenia z serwerem MySQL, a mysql_selest_db(); do wybrania bazy MySQL z którą chcemy się połączyć.

die(); zawiera komunikat w razie problemu z połączeniem i gdy problem się pojawi, to wyświetli ten komunikat.

Kod skryptu powinien wyglądać mniej więcej tak:
<?php

    include_once("db_connect.php");

        $zapSQL = mysql_query("SELECT * FROM skroty WHERE nazwa = '".$_GET['url']."'");
       
        if($_GET['url'] == TRUE && mysql_num_rows($zapSQL) > 0){
            while($pokaz = mysql_fetch_assoc($zapSQL)) {
                echo 'Trwa przekierowanie <br />Jeśli nie nastąpi w ciągu kilku sekund, <a href="'.$pokaz['link'].'">kliknij tutaj</a>';
                ?>
                    <script type="text/javascript">
                    setTimeout(function(){
                    window.location.href = "<?php echo $pokaz['link']; ?>";
                    },
                    5000);
                    </script>
                <?php
            }   
        }else{
            if($_POST['skroc']){
                if($_POST['skroc'] && $_POST['adres'] && $_POST['nazwa']){   
                    $zapSQL2 = mysql_query("SELECT * FROM skroty WHERE nazwa = '".$_POST['nazwa']."'");
                    if(mysql_num_rows($zapSQL2) > 0) {
                        echo 'Skrót o nazwie <b>'.$_POST['nazwa'].'</b> już istnieje :( <br />';
                    }else{
                        mysql_query("INSERT INTO skroty SET nazwa='".$_POST['nazwa']."', link='".$_POST['adres']."'");
                        echo 'Skrót o nazwie <b>'.$_POST['nazwa'].'</b> został dodany <br />
                              Adres skrótu: <a href="http://nazwa-stro.ny/?url='.$_POST['nazwa'].'">http://nazwa-stro.ny/?url='.$_POST['nazwa'].'</a><br />';
                    }
                }else{
                    echo 'Nie wypełniono wszystkich pól! <br />';
                }   
            }
?>


Gdzie:
- include_once();
wyświetla połączenie z bazą danych i tabelą

$zapSQL = mysql_query("...");

 zapytanie wyświetlające skrót o nazwie podanej w linku http://nazwa-stro.ny/?url=nazwa-skrotu

if($_GET['url'] == TRUE && mysql_num_rows($zapSQL) > 0){

Jeśli jest wpisany link ?url=  i w bazie danych istnieje dany skrót, to wykona daną czynność zawartą w
if(){ tutaj }


            while($pokaz = mysql_fetch_assoc($zapSQL)) {
                echo 'Trwa przekierowanie <br />Jeśli nie nastąpi w ciągu kilku sekund, <a href="'.$pokaz['link'].'">kliknij tutaj</a>';
                ?>
                    <script type="text/javascript">
                    setTimeout(function(){
                    window.location.href = "<?php echo $pokaz['link']; ?>";
                    },
                    5000);
                    </script>
                <?php
            }
Wyświetla skrót i przez JavaScript przekieruje nad do niego w ciągu 5 sekund.

        }else{
            if($_POST['skroc']){
                //tutaj kod po kliknieciu na przycisk
           }
          //tutaj formularz
        }

Jeśli nie wpisano nazwy skrótu w ?url= i nie ma jej w bazie, to wyświetla funkcje funkcje sprawdzającą czy wysłano formularz oraz poniżej kod formularza.

$zapSQL2 = mysql_query("SELECT * FROM skroty WHERE nazwa = '".$_POST['nazwa']."'");
                    if(mysql_num_rows($zapSQL2) > 0) {
                        echo 'Skrót o nazwie <b>'.$_POST['nazwa'].'</b> już istnieje :( <br />';
                    }else{
                        mysql_query("INSERT INTO skroty SET nazwa='".$_POST['nazwa']."', link='".$_POST['adres']."'");
                        echo 'Skrót o nazwie <b>'.$_POST['nazwa'].'</b> został dodany <br />
                              Adres skrótu: <a href="http://nazwa-stro.ny/?url='.$_POST['nazwa'].'">http://nazwa-stro.ny/?url='.$_POST['nazwa'].'</a><br />';
                    }


Gdy przycisk został kliknięty, czyli wysłany formularz, to sprawdza czy dany skrót istnieje w bazie, jeśli tak wyświetla o tym komunikat, a jeśli nie dodaje go do bazy.

I to jest gotowy skracacz, taki troszkę okrojony, przydało by się go jeszcze zabezpieczyć i ładniejszy link skrótu np. nazwa-skrotu.nazwa-stro.ny albo nazwa-stro.ny/nazwa-skrotu.

Ale tym zajmiemy się w następnej części.

Jeśli chcesz pobrać ten skrypt, kliknij poniżej:
Pobierz skrypt

Planowany rozkład tworzenia LinkShort-a:
cz. I - wprowadzenie
cz. II - sprawdzanie i dodawanie przez PHP do bazy MySQL
cz. III - ustawienia .htaccess
cz. IV - zabezpieczenia
--------------------------------------------------------------------------
cz. V - LinkShort v2 - wprowadzenie
cz. VI - LinkShort v2 - statystyki
cz. VII - LinkShort v2 - panel zarządzania

Pozdrawiam
DraG


Komentarze
© 2010 - 2018 - Karol Drąg
Wszelkie prawa zastrzeżone
Polityka plików cookies