PDA

View Full Version : مشكل در اجراي كوئري



mirzajavad
چهارشنبه 24 شهریور 1389, 12:30 عصر
سلام
يك كوئري نوشتم ولي مقداري برگشتي صفر هستش يعني هيچي بر نميگردونه



$sql=mysql_query("SELECT * FROM `sendlink` where id='$id' AND username='$username'") or die(mysql_error());
while($link=mysql_fetch_array($sql));
خوب من تا قبل از اجراي كوئري مقادير username و id رو چاپ كردم خروجي درست ميده ولي نميدونم چيه كه كوئري اجرا نميشه اخطاري هم نداشت آيا چيزي كم داره ؟

در ضمن اين جدول و فيلدهاش هم به همين اسم دقيق موجودن چون تا الان 100 بار چكش كردم ولي نميشه پيشنهاد شما چيه ؟

binyaft
چهارشنبه 24 شهریور 1389, 12:42 عصر
شاید مقادیر $id و $username با رکورد ها برابر نیست

mirzajavad
چهارشنبه 24 شهریور 1389, 12:51 عصر
برابر هستش
چون كاربر اعتبار سنجي ميشه و وارد اين بخش ميشه به علاوه اينها رو دستي هم از طريق phpmyadmin چك كردم

sama01
چهارشنبه 24 شهریور 1389, 13:55 عصر
این کوئری رو echo کن ببین واقعا همون چیزی است انتظارش رو داری یا نه.
ممکنه یه جای کار اشکال داشته باشه.

mirzajavad
چهارشنبه 24 شهریور 1389, 14:07 عصر
منظورتون رو از echo نفهميدم
اگر echo($sql); منظورتون هستش خروجي اينه Resource id #7
من با اين تابع امتحان كردم print_r() ولي خروجي نداشت
اگر لازم هستش تا ساختار جدول رو هم بذارم

nama62
چهارشنبه 24 شهریور 1389, 14:18 عصر
دوست عزیز جدول رو هم بذار تا بهتر بتونم راهنمایی کنم.
یه پیشنهاد هم دارم البته چون دقیق نمیدونم که کل برنامه چیه شاید دقیق نباشه.
به جای تابع mysql_fetch_array
از این تابع استفاده کن: mysql_fetch_assoc

mirzajavad
چهارشنبه 24 شهریور 1389, 15:08 عصر
اين تابع هم جواب نداد
اينم جدول



CREATE TABLE IF NOT EXISTS `sendlink` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`link_title` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`link_comment` text COLLATE utf8_persian_ci,
`link_url` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`link_cat` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`email` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`keyword` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`username` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=36 ;


البته اينو من با phpmyadmin ايجاد كردم چون تازه كاريم شايد اشتباهاتي هم داشتم

xoogle.ir
چهارشنبه 24 شهریور 1389, 15:26 عصر
این کد رو اجرا کن ببین خروجی چیه ؟
ببین همون چیزی که میخای رو انتخاب کردی ؟



$sql="SELECT * FROM `sendlink` where id='$id' AND username='$username'";
echo $sql;

mirzajavad
چهارشنبه 24 شهریور 1389, 15:35 عصر
نتيجه اين بود


SELECT * FROM `sendlink` where id='33' AND username='texas'

من ميخواهم يك چيزي رو حذف كنم ابتدا كاربر لوگين كرده بعدش رفته و ميخواد يك چيزي رو حذف كنه
من اومدم آيدي لينك رو به همراه نام كاربري فرستادم به يك صفحه به نام edit.php تا بتونم با اون تابع به صورت ارايه مقادير سطر خواسته شده رو بگيرم كه بتونم ويرايش كنم
قبل از كوئري تست كردم نام كاربري و آيدي درست فرستاده شده بود ولي اينجا كوئري خالي هستش

xoogle.ir
چهارشنبه 24 شهریور 1389, 17:12 عصر
شاید این لینک متعلق به این کاربر نیست. بعدش شما وقتی id رو داری دیگه نیازی به username نداری که ....

کدت درسته مشکل از جای دیگه باید باشه

mirzajavad
چهارشنبه 24 شهریور 1389, 19:39 عصر
پس با اين وجود مشكلي در حلقه while و تابع mysql_fetch_array() هستش
آخه تا قبل از اين اطلاعات درست دريافت ميشه
به نظر شما چطوري بايد اين عيب رو پيدا كنم ؟

