Centar za edukaciju-BiH



#1 17.05.2020 09:29
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:csv u bazu
Prenesi csv fajl u bazu.
Zapeo sam na formi za unos. Znaci na samom pocetku.

Neke forme rade a neke ne rade. Zasto je to tako?
Na nekima se otvori ekran za izbor fajla a na nekima nista se ne dogada
PreuzmiIzvorni kd (Text):
  1. <h1>1. Ovo radi. Otvori se mogucnost izbora datoteke</h1>
  2. <input id="file-upload" type="file"/>
  3. <label for="file-upload" class="custom-file-upload">IZABERI FILE</label>
  4.                        
  5.                                
  6. <h1>2. Ovo radi. Otvori se mogucnost izbora datoteke</h1>
  7. <input type="file" name="file" id="file" class="inputfile" />
  8. <label for="file">IZABERI FILE</label>
  9.  
  10.  
  11. <h1>3. Ovo radi. Otvori se mogucnost izbora datoteke</h1>
  12. <form action="" method="post" enctype="multipart/form-data">
  13. <input type="file" name="file"/>
  14. </form>
  15.  
  16. <h1>4. NE RADI</h1>
  17. <button type="button" class="nice-button">UPLOAD FILE</button>
  18. <input type="file" name="file" class="upload-btn"/>
  19.  
  20.  
  21. <h1>5. Ovo radi. Ali moram kliknuti na teks "ODABERI CSV FAJL ZA IMPORT"</h1>
  22. <form enctype="multipart/form-data" method="post" action="import.php">
  23. <div class="form-group">
  24. <label for="file">ODABERI CSV FAJL ZA IMPORT</label>
  25. <input name="file" type="file" class="form-control">
  26. </div>
  27. <div class="form-group">
  28. <input type="submit" name="submit" class="btn btn-primary" value="Submit"/>
  29. </div>
  30. </form>
  31.            
  32. <h1>6. NE RADI .</h1>
  33. <form method='POST' enctype='multipart/form-data'>Upload CSV FILE: <input type='file' name='csv_info' />
  34. <input type='submit' name='submit' value='Upload File' />
  35. </form>
  36.  
  37. <h1>7. ZXZ. Ovo radi. Ali moram kliknuti na teks "Filename:"</h1>
  38. <form action="upload_file.php" method="post" enctype="multipart/form-data">
  39. <label for="file">Filename:</label>
  40. <input type="file" name="file" id="file" />
  41. <br />
  42. <input type="submit" name="submit" value="Submit" />
  43. </form>

zivot je moja domovina.
Ovaj post je ureden 2 puta. Posljednja izmjena 22.05.2020 19:37 od strane zxz. ↑  ↓

#2 17.05.2020 12:03
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: csv u bazu
hehe meni ne radi niti jedna jer nema php koda. Rekao sam ti da ti fale samo neke cake iz osnovnog da bi radio ali moras krenuti od pocetka i to ce sve leci.
Ako koristimo formu, znači podatke prosleđujemo serveru.
Sad cu opisati sve a ti vjerovatno znas toga vec mnogo ali svejedno.

Kao prvo da bi zapisao bilo koji podatak napisan u html ili bolje reci napisan na monitoru onda moras koristiti html formu.
Forma u html-u nije vidljiva za razliku od drugih objektnih programa gdje vidimo.
Imamo samo tag <form></form>
Unutar ovog taga svi elementi pripadaju toj formi.
Mozemo imati i vise formi.
Zaglacvlje forme ima i svoje elemente pa cu opisati neke od njih.
Zaglavlje forme:
<form method='POST' action="biblioteka.php" enctype='multipart/form-data' >
method-način na koji se prosleđuju podaci. Može biti GET ili POST.
action - URL php filea koji ce se izvrsiti nako pritiska tastera submit
enctype
Vec sam ga negdje opisao.
Argument Argument enctype:
enctype="text/plain"
Prazna mjesta se pretvore u Prazna mjesta se pretvore u "+", a specijalni , a
specijalni karakteri se prevaraju u HEX simbole:
enctype="application/x-www-form-urlencoded"
Default Svi znakovi se kodiraju prije slanja (razmaci se pretvaraju u '+' simbole, a posebni znakovi se pretvaraju u ASCII HEX vrijednosti)
Za upload datoteka:
enctype="multipart/form-data"
Nijedan znak nije kodiran. Ova vrijednost je obavezna kada koristite obrasce koji imaju kontrolu za prijenos datoteka

