Topic: PHP Pertamaku...

Ada yg tau solusi untuk error ini nggak yah???...maklum pemula nehhhh


Method Not Allowed
The requested method POST is not allowed for the URL /latihan1/input.htm.


--------------------------------------------------------------------------------

Apache/1.3.31 Server at localhost Port 80

Re: PHP Pertamaku...

tolong di share scipt html... kedua file (form dan submit), biar lebih detail dan kita bisa bahas....

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

Re: PHP Pertamaku...

@adhink:
nambahin : coba liat juga httpd.conf dari apache nya, apakah ada limit yg mirip spt ini, pada direktori /latihan1 :

<Directory />
    Options FollowSymLinks
    <Limit GET POST OPTIONS>
        Order Allow,Deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order Deny,Allow
        Deny from all
    </LimitExcept>
</Directory>

maksudnya, coba liat apakah ada directive Limit dan LimitExcept yang mencegah POST ke direktori tersebut, baik eksplisit ataupun implisit.
thx.

Be like a postage stamp. Stick to one thing until you get there.

Re: PHP Pertamaku...

Ini tag input.htm :
<html>
<head></head>
<body>
<form method="post" action-"input.php">
<pre>
Nama : <input type="text" name="nama">
Email: <input type="text" name="email">
Situs : <input type="text" name="situs">
<input type="submit" name="submit" value="Kirim"><input type="reset" name="reset" value="reset">
</pre>
</form>
</body>
</html>

dan ini tag input.php :
<?