funpatogh
چهارشنبه 24 شهریور 1389, 20:55 عصر
خوب مطمئن هستی که این username و id که مقدارش 33 هست رو توی بانکت داری؟
وقتی and گزاشتی باید حتما هردوش باشه تا کوئریت چیزی رو برگردونه

mirzajavad
چهارشنبه 24 شهریور 1389, 21:01 عصر
بله
چون من فقط يك كاربر ثبت شده دارم
بعدش رفتم چك كردم درست بود
بدون نام كاربري فقط با آيدي هم چك كردم بازم مشكل حل نشد

funpatogh
چهارشنبه 24 شهریور 1389, 22:13 عصر
بنده با همین دیتابیس شما و یک رکورد که id=33 و username=texas باشه ایجاد کردم و کوئری زدم نتیجه هم داد نمیدونم ایراد شما چیه

من همین دیتابیس و کد های خودم رو برات میزارم ببین چیو اشتباه انجام میدی
PHP


<?php
$link=mysql_connect("localhost:3306","root","")or die(mysql_error());
mysql_select_db("test");
mysql_query("SET NAMES UTF8");
mysql_set_charset("utf8");
$result=mysql_query("SELECT * FROM `sendlink` where `id`='33' AND `username`='texas' ")or die(mysql_error());
while($row=mysql_fetch_assoc($result)){
echo $row['id']."- ".$row['link_title']."<br>";
}
?>



دیتابیس:


DROP TABLE IF EXISTS `sendlink`;
CREATE TABLE `sendlink` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`link_title` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`link_comment` text COLLATE utf8_persian_ci,
`link_url` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`link_cat` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`email` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`keyword` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
`username` varchar(255) COLLATE utf8_persian_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=36 DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci;


INSERT INTO `sendlink` VALUES ('33', 'test_title', 'test_comment', 'test_url', 'test_cat', 'test_email', 'test,test,test', 'texas');

mirzajavad
پنج شنبه 25 شهریور 1389, 09:46 صبح
واقعآ ممنون
راستش كد شما باعث د مشكل رو پيدا كنم
البته خيلي ناشي عمل كرده بودم
كوئري مشكلي نداشت فقط حلقه رو متوقف كرده بودم

من اينجوري نوشته بودم


while($link=mysql_fetch_array($sql));
$MyTpl->assign(array(
'link_title'=>$link['link_title'],
'link_url'=>$link['link_url'],
));

ولي كد صحيح


$sql=mysql_query("SELECT * FROM `sendlink` where id='$id' AND username='$username' LIMIT 1") or die(mysql_error());
while($link=mysql_fetch_array($sql))}
$MyTpl->assign(array(
'link_title'=>$link['link_title'],
'link_url'=>$link['link_url'],
));
}

سه روز حيرون يان بخش بودم كه فقط با برداشتن يك ; حل ميشد
البته اين جربه اي شد شايد اگر يك بار كد رو پاك ميكردم و مينوشتم صحيح مينوشتم
ولي خدا رو شكر مشكل حل شد

بازم تشكر از كليه دوستان برنامه نويس كه منو همراهي كردن

mirzajavad
پنج شنبه 25 شهریور 1389, 15:40 عصر
اينجا هم يك مشكل دارم
اين كوئري رو نوشتم ولي اجرا نميشه
راستش براي اولين بار هستش كه كوئري UPDATE مينويسم



$link_title=$_POST['link_title'];
$link_url=$_POST['link_url'];
if(isset($_POST['send'])){
$update_sql=mysql_query("UPDATE `sendlink` SET `link_title`='$link_title',`link_url`='$link_url' WHERE id='$id' LIMIT 1");
}

binyaft
پنج شنبه 25 شهریور 1389, 16:50 عصر
http://www.w3schools.com/sql/sql_update.asp
مگه ما وقتی که update میکنیم به limit هم نیاز داریم؟؟؟

mirzajavad
پنج شنبه 25 شهریور 1389, 23:31 عصر
راستش يك نمونه كد در جايي ديدم limit رو هم گذاشته بود
خوب مگر براي اين نيست محدود بشه خوب من اين كار منظورم بود

funpatogh
جمعه 26 شهریور 1389, 11:53 صبح
http://www.w3schools.com/sql/sql_update.asp
مگه ما وقتی که update میکنیم به limit هم نیاز داریم؟؟؟
گاهی اوقات میخواهیم از جایی که شرط برقرار هست مثلا شامل 20 تا رکورد میشه اما ما فقط می خواهیم 3 تای اول یا 5 تای آخر رو تغییر بدهیم از limit هم میشه استفاده کرد
--------------------