Kada smo ovo upisali sad imamo elemente forme kojih moze biti jedan ili vise ali morao postojati taster subnit bar kad se radi skolski.
Kada kliknemo na taster submit izvrsit ce se kod u nasoj datoteci napisanoj u action.

Ako nije jasan prenos podataka GET i POST mogu opisati ali bojim se da cu biti opsiran.

E sad zasto neki redovi html-a ne rade.

4. Ne radi vjerovatno sto je taster tipa button ukoliko uopste postoji forma.
ovdje ne vidim tag forme.
Naravno mora postojati i action.

6.
PreuzmiIzvorni kd (PHP):
  1. <h1>6. NE RADI .</h1>
  2. <form method='POST' enctype='multipart/form-data'>Upload CSV FILE: <input type='file' name='csv_info' />
  3. <input type='submit' name='submit' value='Upload File' />
  4. </form>

Upload CSV FILE:--napisano bez i jednog taga pa vjerovatno dodatno zbunjuje ali ovo noze raditi,
Ne postoji action sto znaci da nema nikakvog php koda koji ce se izvrsiti sem ako nisi ovo izvadio iz php datoteke.

<h1>7. ZXZ. Ovo radi. Ali moram kliknuti na teks "Filename:"</h1>
PreuzmiIzvorni kd (PHP):
  1. <form action="upload_file.php" method="post" enctype="multipart/form-data">
  2. <label for="file">Filename:</label>
  3. <input type="file" name="file" id="file" />
  4. <br />
  5. <input type="submit" name="submit" value="Submit" />
  6. </form>
Ovo bi trebalo da radi
Mozes zakaciti sve pa da pogledam.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 19.05.2020 09:56
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: csv u bazu
Citiraj zxz:
hehe meni ne radi niti jedna jer nema php koda. Rekao sam ti da ti fale samo neke cake iz osnovnog da bi radio ali moras krenuti od pocetka i to ce sve leci.

Pa necemo krenuti od: Pozdrav svijete, ja sam odavno prosao pola zivota i nemam toliko vremena. Trebam neki ekspres tecaj, bez puno objasnjenja sto i kako.

U skoli se prvo djeci objasni što je što i kako to radi,a kasnije se u višim razredima objašnjava dnk, molekule itd

Promienio sam nastavak datoteke html u php. To sam napravio iz razloga sto i zxz web stranice imaju php nastavak. Drugi razlog neznam.

Pokusao sam zaobici onaj login.php ali nisam uspio. Jedino sto sam uspio da nemorate imati mysql bazu da se provjeri user i password.

Prvo sam u function.php u mjestu gdje provjerava dali je stisnut login buton ubacio ovo:

$korisnik=array('vasko','vasko@gmail.com','admin','admin');
$_SESSION['korisnik']=$korisnik;

to ne radi pa sam ubacio ovo:

$_SESSION['korisnik']['imeKorisnika']='Vasko';
$_SESSION['korisnik']['email']='vasko@gmail.com';
$_SESSION['korisnik']['tipKorisnika']='admin';
$_SESSION['korisnik']['sifra']='admin';
header('location: index.php');

tako da sam uspio nakon 2 dana.
Znaci kad se pokrene samo se klikne na prijavi se.

Izabere se UVOZ, pa molim komentare.

Prilozi:
Informacije o tipu datoteke za:zip  01_web_oop_icentar.zip
Preuzimanja:211
Velicina datoteke:36.13 KB


zivot je moja domovina.
↑  ↓

#4 19.05.2020 19:14
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: csv u bazu
nesto u css-u ne valja

ako iskljucimo ovo:

<link rel="stylesheet" href="css/styleHeder.css">

onda radi, neznam u cemu je greska
zivot je moja domovina.
↑  ↓

#5 20.05.2020 20:41
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: csv u bazu
hehe nevalja nista

