مشكل در استفاده از تابع confirm

omid_p30

Member
سلام به همگي.
من يه مشكلي برام پيش اومده. حتما ساده حل ميشه اما من چون خودم تا حالا java script كار نكردم
نتونستم درستش كنم. مشكل منم اينه كه من يه تمپليت فروم درست كردم با PHP براي پروژه خودم . حالا هر كسي ميتونه عضو بشه و بحث ايجاد كنه يا اينكه پاسخ هاي خودش رو ويرايش يا حذف كنه. حالا من ميخام وقتي كاربر روي دكمه حذف پاسخ كليك كرد يه هشدار براي اطمينان از حذف پاسخ نمايش داده بشه. مي دونم بايد از تابع confirm استفاده كنم ولي نمي دونم تو كجا و چه جوري استفاده كنم.
من اول تو قسمت head اين كد رو نوشتم
PHP:
<head>

<meta http-equiv="content-type" content="image/jpeg; charset=utf-8" />
<title>Enlight by Free Css Templates</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="default.css" rel="stylesheet" type="text/css" />
    <script language="JavaScript">
       function alertDelete(){
           if(confirm("Are you sure to delete this post? ")){
              return true;
           }
           else{
              return false;
           }
        }
    </script>

</head>
بعدش هم در ادامه براي delete يه عكس گذاشتم با يه لينك به اين شكل

PHP:
 <a onclick="alertDelete();" href=edit.php?p_id='.$p_id.'&type=del>
<img src="images/btndelete.png" alt="delete" "></a>
حالا وقتي رو دكمه delete كليك ميشه پيغم نمايش داده ميشه و وقتي دكمه cancel رو ميزنم باز هم پاسخ حذف ميشه. مشكلش كجاس؟
 
مشکل خاصی نداره.مشکل اینجاست که به onclick مقدار دادی.اینو امتحان کن :
HTML:
<head>
 
<meta http-equiv="content-type" content="image/jpeg; charset=utf-8" />
<title>Enlight by Free Css Templates</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="default.css" rel="stylesheet" type="text/css" />
    <script language="JavaScript">
       function alertDelete(){
           if(confirm("Are you sure to delete this post? ")){
document.location.href="edit.php?p_id='.$p_id.'&type=del";           }
           else{
              return false;
           }
        }
    </script>
 
</head>



HTML:
 <a href="alertDelete();">
<img src="images/btndelete.png" alt="delete" "></a>

راستی این $p_id رو نباید echo کنی؟
 

omid_p30

Member
سلام ممنون از پاسخت. ولي مشكل حل نشد.
وقتي روي دكمه حذف كليك ميكنم با اين كدي كه شما نوشتي ميره به اين لينك
http://127.0.0.1/frm/alertDelete
كه معقول هم هست چون شما كد زير رو نوشتي.
PHP:
<a href="alertDelete();">

راستيecho رو نوشتم ولي چند تا خط بالاتره. اينجا تو كدي كه گذاشتم نيست.

حالا چيكار كنم. كلا نميشه يه راه ديگه به جز كد خودم پيشنهاد بدين؟
 
خیلی عذز می خوام.من نتنوستم خودم چک کنم.مشکلش اینجاست:
HTML:
 <a href="javascript:alertDelete();">
<img src="images/btndelete.png" alt="delete" ></a>
کدی که نوشتی چیز خوبیه.کجاش فکر میکنی باسایتت نمیخونه تا اونجارو عوض کنیم.(بابا این حرف نداره.گوگل هم موقعی که میخوای ایمیلت رو حذف کنی با همین confirm سوال می پرسه!)ولی بهر حال اگه باز مشکلی بود همین جا مطرح کن.باز هم ببخشید.
 

omid_p30

Member
سلام
ممنون از پاسخت. بالاخره درستش كردم. البته بازم تو كدهام چندتا تغيير دادم تا درست شد. كد جاوا اسكريپت اين شد.
PHP:
    <script language="JavaScript">
       function alertDelete(p_id){
           if(confirm("Are you sure to delete this post? ")){
document.location.href="edit.php?p_id="+ p_id +"&type=del";           }
        }
    </script>
كد HTML هم اينجوري شد.

PHP:
  <a href="javascript:alertDelete('.$p_id.');">
<img src="images/btndelete.png" alt="delete" ></a>
اول اينكه تو كد جاوا اسكريپت قسمت else رو حذف كردم و دوم اينكه تو كد HTML شماره پست هم به صورت آرگومان براي تابع alertDelete فرستادم. الان درست كار مي كنه فقط به نظرم يه مشكل داره. اونم اينكه كاربر نهايي وقتي موس رو ميبره روي دكمه delete تو قسمت نوار وضعيت مرورگر ، اون مقدار آرگومان ارسالي كه شماره پست باشه ، نشون داده ميشه. اين از نظر امنيتي مشكلي نداره؟
 
از نظر من که مشکلی نداره.چون اون یه شماره است که کاربر نمیتونه ارسالش کنه و فقط خودت داری باهاش کار میکنی.اگه قرار بود کاربر اون شماره رو وارد کنه اون وقت باید احتمال sql injection رو در نظر میگرفتی.ولی الان کاربر فقط یه شماره به عنوان آرگومان میبینه.اگه خودت بودی به نظرت با این شماره میشه چه کارایی کرد؟
 

omid_p30

Member
آره اينكه شما ميگي درسته . كاربر فقط يه عدد مي بينه. به هرحال باز هم ممنون . خيلي كمك كردي.
 
خواهش می کنم.ولی با این وجود به خاطر اینکه دفعه اول تست نکردم شرمنده.
یا علی
 

جدیدترین ارسال ها

بالا