اينجا هم يك مشكل دارم
اين كوئري رو نوشتم ولي اجرا نميشه
راستش براي اولين بار هستش كه كوئري UPDATE مينويسم



$link_title=$_POST['link_title'];
$link_url=$_POST['link_url'];
if(isset($_POST['send'])){
$update_sql=mysql_query("UPDATE `sendlink` SET `link_title`='$link_title',`link_url`='$link_url' WHERE id='$id' LIMIT 1");
}

این LIMIT 1 شما باعث میشه که فقط رکورد اول رو مورد تغییر قرار بدهد

mirzajavad
جمعه 26 شهریور 1389, 12:00 عصر
من LIMIT رو بعد از حرف دوستمون binyaft (http://barnamenevis.org/forum/member.php?u=106845) برداشتم ولي بازم مشكل حل نشد
راستش اين كل صفحه اديت من هستش البته بدون در نظر گرفتن جوانب امنيتي
ولي ويرايش صورت نميگيره


<?php
session_start();
include('config/config.php');
include('config/template.php');
$MyTpl= new Template();
$MyTpl -> load_file( 'temp/edit.htm' );
if(isset($_SESSION['username']))
{
$username=$_SESSION['username'];
}
$id=$_GET['id'];
$sql=mysql_query("SELECT * FROM `sendlink` where id='$id' AND username='$username' LIMIT 1") or die(mysql_error());
while($link=mysql_fetch_array($sql)){
$MyTpl->assign(array(
'link_title'=>$link['link_title'],
'link_url'=>$link['link_url'],
));
}

$link_title=$_POST['link_title'];
$link_url=$_POST['link_url'];
if(isset($_POST['send'])){
$update_sql=mysql_query("UPDATE `sendlink` SET `link_title`='$link_title',`link_url`='$link_url' WHERE id='$id'");
}
if($update_sql){
$MyTpl -> assign( 'msg',1);
}
$MyTpl -> print_template();
?>

funpatogh
جمعه 26 شهریور 1389, 12:17 عصر
عزیز کوئریت رو خودت دستی مقدار بده چک کن ببین کجاش مشکل داره
مثلا کوئریت رو اینجوری کن ببین دکمه رو میزنی چیزی آپدیت میشه id رو من به فرض اینکه یک رکورد با این id داریم 1 زدم شما هر id که داری بده


UPDATE `sendlink` SET `link_title`='test',`link_url`='test' WHERE id='1'"


بعد راه حل دیگه اینکه


$link_title=$_POST['link_title'];
$link_url=$_POST['link_url'];

اینها رو بعد از اینکه پست شدن حتما echo کن ببین چیزی پست میشوند یا نه

mirzajavad
جمعه 26 شهریور 1389, 12:34 عصر
ورودي ها كه درست هستش
دستي امتحان كردم درست شد يعني آيدي لينك رو دستي گذاشتم
ولي مشكل اينجاست كه قبلش آيدي رو پرينت كردم بازم آيدي رو داد
يعني فقط زماني آيدي درون كوئري استفاده ميشه كار نمكينه

funpatogh
جمعه 26 شهریور 1389, 13:07 عصر
پس الگوریتمت مشکل داره و راهی که استفاده کردی اشتباه است

mirzajavad
جمعه 26 شهریور 1389, 13:23 عصر
ميشه منو راهنمايي كنيد
من خيلي وقته php رو شروع كردم ولي هيچ وقت جدي دنبالش نكردم ولي اين براي اولين بار هستش كه ميخواهم يك برنامه كاربري خوب بنويسم و با قوانين و استاندارهاي برنامه نويسي آشنايي ندارم و شايد اكثر كدهايي كه مينويسم مشكل دارم
البته با كمك دوستان مشكلات قبلي رو برطرف كردم و الانم رسيدم به آپديت جدول كه اين مشكل رو دارم

funpatogh
جمعه 26 شهریور 1389, 14:11 عصر
توی فرمت یک فیلد hidden بزار به اسم id و value را هم

<?php echo $_GET['id'];?>
بزار و بعد که پست میشه آخرش رواینجوری بنویس ببین حل میشه


if(isset($_POST['send'])){
$link_title=$_POST['link_title'];
$link_url=$_POST['link_url'];
$id=$_POST['id'] ;
$update_sql=mysql_query("UPDATE `sendlink` SET `link_title`='$link_title',`link_url`='$link_url' WHERE id='$id'");
}
if($update_sql){
$MyTpl -> assign( 'msg',1);
}
$MyTpl -> print_template();

mirzajavad
جمعه 26 شهریور 1389, 15:18 عصر
من كار شما را با روش ديگري انجام دادم مشكل حل شد
چون از كلاس تمپلت استفاده ميكردم از كوئري و حلقه قبل كه براي دريافت مشخصات لينك بود استفاده كردم
يعني در حلقه قبلي اومدم آيدي رو هم دريافت كردم و با استفاده از كلاس تمپلت از شرط آيدي استفاده كردم و با اين روش ايدي رو هم همراه با فرم ارسال كردم به نظرم در اين روش ميشه ايدي رو هم به كاربر نشون داد ولي از خاصيت disabled استفاده كرد كه نتونه تغييري ايجاد كنه

آيا اين روشي رو كه شما گفتين استفاده كنم مشكلي ايجاد نمي كنه و استاندارد هستش ؟


$sql=mysql_query("SELECT * FROM `sendlink` where id='$id' AND username='$username' LIMIT 1") or die(mysql_error());
while($link=mysql_fetch_array($sql)){
$MyTpl->assign(array(
'link_title'=>$link['link_title'],
'link_url'=>$link['link_url'],
'id'=>$link['id'],
));
}
if(isset($_POST['send'])){
$link_title=$_POST['link_title'];
$link_url=$_POST['link_url'];
$id=$_POST['id'] ;
$update_sql=mysql_query("UPDATE `sendlink` SET `link_title`='$link_title',`link_url`='$link_url' WHERE id='$id'");
}

فقط مشكلي كه اينجا ميمونه اينه بعد از ويرايش لينك كاربر ميره به صفحه edit.php كه ديگه اينجا آيدي وجود نداره و درون باكسها تگ ها هم بهش نمايش داده ميشن براي جلوگيري از اين كار بايد چه كرد ؟
من از تابع header استفاده كردم ولي منتقل نميكنه يعني كار نميكنه
روش ديگر هم گفتم بيام از دوباره اطلاعات تغيير يافته رو بگيرم و درون input ها نشون بدم ولي نميدونم چرا خالي نشون ميده !
ايده آل ترين روش براي جلوگيري از اين مشكل چي هستش ؟

funpatogh
جمعه 26 شهریور 1389, 18:20 عصر
فقط مشكلي كه اينجا ميمونه اينه بعد از ويرايش لينك كاربر ميره به صفحه edit.php كه ديگه اينجا آيدي وجود نداره و درون باكسها تگ ها هم بهش نمايش داده ميشن براي جلوگيري از اين كار بايد چه كرد ؟
اینجا منظورت رو نفهمیدم
اگه مشکلت با header حل می شد میتونی از این استفاده کنی


<?php
echo "<script type='text/javascript'>window.location='edit.php'</script>" ;
?>

mirzajavad
شنبه 27 شهریور 1389, 01:03 صبح
يعني وقتي ويرايش رو ميزنم و مطالب داخل اينپوت ويرايش ميشه و اينپوت خالي شده و تگ ها درون آن به نمايش در مي آيد
راستش من هنوز مشكل قبلي رو به طور كامل حل نكردم و لي بايد بدونم مشكل از كجاست به كد زير دقت كنين

اونجاهايي كه پرينت كردم
در قسمت (1) آيدي مقدار داره
در قسمت (3) مقدار نداره
در قسمت (3) بازم داره


$id=$_GET['id'];
$sql=mysql_query("SELECT * FROM `sendlink` where id='$id' AND username='$username' LIMIT 1") or die(mysql_error());
while($link=mysql_fetch_array($sql)){
$MyTpl->assign(array(
'link_title'=>$link['link_title'],
'link_url'=>$link['link_url'],
'id'=>$link['id']
));
}
(1)print $id;
if(isset($_POST['send'])){
$link_title=$_POST['link_title'];
$link_url=$_POST['link_url'];
(2)print $id;
$update_sql=mysql_query("UPDATE `sendlink` SET `link_title`='$link_title',`link_url`='$link_url' WHERE `id`='$id'");
}
(3)print $id;
if($update_sql){
$MyTpl -> assign('msg',1);
}
$MyTpl -> print_template();


خوب اين چه معني ميتونه داشته باشه ؟

funpatogh
شنبه 27 شهریور 1389, 21:50 عصر
خوب 1 و 3 مقدار id رو از بالا که متغییر سراسری هست میخونه اما داخل بلوک if متغییر id که چاپ کردی
تا کلید send پست نشه اون پرینت کار نمیک نه که

mirzajavad
شنبه 27 شهریور 1389, 22:08 عصر
مرسي آره خودمم در مورد اين يك چيزي خونده بودم ولي يادم نبود
مرسي شايد من 20 تا انجمن معروف و بزرگ مطرح كردم و كسي درست جواب نداد
من اينطوري اون فيلد ايدي رو مخفي كردم روش صحيحي هستش ؟



<span style="display : none">
<input type="text" name="id" value="{id}"></span>

funpatogh
شنبه 27 شهریور 1389, 22:23 عصر
خوب ببین من دقیق نمیدونم فرمت به چه شکل هست و ...
اما مگه وقتی کلید send ارسال شد (دکمه فرمت رو زدی) باز هم id مقدار نمیگیره؟
درستش اینه که وقتی کلید سند رو زدی اونوقت id داخل if مقدار رو از بیرون if میگیره چون id متغییر سراسری هست
این مثال رو با 1.php ذخیره کن


<?php
$id=$_GET['id'];
if(isset($_POST['send'])){

echo $id."1<br>";
}

echo $id."2<br>" ;
?>
<form method=post>
name :<input type="text" name=user><br>
<input type="submit" name="send" value="send">
</form>

حالا به این شکل اجراش کن توی هاستت


1.php?id=10

نتیجه رو ببین
وقتی فرم ارسال نشده فقط حالت 2 مقدار چاپ میشه
اما وقتی فرم ارسال شد هم حالت 1 هم 2 مقدار id رو چاپ میکنه

mirzajavad
شنبه 27 شهریور 1389, 22:39 عصر
الان با روشي كه شما گفتين مشكل حل شده فقط مشكل من اينجاست
كه وقتي لينك ويرايش شد در اينوپت ها تگ ها نشون داده ميشه
البته من از روش زير



header('LOCATION: user.php');


استفاده كردم
ولي ميخواهم به كاربر پيغامي رو در همون صفحه ويرايش نشون بدم
اگر هم بخواهم از حلقه قبلي براي نماش اطلاعات استفاده كنم باز نميشه
چون به گفته خودتون اين چون داخل بلوك if قرار مي گيره نميتونه از متغيرهاي بيرون استفاده كنه
چه روش پيشنهاد ميدين ؟
از دوباره كوئري رو بنويسم ؟

funpatogh
شنبه 27 شهریور 1389, 23:01 عصر
چون به گفته خودتون اين چون داخل بلوك if قرار مي گيره نميتونه از متغيرهاي بيرون استفاده كنه

تا وقتی شرط if بر قرار نشه از متغییر بیرون نمی تونه استفاده کنه

توی input هات چرا باید تگ بگزاری؟
ببین مدلی که من خودم استفاده میکنم رو برات سمپل میگزارم استفاده کن
فرم من تماس با ما توی سایت هست که توش از Captcha هم استفاده کردم
فرم


<div class="Top"><div class="Text">ارتباط با ما</div></div>
<div class="Down"><div class="Text" id="Text" name="Text">
{Payam}<br/>
<form method="post" >
<input type="hidden" name="Form" value="ContactUs" >
<table style="border-collapse: collapse" width="590">
<tr height="25px">
<td width="20%" style="text-align: left; direction: rtl; padding-left:4px; padding-right:4px">نام :</td>
<td><input type="text" class="Input" name="Name" id="MdName" dir="rtl" size="30"></td>
</tr>
<tr height="25px">
<td width="20%" style="text-align: left; direction: rtl; padding-left:4px; padding-right:4px">ایمیل :</td>
<td><input type="text" class="Input" name="Email" id="MdEmail" dir="ltr" size="30"></td>
</tr>
<tr height="25px">
<td width="20%" style="text-align: left; direction: rtl; padding-left:4px; padding-right:4px">عنوان پیام :</td>
<td><input type="text" class="Input" name="Title" id="MdTitle" dir="rtl" size="30"></td>
</tr>
<tr height="25px">
<td width="20%" style="text-align: left; direction: rtl; padding-left:4px; padding-right:4px">موضوع پیام :</td>
<td><select class="Input" style="width:170px;height:20px;" size="1" name="Category">
<option value="تبليغات در سايت" selected>تبليغات در سايت</option>
<option value="تبليغات در گروه پاتوق سرگرمی">تبليغات در گروه پاتوق سرگرمی</option>
<option value="همکاري با سايت">همکاري با سايت</option>

</select></td>
</tr>
<tr>
<td width="20%" style="text-align: left; direction: rtl; padding-left:4px; padding-right:4px">متن پیام :</td>
<td><textarea name="Message" rows="3" cols="30" id="MdComment" style="height: 150px; width: 380px;" class="Input"></textarea></td>
</tr>
<tr height="25px">
<td width="20%" style="text-align: left; direction: rtl; padding-left:4px; padding-right:4px">کد امنیتی :</td>
<td><input type="text" class="Input" name="Captcha" id="MdTitle" dir="rtl" size="30"> <img src="{Url}/Captcha.php"></td>
</tr>
<tr>
<td colspan="2"><Center><input name="Submit" class="Button" value="ارسال" id="btnSubmit" style="width: 80px;" type="submit"></Center></td>
</tr>
</table>
</form>
</div></

این هم بخش پردازش فرم و تگ ها


<?php
function Contact($Form,$name,$email,$title,$category,$messa ge,$captcha,$seccode){
$msg="";
if(isset($Form)){
if(!empty($name) && !empty($email) && !empty($title) && ereg("([0-9a-z\.-_]+)@([0-9a-z\.-_]+)\.([0-9a-z]+)",$email) && !empty($category) && !empty($message) && !empty($captcha) && ($captcha==$seccode)) {
global $url;
$msg="<img src=".$url."/images/success.png> پیام شما ارسال شد ";
mysql_query("insert into `message_box` values(null,'".$_SERVER['REMOTE_ADDR']."','$name','$email','$title','$category','$message' ,UNIX_TIMESTAMP())")or die(mysql_error());
return $msg;
}else{
if(empty($name))
$msg.="لطفا نام خود را وارد کنید <br>";

if(empty($email)){
$msg.="لطفا ایمیل خود را وارد کنید<br>";
}else{
if(!ereg("([0-9a-z\.-_]+)@([0-9a-z\.-_]+)\.([0-9a-z]+)",$email))
$msg.="لطفا ایمیل معتبر وارد کنید <br>";
}

if(empty($title))
$msg.="لطفا عنوان پیام خود را وارد کنید<br>";

if(empty($category))
$msg.="لطفا موضوع پیام خود را وارد کنید<br>";

if(empty($message))
$msg.="لطفا متن پیام را وارد کنید<br>";

if(empty($captcha)){
$msg.="لطفا کد امنیتی را وارد کنید<br>";
}else{
if($captcha!=$seccode)
$msg.="کد امنیتی اشتباه است<br>";
}




return "<font color=red>$msg</font><br>";


}
} else
return $msg;
}

if(isset($_GET['Contact']) and !empty($_GET['Contact'])){
$MyTpl -> load_file("$temp/Contact.tpl");
$Payam=contact($_POST['Form'],$_POST['Name'],$_POST['Email'],$_POST['Title'],$_POST['Category'],$_POST['Message'],$_POST['Captcha'],$_SESSION['seccode']);
$MyTpl -> assign('Payam',$Payam);



}


?>

mirzajavad
یک شنبه 28 شهریور 1389, 00:09 صبح
هر چي كدها رو بررسي كردم چيزي ايدم نشد ولي بازم سعي ميكنم يك چيزايي ازش ياد بگيرم البته فكر كنم مشكل من چيز ديگري هستش
من ميخواهم توي صفحات php از كلمات فارسي و كد html استفاده نشه

براي مشكلم به عكس زير دقت كنين

http://0k.010.img98.com/out.php/i343784_untitled.JPG

اين حالت زماني پيش مي ياد كه ويرايش انجام شده
به نظرم بهترين روش اينه كه از دوباره اين دو فيلد با مقدار ويرايش شده پر بشن
ولي نميشه چون وقتي از كوئري و حلقه قبلي براي دريافت اطلاعات لينك و عنوان استفاده ميكنم درون اين باكسها خالي ميشه

DManavi
سه شنبه 30 شهریور 1389, 15:15 عصر
با سلام

1)اگر از درون یک تابع مقدار $id رو می خونید حتما قبلش باید از global $id استفاده کنید
2)سعی کنید از string concat استفاده کنید. برای وصل کردن 2 رشته به این صورت عمل کنید. این امن تره str1."CONST".str2
3)بعد از mysql_query بنویسید mysql_error($connection); ببینید ایراد از کجاست