PreuzmiIzvorni kd (PHP):
  1. <?php
  2.  
  3. $_SESSION['korisnik']['imeKorisnika']='Vasko';
  4. $_SESSION['korisnik']['email']='vasko@gmail.com';
  5. $_SESSION['korisnik']['tipKorisnika']='admin';
  6. $_SESSION['korisnik']['sifra']='admin';
  7. echo $_SESSION['korisnik']['sifra'] . "<br>";
  8.  
  9. // bespotrebno koristis dvije dimenzije
  10. $_SESSION['sifra']='Tomica';
  11. echo $_SESSION['sifra']. "<br>";
  12. //$_SESSION je variabla kao i svaka druga samo superglobalna
  13. $mojavar = array();
  14. $mojavar['sifra']='Mito';
  15. echo $mojavar['sifra']. "<br>";
  16. /* razlika izmedku niza u php i vb je sto u php mozes elementima niza dati ime a i ne moras
  17. primjer vb:
  18. dim mojavar(3) ' znaci imamo 4 variable u nizu
  19. mojavar(0)
  20. mojavar(1)
  21. mojavar(2)
  22. mojavar(3)
  23. uprimjer php: */
  24.  
  25. $mojavar[]="pero"; //0
  26. $mojavar[]="huso";//1
  27. $mojavar[]="goran";//2
  28. $mojavar[]="hasan";//3
  29. echo "-----------------------------------<br>";
  30. for($i= 0; $i <4 ; $i++)
  31. {
  32. echo $mojavar[$i] ."<br>";     
  33. }
  34. // a moze i ovako:
  35. $mojavar['prvi']="pero"; //0
  36. $mojavar['drugi']="huso";//1
  37. $mojavar['treci']="goran";//2
  38. $mojavar['cetvrti']="hasan";//3
  39. echo "-----------------------------------<br>";
  40. echo $mojavar['treci'] ."<br>";
  41. ?>

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#6 21.05.2020 09:56
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: csv u bazu
Nisam te razumio jer mi ovo ne radi:

PreuzmiIzvorni kd (Text):
  1. $_SESSION['imeKorisnika']='Vasko';
  2. $_SESSION['email']='vasko@gmail.com';
  3. $_SESSION['tipKorisnika']='admin';
  4. $_SESSION['sifra']='admin';
  5. header('location: index.php');

Prilikom pokretanja index.php, odmah na pocetku ukljucen je fajl function.php.

include('functions.php');

