PDA

View Full Version : سوال: وقتی دو button داریم جطور مقدار متغیر را نگه داریم



n_a602
پنج شنبه 07 مهر 1390, 14:26 عصر
با عرض سلام به دوستان



صفحه طراحی کردم که یک عدد رندوم را ایجاد و در یک متغیر میریزم عددرندوم بعد ست شدن اولین button ایجاد میشودبعد بازارد کردن یک عدددلخواه درinputها میخواهم با زدن button دوم با متغیررندوم مقایسه شود مشکل من دراین جااست که بعد زدن button دوم متغیر رندوم هیچ مقداری ندارد و مقداری ندارد جطور میتوان ان را نگه دارم





while (isset($_GET['start']))
{
global $str;
$str = rand(9999,99999);
$f =wordwrap($str, 1, '-',true);
$g=explode('-',$f);
for($i=0;$i<5;$i++)
{$num=$g[$i];

for($j=$i+1;$j<5;$j++)
{
if($num==$g[$j])
{

exit;
}

}
}
echo $str;
}
if(isset($_GET['level']))
{

echo $str; //inja null ast va chizi nadarad

for ($i=1;$i<=5;$i++)
{
$temp[$i]=$_GET[$i];
}
print_r($temp);

for ($i=1;$i<=5;$i++)
{
$n=$g[$i];
for($j=$i+1;$j<5;$j++)
{
if($n==$temp[$j])
{

echo 'yes';
}
}

}

}

mtchabok
پنج شنبه 07 مهر 1390, 15:01 عصر
سلام
می تونید از سشن استفاده کنید .
در ابتدای کدتون session_start() رو قرار بدین .
و در قسمتیکه عدد رندوم رو ایجاد میکنید یه کپی هم در سشن قرار بدید مثلا : $_SESSION['rand'] = $random;
و در زمان مقایسه عدد وارد شده در input رو با $_SESSION['rand'] مقایسه کنید .

یه خوره کدی که نوشتید مبهمه اگه یه توضیحی بدید . کد رو کامل میکنم و در اینجا میزارم .

n_a602
پنج شنبه 07 مهر 1390, 15:46 عصر
از کمک شما تا اینجا خیلی ممنونم
من میخواستم بازی فکروبکروبنویسم که توی یک صفحه دکمه start گداشتم که کاربر بعدزدن دکمه عدد رندوم ایجاد میشود این درحالی که بازی پنج مرحله داره وواسه هرمرحله یک button ,پنجtextboxوجودداره مشکل من اینه که بعد اینکه کاربر دکمه start میزنه عدد پنج رقمی که هیج رقم تکرار شونده نداره تولید میشه وبعد توی یک ارایه قرارش دادم که توی مرحله بعد استفاده کنم که این کدش تا اینجا درست کارمیکنه وعدد رو هم اکو کردم که مطمین شم درسته
while (isset($_GET['start']))

