Aneh pada GET[] dan POST[]

Mengolah hasil dari GET atau POST berbeda dengan yang langsung kalimat dari isi GET atau POST . 

$dat="$_POST[email]";//atau pakai GET sama saja
$Kalimat=trim($dat);
$hasil=explode(" ",$kalimat);
foreach ($hasil as $to) {     
$kata=strpos($to,',');
$kata1=$hasil+1;
$kata2=substr($to, $kata1);
$mel=substr($to,0,$hasil);
$nim=substr($kata2,-1);
$nama= str_replace('_',' ',$kata2);
$nam=str_replace(' ',' ',$nama);
echo"$mel - $nam<br />"; //hasilnya : mail@email.com - User satu mail1@email.com,Useru mail2@email.com,Usera
}


Tapi kalau kalimat langsung, contoh

$dat=" mail@email.com,User_satu mail1@email.com,Useru mail2@email.com,Usera"; //bukan dari hasil POST atau GET
$Kalimat=trim($dat);
$hasil=explode(" ",$kalimat);
foreach ($hasil as $to) {     
$kata=strpos($to,',');
$kata1=$hasil+1;
$kata2=substr($to, $kata1);
$mel=substr($to,0,$hasil);
$nim=substr($kata2,-1);
$nama= str_replace('_',' ',$kata2);
$nam=str_replace(' ',' ',$nama);
echo"$mel - $nam<br />"; 
//hasilnya : 
//mail@email.com - User satu
//mail1@email.com - Useru 
//mail2@email.com - Usera

}


apa sebabnya?
avatar mboh

Ditanyakan oleh @mboh

34 Kontribusi 3 Poin

Login untuk menanggapi


Jawaban

Variabel $_POST dan $_GET adalah variabel global default yang include pada PHP. Nah untuk jenisnya sendiri itu berupa variabel array. Oleh karenanya untuk mengambilnya nilai nya harus pakai nama key-nya. Contoh :

$_POST['nama'] berarti ini mengambil nilai dari input text yang memiliki atribut name -nya nama.
Atau
$_GET['usia'] berarti ini mengambil nilai dari parameter url dengan key usia, contoh nya seperti : http://blabla.com/profile.php?usia=23

Maka ketika pakai $_GET['usia'], nilainya adalah 23.
Untuk kode agan,
Coba diganti gini :

$dat= $_POST["email"];
$Kalimat=trim($dat);
$hasil=explode(" ",$kalimat);
foreach ($hasil as $to) {     
$kata=strpos($to,',');
$kata1=$hasil+1;
$kata2=substr($to, $kata1);
$mel=substr($to,0,$hasil);
$nim=substr($kata2,-1);
$nama= str_replace('_',' ',$kata2);
$nam=str_replace(' ',' ',$nama);
echo"$mel - $nam<br />"; //hasilnya : mail@email.com - User mail1@email.com,User1 mail2@email.com,User2
}
avatar ahanafi

Dijawab oleh @ahanafi

456 Kontribusi 187 Poin

  • saya telah coba POST["email"] ,hasil masih sama aja , tidak ada perubahan, makanya saya katakan "Aneh" - @mboh
  • Bisa dilampirkan script form html nya? - @ahanafi
  • pak @ahanafi Saya telah telah menampilkam script formnya , karena tidak bisa di taggapan maka saya masukkan di jawaban - @mboh

Tampikan semua | Login untuk menanggapi


Kepada @ahanafi
 ini saya kirimkan script formnya

<div class="alert alert-secondary" role="alert">
 Kirim pesan ke para Member
</div>
<div class="alert alert-light" role="alert">
<form action="sending.php" method="POST" target="_blank">
	 <div class="form-group">
	 	<label class="sr-only">Email tujuan</label>
<textarea class="form-control" name="email" required/>
<?php
	 	$sql=$connect->query("SELECT * FROM member LIMIT 10");
  $sql->execute();
  while($s=$sql->fetch()) {

$email=$s['email'];
$nama= str_replace(' ','_', $s['nama']);
$mail="$email,$nama&nbsp";
$mal=trim($mail);
echo"$mal"; 
}
?>
</textarea>
</div>
  <div class="form-group">
  	<label class="sr-only">Judul</label>
<input type="text" name="subject" value="" required />
</div>
  <div class="form-group">
  	<label class="sr-only">Isi pesan</label>
<textarea class="form-control" name="pesan" value="" required /></textarea>
</div>
<input type="submit" class="btn btn-primary mb-2" value="submit">
</form>
</div>
avatar mboh

Dijawab oleh @mboh

34 Kontribusi 3 Poin

Login untuk menanggapi


Alhamdulillah kasus sudah fix .
ada yang perlu dibenahi di form kirim pesan , menjadi :

<div class="alert alert-secondary" role="alert">
 Kirim pesan ke para Member
</div>
<div class="alert alert-light" role="alert">
<form action="sending.php" method="POST" target="_blank">
	 <div class="form-group">
	 	<label class="sr-only">Email tujuan</label>
<textarea class="form-control" name="email" required/>
<?php
	 	$sql=$connect->query("SELECT * FROM member LIMIT 10");
  $sql->execute();
  while($s=$sql->fetch()) {

$email=$s['email'];
$nama= str_replace(' ','_', $s['nama']);
$mail="$email,$nama ";
echo"$mail"; 
}
?>
</textarea>
</div>
  <div class="form-group">
  	<label class="sr-only">Judul</label>
<input type="text" name="subject" value="" required />
</div>
  <div class="form-group">
  	<label class="sr-only">Isi pesan</label>
<textarea class="form-control" name="pesan" value="" required /></textarea>
</div>
<input type="submit" class="btn btn-primary mb-2" value="submit">
</form>
</div>

Terima kasih untuk semuanya terutama Bapak @ahanafi 
avatar mboh

Dijawab oleh @mboh

34 Kontribusi 3 Poin

Login untuk menanggapi


Login untuk gabung berdiskusi