Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Rad sa bazom i stuktura programa

[es] :: PHP :: PHP za početnike :: Rad sa bazom i stuktura programa

[ Pregleda: 1725 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MACTEPx

Član broj: 47593
Poruke: 341
*.dynamic.isp.telekom.rs.



+5 Profil

icon Rad sa bazom i stuktura programa16.11.2011. u 14:22 - pre 151 meseci
Krenuo sam da ucim PHP i napravio sam sledeci najjednostavniji projekat:

connection.inc - fajl za konekciju na bazu
Code:

<?php
    $con = mysql_connect("localhost","root","");
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }
    mysql_select_db("baza", $con);
?>


index.php - prikazuje iz baze id, ime i prezime osobe, a ima i mogucnost dodavanja novih osoba
Code:

<?php include 'include/connection.inc'; ?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <form name="forma" method="post" action="">
            Ime: <input type="text" name="txtIme" value="" /></br>
            Prezime: <input type="text" name="txtPrezime" value="" /></br>
            <input type="submit" value="Posalji" name="btnPosalji" />
        </form>
        <?php
        //insert
            if(isset($_REQUEST["btnPosalji"])){
                $ime= $_REQUEST["txtIme"];
                $prezime= $_REQUEST["txtPrezime"];
                echo $ime . " " . $prezime;
                
                  $sql="INSERT INTO osoba (ime, prezime)
                                VALUES ('$ime', '$prezime')";
                if (!mysql_query($sql,$con))
                {
                    die('Error: ' . mysql_error());
                }
                echo "1 record added";
            }
            
            //select
            $sql="SELECT * FROM osoba";
            $result = mysql_query($sql);

            while($row = mysql_fetch_array($result))
            {
                echo $row['Ime'] . " " . $row['Prezime'];
                echo "<a href=\"update.php?id=" . $row['id'] . "\">Izmeni</a>";
                echo "<a href=\"delete.php?id=" . $row['id'] . "\">Obrisi</a>";
                echo "<br />";
            }
        ?>
    </body>
</html>


update.php - sadrzi kod za izmenu osobe
Code:

<?php include 'include/connection.inc'; ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php 
    if(isset($_REQUEST['id'])){    
        $id=$_REQUEST['id'];
        $sql="SELECT * FROM osoba WHERE id=" . $id ;
        $result = mysql_query($sql);
        $row = mysql_fetch_array($result);
    }
?>
    <form name="forma" method="post" action="">
        Ime: <input type="text" name="txtIme" value="<?php echo $row['Ime'] ?>" /></br> 
        Prezime: <input    type="text" name="txtPrezime" value="<?php echo $row['Prezime'] ?>" /></br> 
        <input type="submit" value="Posalji" name="btnPosalji" />
    </form>
<?php 
    if(isset($_REQUEST["btnPosalji"])){
        $ime= $_REQUEST["txtIme"];
        $prezime= $_REQUEST["txtPrezime"];
        echo $ime . " " . $prezime;
    
        $sql="UPDATE osoba SET ime='$ime', prezime='$prezime' WHERE id='$id'";
    
        if (!mysql_query($sql,$con))
        {
            die('Error: ' . mysql_error());
        }
        echo "1 record updated";
    
        //mysql_close($con);
    }
?>
   </body>
</html>



i delete.php - za brisanje osobe iz baze
Code:

<?php 
include 'include/connection.inc';
    if (isset($_REQUEST['id'])){
        $id=$_REQUEST['id'];
        mysql_query("DELETE FROM Osoba WHERE id='$id'");
        echo "osoba je izbrisana iz baze";
    }
?>




