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

Post metoda i objekat

[es] :: PHP :: Post metoda i objekat

Strane: 1 2

[ Pregleda: 4085 | Odgovora: 29 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Thugzsr
Milos Maric
student
Novi Sad

Član broj: 229631
Poruke: 103
*.static.kdsinter.net.



+1 Profil

icon Post metoda i objekat01.06.2011. u 09:53 - pre 122 meseci
Kako se realizuje objektno orjentisani upis u bazu podataka iz forme? Forma sadrzi par text inputa i jednu drop down listu. napravio sam spoljnu klasu koja sadrzi samo atribute koji su isti kao i polja u bazi. e sad instanciram objekat te klase u drugom file-u, i u taj objekat treba da ubacim podatke iz forme, i zatim da ih ubacim u bazu, ali nesto ne radi. ne izbaci mi gresku a baza ostane ne popunjena. zna li neko u cemu je problem, ili bi mogli da mi objasnite kako to da realizujem?
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1075
*.dynamic.isp.telekom.rs.



+213 Profil

icon Re: Post metoda i objekat01.06.2011. u 14:13 - pre 122 meseci
Ne znam da li iko moze da ti pomogne. Moras da budes mnogo konkretniji sto se tice problema a ne samo da kazes da imas klase koje se nasledjuju i da nece da ti upise u bazu.
Savetujem ti da krenes da debug-ujes, da vidis da li uopste dodje do toga da treba da izvrsi sql, pa ako ne dodje onda pogledaj zasto ne dodje i onda ces vec naci neko resenje.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.eunet.rs.



+19 Profil

icon Re: Post metoda i objekat01.06.2011. u 20:23 - pre 122 meseci
Objekat možeš da serijalizuješ (funkcija serialize) i tako dobijen string lako upišeš u bazu.

"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1075
*.dynamic.isp.telekom.rs.



+213 Profil

icon Re: Post metoda i objekat01.06.2011. u 22:01 - pre 122 meseci
Kaze da ima polja u bazi a ne polje. Hoce jedan input jedno polje, drugi input drugo polje. Tako da serijalizacija objekata ovde nije potrebna.
Koliko sam shvatio hoce da klasi zada parametre koje kolone sadrzi tabela i da ako je akcija save da iscita vrednosti tih atribute iz $_POST i smesti ih u bazu.
Ima rupa i bas je simple, nema validacije itd ali mislim da je mislio na ovako nesto:

Code (php):

//Korisnik_Model.php
class Korisnik_Model extends Model
{
    public $attributes = array(id, name, street);
    public $table = 'korisnik';
}
 



Code (php):

//Model.php
class Model
{
    public $attributes = array();
    public $table = '';
   
    public function save()
    {
       $data = array_intersect_key($_POST, array_flip($this->attributes));
       $set = array();
       foreach ($data as $key => $val) { $set[] = "`{$key}` = '{$val}'"; }
       $q = "REPLACE INTO {$this->table} SET " . implode(', ', $set);
       return DB::sql($q);
    }
}
 


A u kontroleru pozove save kada je potrebno...
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.eunet.rs.



+19 Profil

icon Re: Post metoda i objekat02.06.2011. u 09:17 - pre 122 meseci
Ovu poruku je menjao VladaSu dana 14.06.2003

Kako si ovo uspeo ?????

[Ovu poruku je menjao Miroslav Ćurčić dana 02.06.2011. u 16:44 GMT+1]
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

Thugzsr
Milos Maric
student
Novi Sad

Član broj: 229631
Poruke: 103
*.static.kdsinter.net.



+1 Profil

icon Re: Post metoda i objekat02.06.2011. u 09:24 - pre 122 meseci
nismo se razumeli. jedna klasa mi sadrzi samo atribute. znaci izgleda ovako
Code:

<?php
class studenti {
          public $id_stud;
          public $ime;
          public $prezime;
          public $br_ind;
          public $stud_prog;
          public $sifra;
          public $mentor;
          public $god_studija;
}
?>

e sad objekad te klase instanciram u drugom file-u gde mi je forma. i taj objekat sad ima sve te parametre.
onda bi trebalo da taj objekat popunim podacima iz forme i zatim da ubacim te podatke u bazu.
ja sam to probao ovako, ali ne desava se nista.
Code:

$student= new studenti();
$student -> ime=$_POST['form_ime'];
$student -> prezime=$_POST['form_prezime'];
$student -> br_index=$_POST['form_brindex'];
$student -> Stud_prog=$_POST['stud_prog']; 
// i tako za sve atribute; i deo za upis u bazu
$query = "INSERT INTO studenti (Ime, Prezime, br_indexa, Stud_prog, email, sifra, mentor, god_studija) VALUES 
('$student->Ime','$student->Prezime','$student->br_indexa','$student->Stud_prog','$student->email','$student->sifra','$student->mentor','$student->god_studija')";

ne znam da li sad razumee sta sam hteo, tj da li sam dobro objasnio. ovao mi ne radi, i nemojte da osudjujete ako je glupa greska ili ako se vidi da bas ne znam, jer pocinjem sa objektima da radim! :D
 
Odgovor na temu

[email protected]
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Post metoda i objekat02.06.2011. u 09:31 - pre 122 meseci
Obrati pažnju na velika i mala slova za imena atributa/osbina.

edit:
Postavi u php.ini error_reporting = E_ALL


[Ovu poruku je menjao [email protected] dana 02.06.2011. u 10:42 GMT+1]
Banned - Not available
 
Odgovor na temu

Thugzsr
Milos Maric
student
Novi Sad

Član broj: 229631
Poruke: 103
*.static.kdsinter.net.



+1 Profil

icon Re: Post metoda i objekat02.06.2011. u 09:52 - pre 122 meseci
pazim na slova, ovo sam napamet na brzinu pisao, da objasnim sta se radi, stoji mi vec error u php.ini kako si napisao.
 
Odgovor na temu

[email protected]
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Post metoda i objekat02.06.2011. u 09:57 - pre 122 meseci
Pa postavi tačan koda koji ne radi i obrati pažnju na imena public $br_ind; i $student -> br_index
Banned - Not available
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.eunet.rs.



+19 Profil

icon Re: Post metoda i objekat02.06.2011. u 11:27 - pre 122 meseci
Koristilo bi nam i podatak dali MySQL vraća neku grešku pri izvršavanju querija (mysql_error() ili šta već koristiš).
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

Thugzsr
Milos Maric
student
Novi Sad

Član broj: 229631
Poruke: 103
*.static.kdsinter.net.



+1 Profil

icon Re: Post metoda i objekat02.06.2011. u 12:45 - pre 122 meseci
koristim mysql error, i za konekciju i za query ali ne izbacuje nista, sve je kao da se izvrsi, ali baza nostaje ne promenjena! znaci ta logika mi je ok? moze tako da se radi? ne treba nista da se dodaje ili menja? napisacu vam kod, ali sam dosta menjao, pokusavajuci da dodjem do resenja, da znate! :D
Code:


<?php
$student= new studenti();
$student->Ime=$_POST['form_ime'];
$student->Prezime=$_POST['form_prezime'];
$student->br_indexa=$_POST['form_brindex'];
$student->Stud_prog=$_POST['stud_prog'];
$student->email=$_POST['form_email'];
$student->sifra=$_POST['form_pass'];
$student->mentor=$_POST['form_mentor'];
$student->god_studija=$_POST['form_god'];
$this->insertstudenta($student);
echo " $student";


 function insertstudenta($student) {
             
        $mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);
        mysql_select_db(DATABASE_NAME) or
              die('Oops connection error -> ' . mysql_error());
         $query = "INSERT INTO studenti (Ime, Prezime, br_indexa, Stud_prog, email, sifra, mentor, god_studija) VALUES 
               ('$student->Ime','$student->Prezime','$student->br_indexa','$student->Stud_prog','$student->email','$student->sifra',
              '$student->mentor','$student->god_studija')";
              $result = mysql_query($query) or die("Bule je debil ako je greska:" .mysql_error());
}
?>    
<form name="form" method="POST" action="#">
Broj Index-a<br><input type="text" name="form_brindex" value=""><br>
Password<br><input type="password" name="form_pass" value=""><br>
Ime<br><input type="text" name="form_ime" value=""><br>
Prezime<br><input type="text" name="form_prezime" value=""><br>
Studijski program<br><select class"select" name="stud_prog">
<option ></option>
<option value="it">Informaciona Tehnologija</option>
  <option value="zp">Zastita od pozara</option>
  <option value="wd">Web Dizajn</option>
  <option value="gd">Graficki Dizajn</option>
  <option value="gi">Graficko inzinjerstvo</option>
  <option value="en">Energetika</option>
  <option value="pf">Primenjena Fotografija</option>