$koneksi=mysql_connect("localhost","adhink28","malih28");
mysql_select_db("ikc",$koneksi);
mysql_query(:insert into pengunjung (nama,email,situs) values ('$nama','$email,'$situs')",$koneksi);
echo "Data telah dimasukkan";
?>

5 (edited by kucingGering 18-09-2008 08:13:29)

Re: PHP Pertamaku...

@adhink: bisa gunakan satu file input.php aja, tanpa input.htm, seperti ini :
"input.php"

<?php
/*
 * Created on 18 Sep 08
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 *
 * File: input.php
 */
?>
<form method="post" action="/input.php" target="_self">
  <pre>
  Nama : <input type="text" name="nama">
  Email: <input type="text" name="email">
  Situs : <input type="text" name="situs">
  <input type="submit" name="submit" value="Kirim">
  <input type="reset" name="reset" value="reset">
  </pre>
</form>
<?php
  $pNama = $_POST['nama'];
  $pEmail = $_POST['email'];
  $pSitus = $_POST['situs'];

  if (empty($_POST['submit'])) {die(1);};
      
  if (empty($pNama)) {die("Nama kosong.");};
  if (empty($pEmail)) {die("Email kosong.");};
  if (empty($pSitus)) {die("Situs kosong.");};
  echo "Nama: $pNama, Email: $pEmail, Situs: $pSitus";
  
  $koneksi = mysql_connect("localhost", "adhink28", "malih28") or 
    die("Error koneksi database: " . mysql_error());
  mysql_select_db("ikc", $koneksi) or 
    die("Error database: " . mysql_error());
  
  $query = "INSERT INTO `pengunjung` (`nama`, `email`, `situs`) VALUES ('$pNama', '$pEmail, '$pSitus')";
  $sql = mysql_query($query, $koneksi);
  
  if ($sql) {
    echo "Sukses: Data telah dimasukkan";
  }
  else {       //error
      echo "Error: Data tidak dimasukkan";
  }
?>

thx.

Be like a postage stamp. Stick to one thing until you get there.

Re: PHP Pertamaku...

Mas action ke : http://localhost/input.php >>>so tidak ada input.php di folder tersebut, trus aku coba tambahkan supaya masuk ke folder : http://localhost/latihan1/input.php berikut scriptnya :
<form method="post" action="/latihan1/input.php" target="_self">...kok masih actionnya ke http://localhost/input.php

bos bisa terangin nggak yahhh detail dari alur yg dibuat...aku nggak mudeng nehhh....maaf bos ngerepotin...

Re: PHP Pertamaku...

Buat direktori "/latihan1" di root server. (kalau Apache defaultnya di htdocs).
Buat file "input.php" di direktori "/latihan1".
ubah tag FORM seperti ini :

<form method="post" action="input.php" target="_self">
...
</form>

(tanpa root-dir "/ " di depan input.php, sehingga action menjadi "relatif", tidak absolut lagi.)

Clear dulu cache dari browser.
Buka di browser: http://localhost/latihan1/input.php
seharusnya jalan.

Alur program:
1. tampilkan form, dengan tag2 HTML.

PHP code:
2. ambil  informasi http-post-request pakai super-global array $_POST[]
3. cek apakah ada informasi yg di-submit pakai method POST ? empty() atau tidak?
4. jika ada, olah informasi / data, jika kosong, keluar (die)

5. cek apakah semua data POST lengkap, apakah empty() atau tidak,
5.a. cek apakah ada data POST dengan name = 'nama' ?
5.b. cek apakah ada data POST dengan name = 'email' ?
5.c. cek apakah ada data POST dengan name = 'situs' ?
-jika salah satu kosong, keluar (die),
-jika lengkap ada semua, lanjut....

6. buat koneksi ke mysql server, jika gagal keluar (die).
7. buka database mysql, jika gagal keluar (die)
8. buat query INSERT data nama, email, situs.
9. submit query INSERT ke mysql-server.

note:
atribut FORM, <input name="abcd" ...> bisa diakses dalam PHP memakai array $_POST['abcd']
(syaratnya PHP versi 4.1.0 ke atas...)
thx.

Be like a postage stamp. Stick to one thing until you get there.

Re: PHP Pertamaku...

mysql_query(:insert into pengunjung (nama,email,situs) values ('$nama','$email,'$situs')",$koneksi);

script-nya salah, ikuti om kucingGering....
next....

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

Re: PHP Pertamaku...

bos maaf neh nanya melulu...untuk akses foldernya sudah oke, tapi kok nggak masuk ke database yahhhh...berikut messagenya :
Nama: Linda, Email: linda@yahoo.com, Situs: www.linda.comError: Data tidak dimasukkan
Saya cek databasenya oke baik username, password dll...apalagi yahhhh

Re: PHP Pertamaku...

dah creatre database-nya belum ?!
create dulu, bisa manual dari phpmyadmin ato otomatis lebih php juga bisa.

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

11 (edited by kucingGering 18-09-2008 16:39:18)

Re: PHP Pertamaku...

@adhink:
database `pengunjung` terdiri dari field apa saja ?
selain field `nama`, `email` dan `situs`, apakah ada field lain ?

note:

Nama: Linda, Email: linda@yahoo.com, Situs: www.linda.comError: Data tidak dimasukkan

supaya pesan error tidak nyambung, ubah script spt ini :

  if ($sql) {
    echo "<br>Sukses: Data telah dimasukkan";
  }
  else {       //error
      echo "<br>Error: Data tidak dimasukkan";
  }

thx.

edit:
maaf, maksudnya tabel `pengunjung`...

Be like a postage stamp. Stick to one thing until you get there.

Re: PHP Pertamaku...

fieldnya hanya :id, nama, email,dan situs...tapi aku coba untuk access databsenya menggunakan script php itu oke tidak ada maslah. Adakah pengaruhnya dengan case yg awal mengenai method "post". Apa mungkin blok sama proxy kantor yah untuk port tersebut. Maafkan sekali lagi

Re: PHP Pertamaku...

untuk database dengan nama : ikc
dengan tabel pengunjung
dan fieldnya : id,nama,email,situs.

wah maaf neh jadi ngerepotin banget

Re: PHP Pertamaku...

1. field `id` dengan tipe apa ?
bisa di share definisi tabel `pengunjung` nya ?

2. apakah user "adhink28" punya privileges untuk INSERT (mengubah data) ?
atau hanya punya privileges untuk SELECT saja ?

mySQL punya berbagai macam level privileges, pada level database, level tabel, ...
juga ada privileges berdasarkan host (dalam hal ini localhost).

coba dites dulu pakai phpmyadmin, apakah bisa INSERT data...
kalau tdk ada, pakai command prompt / console aja, (kalo windows, Start > Run, ketik cmd utk membuka command prompt... ketik:

 
c:\> mysql -u adhink28 -p
...
mysql> USE `ikc`;
mysql> DESCRIBE `pengunjung`;
mysql> INSERT INTO `pengunjung` (`nama`, `email`, `situs`) VALUES ('tes1', 'tes2', 'tes2')";

coba juga tambahkan isian `id` :
=> INSERT INTO `pengunjung` (`id`, `nama`, `email`, `situs`) VALUES (999, 'tes1', 'tes2', 'tes2')";

thx.

Be like a postage stamp. Stick to one thing until you get there.