PDA

View Full Version : سوال: کمک برای ساختن یک فانکشن



betocheee
یک شنبه 20 مهر 1393, 16:04 عصر
سلام دوستان من تازه دارم پی اچ پی یاد میگیرم
الان میخوام یه فانکشن بسازم اموزش خاصی در مورد فانکشن ها ندیدم به خاطر همین نتونستم خوب موضوع رو درک کنم
فانکشنی که میخوام بسازم اینه

فانکشنی بسازیم که یه عدد بهش بدیم اونو با یه فرمول خاص که خودمون اختراعش میکنیم به رمز تبدیلش کنه و یه فانکشن دیگه بسازیم که اگه یه عدد رمز شده رو بهش بدیم کشف رمزش کنه

من خودم یکمی باهاش ور رفتم و اول اومدم یه فرم ساختم که عدد رو بگیره بعد اومدم یه متغییر برای اون عدد اختصاص دادم بعد اومدم توی فانکشن متغییر رو با چندتا عملیات ریاضی به رمز تبدیل کردم ولی متاسفانه وقتی میخوام نمایش بدم هیچ اتفاقی نمی افته
اگه کسی بلده و کمک بکنه خیلی ممنون میشم
با تشکر

hamedarian2009
یک شنبه 20 مهر 1393, 16:19 عصر
این میتونه یه مثال خیلی ساده باشه شما کافیه اون فرمول خود ساختت یا همون encoding و decoding رو داخل این توابع بزاری


function Encode($data){
return base64_encode($data);
}

function Decode($data){
return base64_decode($data);
}

//****USAGE******************
$input = 'test';
$enc= Encode($input);
echo $enc.'<br />'.PHP_EOL;

$dec= Decode($enc);
echo $dec.'<br />'.PHP_EOL;

thacker
یک شنبه 20 مهر 1393, 16:20 عصر
function encrypt_decrypt($action, $string)
{
$output = false;

$key = 'My strong random secret key';

$iv = md5(md5($key));

if( $action == 'encrypt' ) {
$output = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, $iv);
$output = base64_encode($output);
}
else if( $action == 'decrypt' ){
$output = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, $iv);
$output = rtrim($output, "");
}
return $output;
}

نحوه استفاده :


echo encrypt_decrypt(encrypt, '123'); // Z6/hvuCcIAuNTqMuj0dHgNZTmK7s5xtwNkALjZeG+FQ= : خروجی
echo encrypt_decrypt(decrypt, 'Z6/hvuCcIAuNTqMuj0dHgNZTmK7s5xtwNkALjZeG+FQ='); // 123 : خروجی

betocheee
یک شنبه 20 مهر 1393, 16:42 عصر
ممنون دوستان عزیز
اقا من تازه سه روزه دارم یاد میگیرم پی اچ پی رو کدهایی که شما دادین رو نتونستم بفهمم من با توجه به چیزهایی که یاد گرفتم کد زیر رو نوشتم ولی هیچ نتیجه ای نداره چجوری باید کدهای شما رو به کد خودم اضافه کنم


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="fa">
</head>

<body>
<form method='POST' action='m8.php'>
عدد را وارد کنید <input type='number' name='adad' id='iadad'/><br/>
ارسال <input type='submit' value='ارسال'/><br/>
</form>

<?php
$x=2;
$a =$_POST["adad"];

function aaa() {
$c = $a * $x ;
echo "$c"; }

aaa();

?>

</body>
</html>


میشه یکم بیشتر توضیح بدین

betocheee
یک شنبه 20 مهر 1393, 17:05 عصر
کسی نیست کمک کنه

hamedarian2009
یک شنبه 20 مهر 1393, 17:13 عصر
به نظرم باید مطالعه بیشتر کنید و با ساختار زبان آشنا بشین خودتون متوجه میشین
به تابع پارامتر ورودی هم باید بدی و اینکه متغیر x که در بیرون تعریف کردی داخل تابع نمیشه استفاده کرد بلکه باید داخل تابع به صورت global تعریف کنی


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="fa">
</head>

<body>
<form method='POST' action=''>
عدد را وارد کنید <input type='number' name='adad' id='iadad'/>
ارسال <input type='submit' name="sub" value='ارسال'/>
</form>

<?php
function aaa($a) {
global $x;
$c = $a * $x ;
echo "$c";
}
if(isset($_POST['sub'])){
$x=2;
$a =$_POST["adad"];
aaa($a);
}

?>

</body>
</html>

aliphp1
یک شنبه 20 مهر 1393, 18:55 عصر
دوست عزیز اگر مشکل شما رو درست متوجه شده باشم اینه که :
شما فکر می کنید وقتی تابع رو اجرا کنید باید مقدار نهایی رو نشون بده درر صورتی که اینطور نیست
یا باید توی خود تابع از دستور echo استفاده کنید
و یا اینکه خروجی تابع رو بریزید توی کی متغییر بعد متغییر رو echo کنید

function myfunc(n)
{
a=2*f+5g. . . ..
echo a; }
و یا
function myfunc(n)
{
a=2*f+5g. . . ..
}
x=myfunc(a);
echo x;
و یا

aliphp1
یک شنبه 20 مهر 1393, 18:57 عصر
ضمنا شما بیشتر از حل مشکل به آموزش نیاز دارید