</select><br>
Email<br><input type="text" name="form_email" value=""><br>
Godina studija<br><input type="text" name="form_god" value=""><br>
Mentor<br><input type="text" name="form_mentor" value=""><br>
<input type="submit" value="Submit">
</form>        

to je php deo i forma... mozda da napravim spoljni php file pa da u njega stavim php, a u action forme taj file?
 
Odgovor na temu

[email protected]
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Post metoda i objekat02.06.2011. u 14:20 - pre 122 meseci
Da li je u php.ini fajlu uključeno prikazivanje grešaka (display_errors)?
Postavi i kod klase studenti.
Da li je insertstudenta() funkcija ili metod klase studenti?
Ukoliko je funkcija zameni $this->insertstudenta($student); sa insertstudenta($student); (ukloni $this->), a ukoliko je metod $this->insertstudenta($student); promeni sa $student->insertstudenta(); a unutar metoda svuda gde piše $student promeni sa $this.
Banned - Not available
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1075
*.dynamic.isp.telekom.rs.



+213 Profil

icon Re: Post metoda i objekat02.06.2011. u 14:27 - pre 122 meseci
Nema logike da imas klasu sa atributima ako ti ta klasa nista ne radi, to je onda samo jedan obican array. Ali ako vec imas klasu studenti onda bi tamo trebala da postoji metoda i add.