{
global $str;
$str = rand(9999,99999);
$f =wordwrap($str, 1, '-',true);
$g=explode('-',$f);
for($i=0;$i<5;$i++)
{$num=$g[$i];

for($j=$i+1;$j<5;$j++)
{
if($num==$g[$j])
{

exit;
}

}
}
echo $str;

بعد در مرحله بعدبا زدن دکمه level1 ورودی ها رو در یک ارایه قرار می دم اینم کدش
if(isset($_GET['level']))
{

for ($i=1;$i<=5;$i++)
{
$temp[$i]=$_GET[$i];
}

و بعد میخوام با اریه عدد تصادفی مقایسه کنم ولی توی نه متغیر تصادفیم مقداری هست نه توی ارایه؟جیکارکنم میشه راهنمایی منو بکنید خیلی متشکرمیشم

mtchabok
پنج شنبه 07 مهر 1390, 16:34 عصر
این کد رو امتحان کن ...

session_start();
if(isset($_GET['start'])){
$_SESSION['rand'] = array();
for($i=0;$i<5;$i++){
$rand = rand(0,9);
if(($i===0 and $rand===0) or in_array($rand,$_SESSION['rand'])) $i--;
else $_SESSION['rand'][$i] = $rand;
}
}


if(isset($_GET['level'])){
for ($i=1;$i<=5;$i++){
$temp[$i]=$_GET[$i];
}

if($_SESSION['rand'] == $temp) echo 'equal';
else echo 'not equal';
}

در ضمن name موجود در input های خودت رو باید بزاری واسم تا بتونم کد چک کردن اعداد رو واست بنویسم . اصلا یه کاری بکن کد html فرمت رو در اینجا قرار بده . به صورت کلی ویرایش انجام بدم ...

n_a602
پنج شنبه 07 مهر 1390, 23:04 عصر
با تشکرازراهنمایی شما از کمکتون تا اینجا برنامه
میدونید دراین برنامه باید یک عدد پنج رقمی راتصادفا با شروع برنامه انتخاب میشه و بعد در بازدن buttonمربوط به level1 عددی که ماواردکردیمبااینعددمقایسه می شود اگرهرکدام از ارقام عددی که ماحدس زدیم با عددتصادفی برابرباشدعدد دران input قرمزمیشودواگررقم برابر باشد و یکان ان درست نباشد رقم سبزمیشود
برای مثال عدد تصادفی 35789
عدد حدسی ما 36071است
خروجی برنامه عدد 3درinputکه نوشتیم جون یکان درست است قرمز میشودوعدد هفت باید سبزشود.
تا اینجا خودم با کمک شما نوشتم حالا قسمت جاپ عدد در ان input نمیدونم چیکارکنم چطور بگمبره توی input قرمزیاسبز یا سیاه بنا به وضعیتش چاب کنه ...........

<body>
<form id="form1" name="form1" method="get" action="">
<p>&nbsp;</p>
<p>
<input type="submit" name="start" id="button" value="Start" />
<p>
<label>:
<input type="text" name="1" id="1" />
</label>
<label>
<input type="text" name="2" id="2" />
</label>
<label>
<input type="text" name="3" id="3" />
</label>
<label>
<input type="text" name="4" id="4" />
</label>
<label>
<input type="text" name="5" id="5" />
<br />
nokteh:dar har input faghat yek ragham vard konid<br />
<br />
</label>
<input type="submit" name="level" id="button2" value="level1" />
<?php
session_start();
if(isset($_GET['start']))
{
$_SESSION['rand'] = array();
$rand = rand(9999,99999);
$f =wordwrap($rand, 1, '-',true);
$g=explode('-',$f);
for ($i=0;$i<=5;$i++)
{
$num=$g[$i];
for($j=$i+1;$j<=5;$j++)
{
if($num==$g[$j])

exit;

else
$_SESSION['rand'][$i]=$g[$i];
}
}
print_r ($_SESSION['rand']);
}
echo $rand;
if(isset($_GET['level']))
{
for ($i=1;$i<=5;$i++)
{
$temp[$i-1]=$_GET[$i];

}
print_r($temp);
for ($i=0;$i<5;$i++)
{
$n=$_SESSION['rand'][$i];

for($j=1;$j<5;$j++)
{
if($n==$temp[$j-1])
{
if($i==$j-1)
echo '<input type="text" name="$i" value="'.$_SESSION['rand'][$i].'" />';
}
}
}
}
?>
</form>
</body>
</html>

mtchabok
جمعه 08 مهر 1390, 22:29 عصر
عزیز
اول اینکه session start رو باید در اول فایلت بنویسی چونکه این تابع یه هدر برای کاربر می فرسته و باید قبل از هر خروجی از سمت سرور نوشته بشه . پس در ابتدای فایلت اینو بنویس :

<?php session_start(); ?>
خوب برای تغییر رنگ هر input می تونی از جاوا اسکریپت استفاده کنی :
document.getElementById("1").style.color = "#FF0000";
اونجایی که "1" نوشته شده میتونی id هر input رو وارد کنی و تغییر رنگ بدی .

n_a602
جمعه 08 مهر 1390, 23:08 عصر
عزیز
اول اینکه session start رو باید در اول فایلت بنویسی چونکه این تابع یه هدر برای کاربر می فرسته و باید قبل از هر خروجی از سمت سرور نوشته بشه . پس در ابتدای فایلت اینو بنویس :

<?php session_start(); ?>
خوب برای تغییر رنگ هر input می تونی از جاوا اسکریپت استفاده کنی :
document.getElementById("1").style.color = "#FF0000";
اونجایی که "1" نوشته شده میتونی id هر input رو وارد کنی و تغییر رنگ بدی .


چطوری اخه من توی کد phpیخوام بررسی کنم که ایا input با کدوم عضو ارایه از عدد رندوم برابر خوب اگه برابر بود اونوقت رنگ فونت تغییر کنه

mtchabok
جمعه 08 مهر 1390, 23:24 عصر
ببخشید ظاهرا به دلیل سرعت پائینم نمی تونم که پیغام شخصیم رو جواب بدم .
یه چنین کدی رو برای هر input بنویس


<input type="text" name="4" id="4" value="<?php if (isset($_GET['4'])) echo $_GET['4']; ?>" class="<?php if (isset($_GET['4']) and $_GET['4']==$_SESSION['rand'][3]) echo 'error1'; else echo 'error2'; ?>" />