Masalah Penggabungan File PHP dan HTML
Warning: session_start() [function.session-start]:
Cannot send session cookie - headers already sent by
(output started at --- ) in --- on line ---
Pada Article/Tutorial Kali Ini, saya Franky H salah satu mahasiswa pts di pekanbaru-riau akan memberikan/men-share kan pengamalan saya pribadi tentang pengabungan file Php dan HTML.
Pertama kali saya Mendapatkan pesan error yang tampil pada saat file php dan html yg telah digabung kan itu di save lalu saya run(jalankan), penggabungan itu sukses, tetapi ada pesan peringantan seperti ini :
Warning: session_start() [function.session-start]:
Cannot send session cookie - headers already sent by
(output started at ... ) in ... on line ...
Langsung saja kita menuju file nya.
File Php :
<?php
session_start();
include "connect.php";
$sid = session_id();
// fungsi untuk mendapatkan isi keranjang belanja
function isi_keranjang(){
$isikeranjang = array();
$sid = session_id();
$sql = mysql_query("SELECT * FROM keranjang WHERE id_session='$sid'");
while ($r=mysql_fetch_array($sql)) {
$isikeranjang[] = $r;
}
return $isikeranjang;
}
$tgl_skrg = date_default_timezone_set(Y-m-d);
// simpan data pemesanan
mysql_query("INSERT INTO pembelian(tgl_beli) VALUES ('$tgl_skrg')");
// mendapatkan nomor orders dari tabel pembelian
$id_orders=mysql_insert_id();
// panggil fungsi isi_keranjang dan hitung jumlah produk yang dipesan
$isikeranjang = isi_keranjang();
$jml = count($isikeranjang);
// simpan data detail pemesanan
for ($i = 0; $i < $jml; $i++){
mysql_query("INSERT INTO detail_beli(id_beli, id_produk, jumlah) VALUES('$id_orders',{$isikeranjang[$i]['id_produk']}, {$isikeranjang[$i]['jumlah']})");
}
// setelah data pemesanan tersimpan, hapus data pemesanan di tabel keranjang
for ($i = 0; $i < $jml; $i++) { mysql_query("DELETE FROM keranjang WHERE id_belanja = {$isikeranjang[$i]['id_belanja']}");}
echo '<font face="Verdana" size="3">
Cetak Bukti Pemesan Anda </font>';
echo '<font face="Verdana" size="4">
<a href="javascript:window.print()">
PRINT </a><br>';
echo"Nomor Order: <b>$id_orders</b><br /><br />";
echo"<h1>Rincian Belanja</h1>
<table border=1>
<tr>
<th>Nama Produk</th>
<th>Qty</th>
<th>Harga</th>
<th>Sub Total</th>
</tr>
";
$r=mysql_query("SELECT * FROM detail_beli,produk WHERE detail_beli.id_produk=produk.id_produk AND id_beli='$id_orders'");
while($d=mysql_fetch_array($r)){
$subtotal = $d[harga]* $d[jumlah];
$total = $total + $subtotal;
echo"<tr><td>$d[nama_produk]</td>
<td>$d[jumlah]</td>
<td>$d[harga]</td>
<td>$subtotal</td></tr>";
}
echo"</table>
<h2>Total Belanja : <b>$total</b></h2>";
?>
File HTML :
<?php
session_start();
if( isset($_SESSION['userid']) ) {
header('location:index.php');
}
require("connect.php");
?>
<html>
<head>
<LINK REL="shortcut icon"HREF="bg\ku.jpg"/>
</head>
<title>
Seller Ikan Hias
</title>
<style type="text/css">
#main-menu{
height:50px;
width:1200px;
background-image:url(BG/83.jpg);
background-size:100% 100%
margin:auto;
list-style:none;
list-style-type:none;
border-radius:10px;
box-shadow:2px 3px ORANGE;
}
#main-menu ul li{
display:block;
border-radius:10px;
height:40px;
width:210px;
float:left;
padding:5px 5px;
position:relative;
border-bottom:2px solid white;
border-bottom:px solid white;
border-top:2px solid white;
border-left:4px solid white;
border-right:2px solid white;
}
#main-menu ul li:hover{
background-color:gray;
}
#main-menu ul li:hover ul li{
display:block;
background-color:gray;
position:relative;
visibility:visible;
left:-45px;
}
#main-menu ul ul{
position:absolute;
visibility:hidden;
}
#main-menu ul li:hover ul li:hover{
background-image:url(social/social_aim.png);
background-size:100% 100%
}
</style>
<BODY style="background-image:url(image.jpg);background-size:100% 120%">
<div align="center">
<!--bagian atas-->
<div style="border-radius:10px;background-image:URL(ampera.jpg); background-size:100% 100%; width:800; height:300px">
<font size="2" color="canian" face="Lucida Handwriting" ><H1><B>ONLINE FISH</h1></FONT></B>
</div>
<!--bagian menu-->
<br>
<div id="main-menu">
<ul>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="objekwisata.html">Home</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting" a href="#">Jenis Ikan</a></FONT></B>
<ul>
<li><a href="pku.html">Ikan Hias</a>
<li><a href="pku.html">Ikan contes</a>
</ul>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="Uts_Franky.php">Pendaftaran</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="kalender.html">Kalender</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="Profil.html">Profil</a></FONT></B>
</ul>
</div>
<!--bagian body-->
<br>
<tr>
<td colspan="2" align="center">Belum Jadi Anggota? <a href="register.php">Daftar</a></td>
</tr>
</form>
</table>
<!--bagian bawah-->
<div id="bottom-style" style=" width:1000px; height:50px">
<marquee><font size="2" color="orangered" face="LITHOS PRO REGULAR" ><H1><I><B>Terima Kasih Atas Kunjungan Anda---- SELLER ONLINE FISH ---- ALAMAT : Jl.Jend.Sudirman Pekanbaru----> HATI-HATI PENIPUAN</h1></FONT></MARQUEE></I></B>
</div>
</center>
</table>
</body>
</html>
Jadi mulai lah saya menggabungkan kedua file tsb,
Percobaan pertama file yang saya gabungkan:
Nb: hijau = html
Biru = php
<?php
session_start();
if( isset($_SESSION['userid']) ) {
header('location:index.php');
}
require("connect.php");
?>
<html>
<head>
<LINK REL="shortcut icon"HREF="bg\ku.jpg"/>
</head>
<title>
Seller Ikan Hias
</title>
<style type="text/css">
#main-menu{
height:50px;
width:1200px;
background-image:url(BG/83.jpg);
background-size:100% 100%
margin:auto;
list-style:none;
list-style-type:none;
border-radius:10px;
box-shadow:2px 3px ORANGE;
}
#main-menu ul li{
display:block;
border-radius:10px;
height:40px;
width:210px;
float:left;
padding:5px 5px;
position:relative;
border-bottom:2px solid white;
border-bottom:px solid white;
border-top:2px solid white;
border-left:4px solid white;
border-right:2px solid white;
}
#main-menu ul li:hover{
background-color:gray;
}
#main-menu ul li:hover ul li{
display:block;
background-color:gray;
position:relative;
visibility:visible;
left:-45px;
}
#main-menu ul ul{
position:absolute;
visibility:hidden;
}
#main-menu ul li:hover ul li:hover{
background-image:url(social/social_aim.png);
background-size:100% 100%
}
</style>
<BODY style="background-image:url(image.jpg);background-size:100% 120%">
<div align="center">
<!--bagian atas-->
<div style="border-radius:10px;background-image:URL(ampera.jpg); background-size:100% 100%; width:800; height:300px">
<font size="2" color="canian" face="Lucida Handwriting" ><H1><B>ONLINE FISH</h1></FONT></B>
</div>
<!--bagian menu-->
<br>
<div id="main-menu">
<ul>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="objekwisata.html">Home</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting" a href="#">Jenis Ikan</a></FONT></B>
<ul>
<li><a href="pku.html">Ikan Hias</a>
<li><a href="pku.html">Ikan contes</a>
</ul>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="Uts_Franky.php">Pendaftaran</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="kalender.html">Kalender</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="Profil.html">Profil</a></FONT></B>
</ul>
</div>
<!--bagian body-->
<?php
session_start();
include "connect.php";
$sid = session_id();
// fungsi untuk mendapatkan isi keranjang belanja
function isi_keranjang(){
$isikeranjang = array();
$sid = session_id();
$sql = mysql_query("SELECT * FROM keranjang WHERE id_session='$sid'");
while ($r=mysql_fetch_array($sql)) {
$isikeranjang[] = $r;
}
return $isikeranjang;
}
$tgl_skrg = date_default_timezone_set(Y-m-d);
// simpan data pemesanan
mysql_query("INSERT INTO pembelian(tgl_beli) VALUES ('$tgl_skrg')");
// mendapatkan nomor orders dari tabel pembelian
$id_orders=mysql_insert_id();
// panggil fungsi isi_keranjang dan hitung jumlah produk yang dipesan
$isikeranjang = isi_keranjang();
$jml = count($isikeranjang);
// simpan data detail pemesanan
for ($i = 0; $i < $jml; $i++){
mysql_query("INSERT INTO detail_beli(id_beli, id_produk, jumlah) VALUES('$id_orders',{$isikeranjang[$i]['id_produk']}, {$isikeranjang[$i]['jumlah']})");
}
// setelah data pemesanan tersimpan, hapus data pemesanan di tabel keranjang
for ($i = 0; $i < $jml; $i++) { mysql_query("DELETE FROM keranjang WHERE id_belanja = {$isikeranjang[$i]['id_belanja']}");}
echo '<font face="Verdana" size="3">
Cetak Bukti Pemesan Anda </font>';
echo '<font face="Verdana" size="4">
<a href="javascript:window.print()">
PRINT </a><br>';
echo"Nomor Order: <b>$id_orders</b><br /><br />";
echo"<h1>Rincian Belanja</h1>
<table border=1>
<tr>
<th>Nama Produk</th>
<th>Qty</th>
<th>Harga</th>
<th>Sub Total</th>
</tr>
";
$r=mysql_query("SELECT * FROM detail_beli,produk WHERE detail_beli.id_produk=produk.id_produk AND id_beli='$id_orders'");
while($d=mysql_fetch_array($r)){
$subtotal = $d[harga]* $d[jumlah];
$total = $total + $subtotal;
echo"<tr><td>$d[nama_produk]</td>
<td>$d[jumlah]</td>
<td>$d[harga]</td>
<td>$subtotal</td></tr>";
}
echo"</table>
<h2>Total Belanja : <b>$total</b></h2>";
?>
<br>
<tr>
<td colspan="2" align="center">Belum Jadi Anggota? <a href="register.php">Daftar</a></td>
</tr>
</form>
</table>
<!--bagian bawah-->
<div id="bottom-style" style=" width:1000px; height:50px">
<marquee><font size="2" color="orangered" face="LITHOS PRO REGULAR" ><H1><I><B>Terima Kasih Atas Kunjungan Anda---- SELLER ONLINE FISH ---- ALAMAT : Jl.Jend.Sudirman Pekanbaru----> HATI-HATI PENIPUAN</h1></FONT></MARQUEE></I></B>
</div>
</center>
</table>
</body>
</html>
Hasil nya begini:
Tapi saya tidak berputus asa, mungkin karna emang udah tugas saya kali ya, pastinya harus di selesaikan jugak bagaimanapun cara nya, karna tugas buat nilai ujian akhir semester(UTS).
Selanjutnya karna saya tidak menemukan solusi nya akhir nya Saya coba searching ke google, tapi tidak menemukan hasil dari masalah saya, karna saya orang nya optimistin alias pantang menyerah,kemudian saya coba memaksimalkan kinerja otak saya , sampai akhirnya muncul lampu neon (kebanyakan nonton film kartun mungkin) diatas kepala saya yang mengartikan saya menemukan solusi dari masalah yang saya dapatkan ini. Masalah nya terdapat pada peletakan kode session start.
Berpanduan dari file penggabungan file php dan html saya yang lama, Maka saya merubah beberapa posisi peletaka file php nya ,yang sebelumnya file php itu berada di bagian body semua, terus saya pindahkan ke atas bagian html sebagian dan sebagian tetap di dalam body, agar posisi form itu berada di tengah tengah halaman(dibawah main menu).
Berikut ini adalah hasil dari perubahan posisi dari kode kode php nya, bandingkan dengan yang sebelumnya ya agar lebih mengerti :
Ingat ya sahabat : Biru = PHP
Hijau = HTML
<?php
session_start();
include "connect.php";
$sid = session_id();
// fungsi untuk mendapatkan isi keranjang belanja
function isi_keranjang(){
$isikeranjang = array();
$sid = session_id();
$sql = mysql_query("SELECT * FROM keranjang WHERE id_session='$sid'");
while ($r=mysql_fetch_array($sql)) {
$isikeranjang[] = $r;
}
return $isikeranjang;
}
$tgl_skrg = date_default_timezone_set(Y-m-d);
// simpan data pemesanan
mysql_query("INSERT INTO pembelian(tgl_beli) VALUES ('$tgl_skrg')");
// mendapatkan nomor orders dari tabel pembelian
$id_orders=mysql_insert_id();
// panggil fungsi isi_keranjang dan hitung jumlah produk yang dipesan
$isikeranjang = isi_keranjang();
$jml = count($isikeranjang);
// simpan data detail pemesanan
for ($i = 0; $i < $jml; $i++){
mysql_query("INSERT INTO detail_beli(id_beli, id_produk, jumlah) VALUES('$id_orders',{$isikeranjang[$i]['id_produk']}, {$isikeranjang[$i]['jumlah']})");
}
// setelah data pemesanan tersimpan, hapus data pemesanan di tabel keranjang
for ($i = 0; $i < $jml; $i++) { mysql_query("DELETE FROM keranjang WHERE id_belanja = {$isikeranjang[$i]['id_belanja']}");}
?>
<html>
<head>
<LINK REL="shortcut icon"HREF="bg\ku.jpg"/>
</head>
<title>
Seller Ikan Hias
</title>
<style type="text/css">
#main-menu{
height:50px;
width:1200px;
background-image:url(BG/83.jpg);
background-size:100% 100%
margin:auto;
list-style:none;
list-style-type:none;
border-radius:10px;
box-shadow:2px 3px ORANGE;
}
#main-menu ul li{
display:block;
border-radius:10px;
height:40px;
width:210px;
float:left;
padding:5px 5px;
position:relative;
border-bottom:2px solid white;
border-bottom:px solid white;
border-top:2px solid white;
border-left:4px solid white;
border-right:2px solid white;
}
#main-menu ul li:hover{
background-color:gray;
}
#main-menu ul li:hover ul li{
display:block;
background-color:gray;
position:relative;
visibility:visible;
left:-45px;
}
#main-menu ul ul{
position:absolute;
visibility:hidden;
}
#main-menu ul li:hover ul li:hover{
background-image:url(social/social_aim.png);
background-size:100% 100%
}
</style>
<BODY style="background-image:url(image.jpg);background-size:100% 120%">
<div align="center">
<!--bagian atas-->
<div style="border-radius:10px;background-image:URL(ampera.jpg); background-size:100% 100%; width:800; height:300px">
<font size="2" color="canian" face="Lucida Handwriting" ><H1><B>ONLINE FISH</h1></FONT></B>
</div>
<!--bagian menu-->
<br>
<div id="main-menu">
<ul>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="objekwisata.html">Home</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting" a href="#">Jenis Ikan</a></FONT></B>
<ul>
<li><a href="pku.html">Ikan Hias</a>
<li><a href="pku.html">Ikan contes</a>
</ul>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="Uts_Franky.php">Pendaftaran</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="kalender.html">Kalender</a></FONT></B>
<li><font color="white" size="4" face="Lucida Handwriting"><a href="Profil.html">Profil</a></FONT></B>
</ul>
</div>
<!--bagian body-->
<?php
echo '<font face="Verdana" size="3">
Cetak Bukti Pemesan Anda </font>';
echo '<font face="Verdana" size="4">
<a href="javascript:window.print()">
PRINT </a><br>';
echo"Nomor Order: <b>$id_orders</b><br /><br />";
echo"<h1>Rincian Belanja</h1>
<table border=1>
<tr>
<th>Nama Produk</th>
<th>Qty</th>
<th>Harga</th>
<th>Sub Total</th>
</tr>
";
$r=mysql_query("SELECT * FROM detail_beli,produk WHERE detail_beli.id_produk=produk.id_produk AND id_beli='$id_orders'");
while($d=mysql_fetch_array($r)){
$subtotal = $d[harga]* $d[jumlah];
$total = $total + $subtotal;
echo"<tr><td>$d[nama_produk]</td>
<td>$d[jumlah]</td>
<td>$d[harga]</td>
<td>$subtotal</td></tr>";
}
echo"</table>
<h2>Total Belanja : <b>$total</b></h2>";
?>
<br>
<tr>
<td colspan="2" align="center">Belum Jadi Anggota? <a href="register.php">Daftar</a></td>
</tr>
</form>
</table>
<!--bagian bawah-->
<div id="bottom-style" style=" width:1000px; height:50px">
<marquee><font size="2" color="orangered" face="LITHOS PRO REGULAR" ><H1><I><B>Terima Kasih Atas Kunjungan Anda---- SELLER ONLINE FISH ---- ALAMAT : Jl.Jend.Sudirman Pekanbaru----> HATI-HATI PENIPUAN</h1></FONT></MARQUEE></I></B>
</div>
</center>
</table>
</body>
</html>
Ini hasil nya sobat :
Kesimpulan nya, sebenarnya letak kesalahan itu hanya pada penempatan coding PHP nya saja.
perhatikan <?php
Session_start();
dst
?>
Session_start tidak boleh diletakan dibawah koding apapun,arti dari session start itu adalah pemulaian sesi, jadi dia harus di letakan di baris atas.
Akan tetapi tidak semua dari file php saya itu di letakan di paling atas, pada bagian coding php echo itu saya letak di bagian body html nya, agar posisi form yg saya buat itu berada di bawa main menu.
Jadi file php saya menjadi 2 file, diatas coding html dan di dalam body html nya.
Demikian hasil dr share saya kali ini, sampai jumpa pada sharing dan article saya selanjutnya.tq
No comments:
Post a Comment
Komentar dengan Bijak dan Bermanfaat