15.02.2014, 14: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