Pokusaj posle $query = "insert ...
da stavis pa javi sta ti javlja i da li ti javlja
echo $query; exit;

Ja bih radije napravio ovako nesto:
Code (php):


<?php
class studenti {
          public $id_stud;
          public $ime;
          public $prezime;
          public $br_ind;
          public $stud_prog;
          public $sifra;
          public $mentor;
          public $god_studija;
         
         public function add()
         {
             //ovde insert
         }
}
?>
 

A kasnije bi:
Code (php):

<?php
$student= new studenti();
$student -> ime=$_POST['form_ime'];
$student -> prezime=$_POST['form_prezime'];
$student -> br_index=$_POST['form_brindex'];
$student -> Stud_prog=$_POST['stud_prog'];
// i tako za sve atribute; i deo za upis u bazu
$student -> add();
?>
 


A jos prakticniji primer je sto sam juce napravio i postavio ovde.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Thugzsr
Milos Maric
student
Novi Sad

Član broj: 229631
Poruke: 103
*.static.kdsinter.net.



+1 Profil

icon Re: Post metoda i objekat02.06.2011. u 16:40 - pre 122 meseci
uradio sam kako je vladasu rekao, i radi! hteo sam da pitam jos nesto, kako da se ukoliko nije ulogovan korisnik vrati na stranu za logovanje? da se na svakoj strani stavi zabrana, da samo ulogovani korisnici vide!
Code:

session_start();
require_once 'config.php';
if (isset($_POST['userid']) && isset($_POST['password']))
{
  // ako korisnik pokusava da se uloguje
  $userid = $_POST['userid'];
  $password = $_POST['password'];
  $query = 'select * from admin '
           ."where username='$userid' "
           ." and pass=sha1('$password')";

    {
        $_SESSION['valid_user']=$userid;
    }
}

e sad mi treba else, koji ce redirektovati na drugu stranu...jos samo to i necu vas vise gnjaviti! :D
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1075
*.dynamic.isp.telekom.rs.



+213 Profil

icon Re: Post metoda i objekat02.06.2011. u 18:20 - pre 122 meseci
Mozes za drugo pitanje da otvoris novu temu kako bi neko drugi lakse se snasao ako ima isti problem.
Postoji vise nacina da to odradis.
Code (php):

