застрял на oop загрузить изображение + вставить - PullRequest
0 голосов
/ 09 февраля 2012

извините, если мой запрос плохой, мой английский плохой

Примечание: игнорировать фильтрацию инъекций sql

Я использую функцию insert (), которую я создал сам для вставки в базу данных

но я застрял с этим кодом

Я хочу загрузить изображение в каталог ../images.Если я вставляю с включенным изображением, текст вставляется, но изображение не загружается

Я думаю, что запрос не входит в

if(!empty($gambar))
{   
    $dir="../images/";
    $tmp=$_FILES['gambar']['tmp_name'];
    $namafile=time().".jpg";
    $ukuran=$_FILES['gambar']['size'];
    $file_type=$_FILES['gambar']['type'];

    move_uploaded_file($tmp,$dir.$namafile);
        $this->perintah="insert into ".$tbl." (".$kol.",gambar) values (".$isi.",".$namafile.")";
        $q=mysql_query($this->perintah);
}

, а

else 
{
    $this->perintah="insert into ".$tbl." (".$kol.") values (".$isi.")";
    $q=mysql_query($this->perintah);
}

У меня естьобъявить переменные

$gambar = $_FILES['gambar'];

и в теге формы тоже

<form method='post' action='controller.php?act=inputsiswa' name='siswa' enctype='multipart/form-data'>

мой вопрос:

что не так с моим кодом?

в этих строках

public function insert($tbl,$kol,$isi,$gambar)

Могу ли я объявить переменную

public function insert($tbl,$kol,$isi,$gambar = null)

или

public function insert($tbl,$kol,$isi,empty($gambar))

или что?

Все мои коды

model.php

public function insert($tbl,$kol,$isi,$gambar)
{
    if(!empty($gambar))
    {   
        $dir="../images/";
        $tmp=$_FILES['gambar']['tmp_name'];
        $namafile=time().".jpg";
        $ukuran=$_FILES['gambar']['size'];
        $file_type=$_FILES['gambar']['type'];

        move_uploaded_file($tmp,$dir.$namafile);
            $this->perintah="insert into ".$tbl." (".$kol.",gambar) values (".$isi.",".$namafile.")";
            $q=mysql_query($this->perintah);
    }
    else 
    {
        $this->perintah="insert into ".$tbl." (".$kol.") values (".$isi.")";
        $q=mysql_query($this->perintah);
    }
    echo '<script> alert("Data Berhasil Dimasukkan!"); top.location="index.php?act='.htmlentities($_GET['act']).'";</script>';
    if(!$q)
    {
        echo "<script> alert(\"Gagal Coy !\"); top.location=\"index.php\";</script>";
        exit();
    }
}

controller.php

case "inputsiswa":
$file = $_FILES['gambar'];
$isi = "'".$_POST['nisn']."','".$_POST['username']."','".$_POST['password']."','".$_POST['nama']."','".$_POST['tempat_lahir']."','".$_POST['tanggal_lahir']."','".$_POST['jenis_kelamin']."','".$_POST['kelas']."','".$_POST['jurusan']."','".$_POST['tipekelas']."','".$_POST['goldar']."','".$_POST['alamat']."','".$_POST['kodepos']."','".$_POST['kontak']."','".$_POST['email']."','Aktif'";
$kol = "nisn,username,password,nama,tempat_lahir,tgl_lahir,jenkel,id_kelas,id_jurusan,id_tipe_kelas,id_goldar,alamat,kode_pos,kontak,email,status";
$as->insert("tbl_siswa",$kol,$isi,$file);

content.php

<form method='post' action='controller.php?act=inputsiswa' name='siswa' enctype='multipart/form-data'>
    NISN<br /><input type='text' name='nisn' class='text' required/><br />
    Username<br /><input type='text' name='username' class='text' required/><br />
    Password<br /><input type='password' name='password' class='text' required/><br />
    Ulangi Password<br /><input type='password' name='password2' class='text' required/><br />
    Nama Lengkap<br /><input type='text' name='nama' class='text' required/><br />
    Tempat Lahir<br /><input type='text' name='tempat_lahir' class='text' required/><br />
    Tanggal Lahir <br /><input type='text' name='tanggal_lahir' class='text' required/><br />
    Jenis Kelamin <br />
    <select name ='jenkel'>
        <option value=''>pilih jenis kelamin..</option>
        <option value='Pria'>Pria</option>
        <option value='Wanita'>Wanita</option>
    </select> 
    <br>
    Kelas<br>
    <select name='kelas'>
    <option value ='0'>pilih kelas..</option>";
    $tbl='tbl_kelas';
    $isi = $as->select($tbl,'*');
    while($r=mysql_fetch_array($isi)){
    echo"<option value=$r[id_kelas]>$r[kelas]</option>";
    }
    echo"</select><br />        

    Jurusan<br>
    <select name='jurusan'>
    <option value ='0'>pilih jurusan..</option>";
    $tbl='tbl_jurusan';
    $isi = $as->select($tbl,'*');
    while($r=mysql_fetch_array($isi)){
    echo"<option value=$r[id_jurusan]>$r[jurusan]</option>";
    }
    echo"</select><br />        

    Tipe Kelas<br>
    <select name='tipekelas'>
    <option value ='0'>pilih tipe kelas..</option>";
    $tbl='tbl_tipe_kelas';
    $isi = $as->select($tbl,'*');
    while($r=mysql_fetch_array($isi)){
    echo"<option value=$r[id_tipe_kelas]>$r[tipe_kelas]</option>";
    }
    echo"</select><br />        

    Golongan Darah<br>
    <select name='goldar'>
    <option value ='0'>pilih golongan darah..</option>";
    $tbl='tbl_goldar';
    $isi = $as->select($tbl,'*');
    while($r=mysql_fetch_array($isi)){
    echo"<option value=$r[id_goldar]>$r[nama_goldar]</option>";
    }
    echo"</select><br />

    Alamat<br />
    <textarea name='alamat'></textarea><br />
    Kode Pos <br /><input type='text' name='kodepos' class='text' /><br />
    Kontak <br /><input type='text' name='kontak' class='text' required/><br />
    Email <br /><input type='text' name='email' class='text' /><br />
    Foto <br /><input type='file' name='gambar' class='text'/><br /><br>
    <div style='width:500px; margin-top:-10px;'><input class='graybutton' type='submit' value='Tambahkan'> &nbsp; <input class='graybutton' type='reset' value='Ulangi'></div>
</form>";

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012

Галих, мы все были нубами.Но, пожалуйста, дайте нам более подробную информацию о ваших проблемах, а не "это не работает, и вы застряли".

Да, из ваших кодов, ответ от Ralfe является одной из возможностей, и комментарийОт Кемала Фадиллы о том, что запрос не выполняется, - другой.

От меня, если вы делаете загрузку изображения на сервер, убедитесь, что каталог сервера доступен для записи приложению, например, PHP.

И будьте осторожны с SQL-инъекцией, поскольку вы вставляете ввод пользователя на сервер MySQL без какой-либо фильтрации.

0 голосов
/ 09 февраля 2012

В вашем HTML у вас есть:

Foto <br /><input type='file' name='gambar' class='text'/><br /><br>

Но в вашем PHP у вас есть:

$file = $_POST['gambar'];

Возможно, мне не хватает того, что вы делаете, но наверняка так и должно быть:

$file = $_FILES['gambar'];

Или я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...