onda se pokrene u index.php funkcija isLoggedIn(). To je logicna funkcija (bolen i moze vratiti true ili false

Kaze ta funkcija je false za prazna a ako nije prazna $_SESSION['korisnik'] onda je true:

function isLoggedIn()
    {
        if (isset($_SESSION['korisnik'])) {
            return true;
        }else{
            return false;
        }
    }


s obzirom da je $_SESSION['korisnik'] prazan dobit cemo false, a time cemo biti preusmjereni na login.php

U login.php nakon klika na buton type =submit

<button type="submit" class="btn" name="login_btn">Prijavi se</button>

posalju se "post" metodom name=sifra i name=imeKorisnika opet u istu stranicu login.pgp.
Posto je na pocetku ukljucen php kod function.php a u njoj provjera dali je pritisnut button login_btn

if (isset($_POST['login_btn'])) {
        login();
    }


i on ako je pritisnut izvrsit ce se i funkcija login().

function login()
    {    
        global $con, $imeKorisnika, $errors; // postavljaju se globalne varijable
        // uzmi varijable iz forme
        $imeKorisnika = e($_POST['imeKorisnika']);
        $sifra = e($_POST['sifra']);

        // provjeri dali je koje polje bilo prazno
        if (empty($imeKorisnika)) {
            array_push($errors, "Potrebno je unijeti ime");
        }
        if (empty($sifra)) {
            array_push($errors, "Potrebno je unijeti sifru");
        }
        // ako nije bilo gresaka na formi za unos
        if (count($errors) == 0)
        {
            //$password = md5($password); ovo je nekakva hex cripcija

//upit koji trazi korisnika i sifru u bazi
    $query = "SELECT * FROM korisnici WHERE imeKorisnika='$imeKorisnika' AND sifra='$sifra' LIMIT 1";
            $results = mysqli_query($con, $query);
            
            if (mysqli_num_rows($results) == 1)// ako je rezultat =1, pronasao korisnika
            {

// ovo je dio koji me zbunjuje
                $logged_in_user = mysqli_fetch_assoc($results);
                $_SESSION['korisnik'] = $logged_in_user;


                $_SESSION['success'] = "Prijavljeni ste.";
                header('location: index.php');
            }else{
                array_push($errors, "Pogresno uneseni podaci.");
            }
        }
    }


Ovo nisam znao razrijesiti:

$logged_in_user = mysqli_fetch_assoc($results); //upit je dao rezultat, korisnik i sifra se podudaraju

$_SESSION['korisnik'] = $logged_in_user; // u globalnu $_SESSION['korisnik'] sprema taj rezultat

Neznam kako izgleda rezultat i kako izgleda $_SESSION ['korisnik'] nakon sto se u nju spremi rezultat.

To mi treba objasniti.

pogledaj funkciju:

function isAdmin()
    {
        if (isset($_SESSION['korisnik']) && $_SESSION['korisnik']['tipKorisnika'] == 'admin' ) {
            return true;
        }else{
            return false;
        }
    }

zivot je moja domovina.
Ovaj post je ureden 10 puta. Posljednja izmjena 22.05.2020 13:45 od strane Avko. ↑  ↓

#7 21.05.2020 21:10
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: csv u bazu
PreuzmiIzvorni kd (HTML):
  1. function isLoggedIn()
  2.     {
  3.         if (isset($_SESSION['korisnik'])) {
  4.             return true;
  5.         }else{
  6.             return false;
  7.         }
  8.     }

Citat:
ovo sad nije prikladno ako ne koristis dvodimenzionalnu matricu.
$_SESSION['korisnik']['imeKorisnika']='Vasko';
$_SESSION['korisnik']['email']='vasko@gmail.com';
$_SESSION['korisnik']['tipKorisnika']='admin';
$_SESSION['korisnik']['sifra']='admin';

Nemozes ispitibati dali postoji korisnik ako ga nikad nema
Citat:
$_SESSION['imeKorisnika']='Vasko';
$_SESSION['email']='vasko@gmail.com';
$_SESSION['tipKorisnika']='admin';
$_SESSION['sifra']='admin';
ovdje je niz i nema korisnika ali mozes ispitivati ime korisnika napr ili nesto slicno.

PreuzmiIzvorni kd (PHP):
  1. function isAdmin()
  2.     {
  3.         if (isset($_SESSION['korisnik']) && $_SESSION['korisnik']['tipKorisnika'] == 'admin' ) {
  4.             return true;
  5.         }else{
  6.             return false;
  7.         }
  8.     }
i ovaj if se mijenja ako stavis niz.
ispitujes samo dali je tip korisnuika asdmin
To je i priije bilo dovoljno.

za mysqli_fetch_asso i konekciju na bazu predlazem klasu.
Ako si za dat cu primjer i opisati.

Citat:
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}

// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#8 22.05.2020 13:40
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: csv u bazu
moze, kad stignes pokazi primjer
zivot je moja domovina.
Ovaj post je ureden 4 puta. Posljednja izmjena 22.05.2020 13:44 od strane Avko. ↑  ↓

#9 22.05.2020 21:58
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: csv u bazu
Evo primjer.
Nisam bas sve opisao jer kako ti napisa negdje onda bi to bilo predavanje i trebalo bi nekoliko postova.
Nadam se da ces prouciti red po red i napisati ako ti nesto nije jasno.
Takodje i drugi mogu pitati.
Pokusat cu objasniti.

Prilozi:
Informacije o tipu datoteke za:zip  klasa_kon.zip
Preuzimanja:198
Velicina datoteke:1.67 KB


Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#10 24.05.2020 09:50
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: csv u bazu
malo sam proucavao. Ne svida mi se oop, draže mi je proceduralno programiranje.

Iz priloženog sam zaključio:
-Klasa sadrži funkcije i varijable
-Objekti je jedan primjerak (instanca klase)

primjer:
Nacrt za kuću je klasa, a napravljena kuća je objekt.
Iz klase mozemo napraviti nebrojeno objekata.

U config.inc.php smjestena je višedimenzionalna varijabla $config. Ona sadrzi podatke o spajanju na bazu.
Spojimo se na bazu:
self::$connection=mysqli_connect($dbhost, $dbuser, $dbpas,$dbime);