//init.php
session_start();
require_once 'config.php';
if (isset($_POST['userid']) && isset($_POST['password']))
{
  // ako korisnik pokusava da se uloguje
  $userid = $_POST['userid'];
  $password = $_POST['password'];
  $query = 'select * from admin '
           ."where username='$userid' "
           ." and pass=sha1('$password')";

   if (DB::query($query)) {
        $_SESSION['valid_user']=$userid;
    }
}

//ne treba ti else vec nastavis sa proverom
if (empty($_SESSION['valid_user']) && isset($must_be_logged) && $must_be_logged == true)
{
   header('Location:login.php?ref=' . rewurlencode($trenutni_url)); //ovde stavis trenutni url kako bi znao da vratis korisnika kada se uloguje
   exit; //OBAVEZNO!!!!
}
 


A ovo bih stavio u recimo index.php
Code (php):

$must_be_logged = true; //ako mora biti logovan na index strani a false ako ne mora ili preskoci ako ne mora
requre_once 'init.php';
 


Umesto redirekcije mozes i da jednostavno uvuces html kod za logovanje.
Ne znam da li radi primera izostavis neke stvari ali tu ti recimo fali mysql_real_escape_string
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Thugzsr
Milos Maric
student
Novi Sad

Član broj: 229631
Poruke: 103
*.static.kdsinter.net.



+1 Profil

icon Re: Post metoda i objekat03.06.2011. u 13:10 - pre 122 meseci
greska mi je u select tagu...njega nece da upise u bazu! moze li mi neko reci kako se vadi vrednost iz select (drop down menu) taga? znaci taj student -> stud_prog treba da sadrzi vrednost iz selecta, ali ne uzima ga!
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1075
*.dynamic.isp.telekom.rs.



+213 Profil

icon Re: Post metoda i objekat03.06.2011. u 14:22 - pre 122 meseci
PHP ne prepoznaje da li je nesto select, hidden, text, radio, on samo dobija name i vrednost.
To znaci da nisi dobro napravio select u html-u.

Gledaj da ti je svaki html validan.
http://validator.w3.org/
https://chrome.google.com/webs...ndfbhngibokieehnjhbjkkhbfmhojo
https://addons.mozilla.org/en-US/firefox/addon/html-validator/

Mada i validnost html-a ne garantuje da ce sve u svim browserima raditi kako treba ali ces eliministati banalne greske.

Druga moguca greska je da ti je polje u bazi npr. int a ti hoces da stavis string.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Thugzsr
Milos Maric
student
Novi Sad

Član broj: 229631
Poruke: 103
*.static.kdsinter.net.



+1 Profil

icon Re: Post metoda i objekat03.06.2011. u 14:37 - pre 122 meseci
znam da ne prepoznaje, ali kad debug-ujem u zendu, ispise mi da je suspendovan u liniji 28, a to je linija gde se nalazi
Code:

Studijski program<br><select class="select" name="stud_prog">

pa sam zbog toga kontao da treba neki poseban kod tipa case petlje u php-u da uradim za upis u bazu vrednosti iz select menija...
kako se iz selekta upise u bazu? isto kao i iz bilo kog drugog dela forme (text input)?
ako uradim ovo da li ce upisati?
Code:
 $student -> Stud_prog=$_POST['stud_prog']; 


kada validatujem ispise mi 4 warning-sa, i 1 gresku a greska mi je

Line 18, Column 2: no document type declaration; implying "<!DOCTYPE HTML SYSTEM>"

<html>

The checked page did not contain a document type ("DOCTYPE") declaration. The Validator has tried to validate with a fallback DTD, but this is quite likely to be incorrect and will generate a large number of incorrect error messages. It is highly recommended that you insert the proper DOCTYPE declaration in your document -- instructions for doing this are given above -- and it is necessary to have this declaration before the page can be declared to be valid.

 
Odgovor na temu

[email protected]
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Post metoda i objekat03.06.2011. u 15:03 - pre 122 meseci
Nisam siguran da li sam razumeo problem.

Da li se izvrši upit? Da li se nešto upiše u bazu?
Odradi echo $query pa vidi da li se njegova vrednost upisuje u $query.
Ukoliko imaš select tag:
Code:
 Studijski program<br><select class"select" name="stud_prog">
   <option ></option>
   <option value="it">Informaciona Tehnologija</option>
     <option value="zp">Zastita od pozara</option>
     <option value="wd">Web Dizajn</option>
     <option value="gd">Graficki Dizajn</option>
     <option value="gi">Graficko inzinjerstvo</option>
     <option value="en">Energetika</option>
     <option value="pf">Primenjena Fotografija</option>
   </select><br>


