مثل اینکه بنا بر این شده که من دوبار از شما خواهش کنم تا به سوالاتم جواب داده بشه
کسی نیست جواب منو بده.
Printable View
مثل اینکه بنا بر این شده که من دوبار از شما خواهش کنم تا به سوالاتم جواب داده بشه
کسی نیست جواب منو بده.
نیازی نیست شما برای هر سوال دو تا پست بزنید کافیه یه کم صبر کنید تا به سوالتون جواب داده بشه نباید توقع داشته باشید همون موقع که پرسیدیدجواب بگیرید!نقل قول:
کدی که نوشتید یکی دو تا مشکل داره
اول اینکه شما نمایش ارور ها رو غیر فعال کردید و اگر php بتونه خطا رو تشخیص بده بازم نمایش نمیده.
دوم هدر نوشته شده هم اشکال داره باید به این صورت بنویسی:
[php]
header("Location: f.php");
[/php]
بابا منم دوست ندارم دوبار سوال کنم ولی واقعآ عجله دارم و پروژه ام داره تموم میشه و گیر همین یدونه موندم
آقا درست نشد این error را بهم میده، میگه هدر را قبلآ ارسال کردی
ضمنآ من با edit داس هم بازش کردم و هیچ کارکتر اضافه ای وجود نداشت.کد:Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\in.php:3) in c:\program files\easyphp1-8\www\in.php on line 35
اگه لازمه بگید کد کامل دو تا صفحه را هم بزارم.
حداقل با روشن کردن نمایش ارورها میشه فهمید مشکل چیه.
شک نکن یه چیزی قبل از سشن ارسال شده. از یک ادیتور استاندارد استفاده کن تا بتونی صفحه رو درست ذخیره کنی. اگه نشد و فکر میکنی مشکل از کد هست کدت رو کامل بزار ببینیم قضیه چیه
ادیتور من Dreamweaver تا حالا که پروژه را با این ادیتور نوشتم اینجور مشکلا برام پیش نمیومده بود حالا نمیدونم چه ورومی داره
این کد کامل صفحه اول (با نام viewkala):
[PHP]
<?php
session_start();
echo"<meta http-equiv='content-type' content='text/html; charset=utf-8'>";
ini_set("display_errors",0);
if ($_SESSION['sabt_kala']==true)
{
echo "<font face='tahoma' dir='rtl' color='red'>کالای خریداری شده شما با نام $query_kala در بانک ثبت شد</font>";
unset($_SESSION['idea']);
}
mysql_connect('localhost', 'root','') or die(mysql_error());
mysql_select_db('ebay') or die(mysql_error());
$query=mysql_query("select * from kala");
while ($line=mysql_fetch_array($query))
{
echo "<table border='2' align='center' dir='rtl' width='500' style='border:dashed'>";
echo "<tr><td>";
echo "<table border='0' align='center' dir='rtl'>";
$kod=$line['kod'];
echo"<tr>";
echo"<td>نام کالا:</td>";
echo"<td>".$line['name_kala']."</td>";
echo"</tr>";
echo"<tr>";
$img=$line['img'];
echo"<tr>";
echo"<td>توضیحات:</td>";
echo"<td>".$line['describ']."</td>";
echo"<td><img src='$img' width='100' height='100'></td>";
echo"<tr>";
echo"<td>کدکالا:</td>";
echo"<td>".$line['kod']."</td>";
echo"</tr>";
echo"</tr>";
echo"<tr>";
echo"<td>قیمت:</td>";
echo"<td>".$line['price']."</td>";
echo "<td><a href='in.php?kod=$kod'>خرید</a>";
echo"</tr>";
echo"<tr>";
echo"<td><hr></hr></td>";
echo"<td><hr></hr></td>";
echo"</tr>";
echo "</td></tr>";
echo"</table>\n";
echo"</table>\n";
}
mysql_free_result($query);
mysql_close();
?>
[/PHP]
اینم کد صفحه دوم(با نام in):
[PHP]
<?
session_start();
echo "<meta http-equiv='content-type' content='text/html;' charset='utf-8' />";
ini_set("display_errors",1);
if($_SESSION['id']!==true)
{
echo "شما هنوز وارد نشده اید یا هنوز ثبت نام نکرده اید";
}
else
{
if ($_SERVER['REQUEST_METHOD']=='GET'){
$kod=$_GET['kod'];
$username=$_SESSION['userInfo'];
mysql_connect('localhost','root');
mysql_select_db('ebay');
list($query_f_name) = mysql_fetch_row(mysql_query("SELECT f_name FROM register WHERE user_n='$username';"));
list($query_kala)=mysql_fetch_row(mysql_query("SEL ECT name_kala FROM kala WHERE kod='$kod';"));
list($query_l_name)=mysql_fetch_row(mysql_query("S ELECT l_name FROM register WHERE user_n='$username';")) or die(mysql_error());
list($query_tell)=mysql_fetch_row(mysql_query("SEL ECT tell FROM register WHERE user_n='$username';")) or die(mysql_error());
list($query_addr)=mysql_fetch_row(mysql_query("SEL ECT addr FROM register WHERE user_n='$username';")) or die(mysql_error());
mysql_query("INSERT INTO buy values('$query_f_name','$query_l_name','$query_kal a','$username','$query_addr','$query_tell');") or die(mysql_error());
$_SESSION['sabt_kala']=true;
mysql_close();
header("Location: viewkala.php");
exit();
}
}
?>
[/PHP]
ببینم راه حلی وجود داره من این همه echo ننویسم
خیلی مبتدیانه عمل کردم نه
خب این اولین برنامه ای که با php می نویسم:31::20:
برای اینکه اینقدر از echo استفاده نکنی میتونی اونا رو با هم ادغام کنی. php مثل جاوا اسکرپت نیست که توی هر echo مجبور باشی فقط یه سطر کد داشته باشی.
یه راه دیگه هم هست برای اینکه کمتر از echo استفاده کنی. میتونی متنی رو که میخوای اکو کنی بزاری خارج از تگها php. چون اینجوری بدون پردازش متن اونو برای کاربر چاپ میکنه. این روش مخصوصاً برای زمانی که متن طولانی هست بهینه تر از اکو و یا پرینت هست.
در ضمن کوئری گرفتن از دیتابیست هم یه کم مورد داره. میشه راه حل بهینه تری هم براش استفاده کرد.
من کدها رو بررسی میکنم نتیجشو میگم
output از این تابلو تر میشه!؟ خط 3 رو تو فایل in.php نگاه کن.
داری تو روز روشن قبل از header متن اکو میکنی مشخصه که کار نمیکنه!
ممنون از راهنماییتون درست شد .
منظورتونو متوجه نشدم میشه با یک مثال بیشتر توضیح بدیننقل قول:
ضمنآ چه راهی وجود داره که کاربر وقتی به یک صفحه لینک میکنه قبل از اینکه header بشه به جای دیگه چند ثانیه براش یک پیغام نمایش داده بشه .
ahmadi81 جان
شما اگر قصد نداری mySQL رو کامل یاد بگیری، خیال خودت رو راحت کن، هر فیلدی که تو my SQL تعریف می کنی، از نوع text بذارش
حالا با PHP هر جوری که دلت خواست بذارش تو دیتابیس و بعد بگیرش و همونجوری تحلیلش کن
[PHP]print "salamنقل قول:
منظورتونو متوجه نشدم میشه با یک مثال بیشتر توضیح بدین
chetor?
man khoobam";[/PHP]
یا از جاوا اسکریپت استفاده کن یا متانقل قول:
ضمنآ چه راهی وجود داره که کاربر وقتی به یک صفحه لینک میکنه قبل از اینکه header بشه به جای دیگه چند ثانیه براش یک پیغام نمایش داده بشه .
مثال متا:
[HTML]<meta http-equiv="Refresh" content="3; url=آدرس صفحه دومت">[/HTML]
مثال جاوا اسکریپت:
[HTML]<script language="javascript">
function go(){
window.location = "صفحه دوم";
}
settimeout(go(), 3000);
</script>[/HTML]