Postoji i PDO spajanje (nešto sam citao),

PreuzmiIzvorni kd (Text):
  1. class Database {
  2. private $dbHost = DB_HOST;
  3. private $dbUser = DB_USER;
  4. private $dbPass = DB_PASS;
  5. private $dbName = DB_NAME;
  6. public $pdo;
  7. public function __construct() {
  8. $this->_connectToDB();
  9. }
  10. private function _connectToDB() {
  11. if (!isset($this->pdo)) {
  12. try {
  13. $this->pdo = new PDO("mysql:host=".$this->dbHost.
  14. ";dbname=".$this->dbName, $this->dbUser, $this->dbPass);
  15. $this->pdo->setAttribute(PDO::ATTR_ERRMODE,
  16. PDO::ERRMODE_EXCEPTION);
  17. $this->pdo->exec("SET CHARACTER SET utf8");
  18. } catch (PDOException $e) {
  19. die("Failed to connect with Database!");
  20. }
  21. }
  22. }
  23. }

citat:
"Kao što se može vidjeti u kodu iznad, atributi $dbHost, $dbUser, $dbPass i $dbName
spremaju podatke iz config.php dokumenta. Njihovo pravo pristupa je postavljeno na privatno
jer će se koristiti samo unutar klase i to u _connectToDB privatnoj funkciji. Atribut $pdo služi
za spremanje uspostavljene PDO veze i koristit će se i izvan klase, pa mu je zbog toga pravo
pristupa javno. Funkcija _connectToDB() provjerava da li je atribut $pdo postavljen na neku
vrijednost i u slučaju da nije stvara PDO instancu i sprema ju u taj atribut. PDO metodi
setAttribute() prenosimo atribute ATTR_ERRMODE i ERRMODE_EXCEPTION koji
omogućavaju upravljanje greškama pomoću PDO iznimki (eng. exceptions). Funkcija
_connectToDB() koristi try-catch blok. U try bloku se izvršava kod za spajanje na bazu, a u
slučaju greške u spajanju, PDO iznimka se hvata u catch bloku koji se onda izvršava. Catch
blok ispisuje poruku o greški i prekida izvođenje programa pomoću ugrađene PHP die()
funkcije.
PDO exec() metodu koristimo za postavljanje sustava kodiranja znakova na UTF-8.
Funkcija _connectToDatabase() se izvršava u konstruktoru prilikom stvaranja svake nove
instance klase Database."

Sve u svemu da zakljucim. Mogao bi prepisivati gore navedeno no problemi bi mi nastali kod daljnih CRUD oop akcija. Tu bi se pogubio u moru uputa i pravila pa bi malo malo dolazio na forum sa pitanjima : kako ovo? kako ono? šta je to?

Još jedna stvar me odbila od oop-a a to je :
citat:
"OOP ne rješava sve probleme pisanja lošeg kôda već samo usmjerava programere na
određene standardne načine pisanja koda. Iako je OOP programiranje sporije od proceduralnog
što se performansi tiče, programeri koristeći objektno orijentirane principe pišu „čišći” kod
kojeg je lakše mijenjati i ponovno koristiti (eng. reusable code). Upravo je potonje vrlo važno
u modernom razvoju programske potpore jer se unutar jednog tima ili firme određene
programske komponente mogu ponovno koristiti čime se smanjuje ukupno vrijeme razvoja
programa i povećava njegova vrijednost. Također, što više ljudi koristi neku programsku
cjelinu, to je veća šansa da će se pronaći i riješiti greške (tzv. bugove). S vremenom će ta
komponenta sve brže i brže postajati bliža savršenoj.
Ovaj način razvoja pogodan je za razvoj složenih programskih sustava. Sam razvoj je brži
jer se omogućuje jednostavno korištenje postojećeg programskog koda."

-oop je sporije od proceduralnog programiranja
-oop samo uvodi standarde
-ne radim slozene programske sustave i nece nitko to koristiti

Nisam totalni pocetnik, ali nisam ni napredni programer, nesto kao korisnik. Mozda ****lje da se drzim klasicnog (proceduralnog programiranje), jeli tako?
zivot je moja domovina.
↑  ↓

Stranice (2):1,2


Sva vremena su GMT +01:00. Trenutno vrijeme: 11: 34 pm.