PHP-u se prosleđuje vrednost value atributa option taga u zavisnosti koji od njih je selektovan, ili ukoliko atribut value nije definisan prosleđuje se vrednost option taga.
Banned - Not available
 
Odgovor na temu

Thugzsr
Milos Maric
student
Novi Sad

Član broj: 229631
Poruke: 103
*.static.kdsinter.net.



+1 Profil

icon Re: Post metoda i objekat03.06.2011. u 15:48 - pre 122 meseci
ne upisu je u bazu, ne ispisuje query evo kompletnog koda, i baze, pa ako imate vremena vidite u cemu je bug...
Code:

<html>
 <head>
 <title>Registracuja Studenata</title>
 </head>
 <body>
 <form action="index.php" method="POST" name="form">
Broj Index-a<br><input type="text" name="form_brindex" value=""><br>
Password<br><input type="password" name="form_pass" value=""><br>
Ime<br><input type="text" name="form_ime" value=""><br>
Prezime<br><input type="text" name="form_prezime" value=""><br>
Studijski program<br><select  name="stud_prog">
<option ></option>
<option value="it">Informaciona Tehnologija</option>
  <option value="zp">Zastita od pozara</option>
  <option value="wd">Web Dizajn</option>
  <option value="gd">Graficki Dizajn</option>
  <option value="gi">Graficko inzinjerstvo</option>
  <option value="en">Energetika</option>
  <option value="pf">Primenjena Fotografija</option>
</select><br>
Email<br><input type="text" name="form_email" value=""><br>
Godina studija<br><input type="text" name="form_god" value=""><br>
Mentor<br><input type="text" name="form_mentor" value=""><br>
<input type="submit" value="Submit">
 </form>
 <?php 
require_once ('config.php');
require_once ('studenti.php');
$student= new studenti();
$student -> ime=$_POST['form_ime'];
$student -> prezime=$_POST['form_prezime'];
$student -> sifra= $_POST['form_pass'];
$student -> br_index=$_POST['form_brindex'];
$student -> Stud_prog=$_POST['stud_prog'];
$student -> email =$_POST['form_email'];
$student -> god_studija =$_POST['form_god'];
$student -> mentor =$_POST['form_mentor'];
echo "$student";
//  i deo za upis u bazu
$student -> add();
 ?>
 </body>
 </html>


file 2
Code:

<?php 
require_once 'config.php';
class studenti {
          public $id_stud;
          public $ime;
          public $prezime;
          public $br_ind;
          public $stud_prog;
          public $email;
          public $sifra;
          public $mentor;
          public $god_studija;
          
public function add()
         {
            $query = "INSERT INTO studenti (ime, prezime, br_indexa, stud_prog, email, sifra, mentor, god_studija) VALUES 
            ('$student->ime','$student->prezime','$student->br_indexa','$student->Stud_prog',
            '$student->email','$student->sifra','$student->mentor','$student->god_studija')";
            $result = mysql_query($query) or die("Bule je debil ako je greska:" .mysql_error());
             // insert
             echo "$query";
         }   
}
 
?>

file 3
Code:

<?php
session_start();
 
$dbhost = "localhost"; // ovo je server host 
$dbname = "distance_learning"; // ime baze
$dbuser = "root"; // username
$dbpass = ""; // password
 
mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Error: " . mysql_error());
mysql_select_db($dbname) or die("MySQL Error: " . mysql_error()); 
exit();

?>

ta tri file-a koristim trenutno...
nesto ne stima tu, ne upisuje se u bazu...sta ne znam!
u form action sam sad stavio index, stojala je # probao sam nesto sa index, u njoj nema nista, samo je trebao ispis da bude, kao i uspesno ste uneli...nista vise!
 
Odgovor na temu

[es] :: PHP :: Post metoda i objekat

Strane: 1 2

[ Pregleda: 4085 | Odgovora: 29 ] > FB > Twit

Postavi temu Odgovori

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