Sad me interesuje da li je ovakav kod generalno dobar ili moze malo da se poboljsa? Ako sam dobro shvatio, ceo rad sa bazom se zasniva na ovih 4 operacija tako da je za slozenije primere samo potrebno napraviti i prilagoditi nove php fajlove a nacin na koji se sve to realizuje ostaje prakticno isti?
#include <iostream.h>
void main()
{
cout << "Pozdrav...";
}
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Rad sa bazom i stuktura programa18.11.2011. u 04:35 - pre 151 meseci
Da se poboljsa, uvek sve moze u programiranju, ali sve ti zavisi od potrebe i toga koliko si sposoban. A da stavis .inc ekstenziju na fajl u kom ti se nalaze veoma vazne informacije nisam siguran koliko je pametno, jer koliko znam, .inc fajl nece biti obradjen PHP procesorom kad mu se direktno pristupi, i mozda ce cak apache/nginx ili neki drugi dati onome ko pokusa da ga otvori i da ga downloaduje. Nek me ispravi neko ukoliko gresim.

Nisu samo 4 operacije u pitanju, MySQL query moze sadrzati i mnostvo drugih komandi, opcija itd. Pogledaj MySQL reference manual za vise informacija. Ali da, to su one koje se najcesce koriste.

Mislim da si sam sebi dao vecinu odgovora pri postavljanju pitanja.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

MACTEPx

Član broj: 47593
Poruke: 341
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Rad sa bazom i stuktura programa18.11.2011. u 14:42 - pre 151 meseci
to sam video u nekom tutorijalu da stavljaju .inc fajlove za include pa sam zbog toga stavio - znaci od sad za sve ide php ekstenzija. A interesuje me, kad vec govorimo o sigurnosti, da li je dovoljna zastita od sql injectiona mysql_real_escape_string kao i da li kod svakog textbox-a treba da stavim ovu zastitu ili samo ako je u pitanju login?
#include <iostream.h>
void main()
{
cout << "Pozdrav...";
}
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Rad sa bazom i stuktura programa18.11.2011. u 17:10 - pre 151 meseci
Ja bih ga koristio kad god string iz textbox-a treba da se ukljuci u MySQL query. Jer uvek neko moze da ti iskoristi SQL injection i da upise, a i ispise podatke iz baze. Trebalo bi generalno to da ti radi posao.

Upravo sam probao sta se desi kada pokusam da otvorim neki .inc fajl preko web browsera, prikaze mi se celokupan sadrzaj. NIKAKO nemoj koristiti .inc fajlove za include. Da li si siguran da u tutorijalu nije bilo .inc.php kao ekstenzija? To je ono sto sam dosta puta vidjao.

Naravno, moze da se podesi da PHP procesira .inc fajlove, ali po defaultu to nije ukljuceno.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

MACTEPx

Član broj: 47593
Poruke: 341
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Rad sa bazom i stuktura programa18.11.2011. u 20:21 - pre 151 meseci
Ne secam se u kom sam tutorijalu to video ali siguran sam da je bila .inc ekstenzija, bas to mi je privuklo paznju i mislio sam da verovatno koriste ovu ekstenziju da bi lakse razlikovali fajlove u kodu, ali hvala na savetu, od sada koristim iskljucivo .php :)

A da li osim sql injectiona postoji jos neka pretnja sto se tice sigurnosti?
#include <iostream.h>
void main()
{
cout << "Pozdrav...";
}
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Rad sa bazom i stuktura programa19.11.2011. u 04:43 - pre 151 meseci
Je l' se pitanje odnosi na kod gore ili generalno?
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

MACTEPx

Član broj: 47593
Poruke: 341
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Rad sa bazom i stuktura programa19.11.2011. u 15:16 - pre 151 meseci
Generalno...
#include <iostream.h>
void main()
{
cout << "Pozdrav...";
}
 
Odgovor na temu

ivan veljovic

Član broj: 173511
Poruke: 62
*.dip0.t-ipconnect.de.



+3 Profil

icon Re: Rad sa bazom i stuktura programa25.11.2011. u 11:31 - pre 150 meseci
a da se .inc fajl stupsti ispod root direktorijuma ;-)
Kad ce Valjevo...
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Rad sa bazom i stuktura programa

[ Pregleda: 1725 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.