SadraHkm
-
تعداد ارسالها
272 -
تاریخ عضویت
-
آخرین بازدید
-
روز های برد
2
نوشتهها ارسال شده توسط SadraHkm
-
-
با احترام
در دیتابیس collation ها را روی utf8_general_ci تنظیم کنید. علاوه بر اون ها برای انتقال داده ها با انکودینگ utf8 اول باید کوئری زیر را به دیتابیس ارسال کنید ( برای mysqli )
query("SET NAMES utf8");
-
در در 9/12/2019 at 21:34، Mohammad1 گفته است :
توقسمت html قرار دادم ولی فقط html روخوند jqueryرونخوند
با احترام
دوست عزیز باید فایل جی کوئری رو قبل از این اسکریپت لود کنید
-
با احترام
تکه کد زیر مثالی از اسکریپت مربوط به منو های اکاردئونی هست. در کنار HTML آن میتونید استفاده کنید: ( ابتدا فایل جی کوئری رو لود کنید )
<div class="accItem"> <div class="accTitle">عنوان شماره یک</div> <div class="accDesc">توضیحات اضافی</div> </div> <script> $('.accTitle').click(function () { $('.accDesc').slideUp(); if($(this).next('.accDesc').css('display') === 'none') { $(this).next('.accDesc').slideToggle(); } }); </script>
-
سلام دوستان امیدوارم حالتون خوب باشه
من داشتم تمرین میکردم که یه کتابخونه ساده بسازم. بعد به یه مشکلی برخوردم. من دو تا متد نوشتم. تو یکی از اونها، اون یکی رو صدا زدم. ولی کار نمیکنه و مقداری که برمیگردونه undefined هست.
میشه لطفا راهنمایی کنید که مشکلش چی هست. با تشکر فراوان
(function (window) { function mathLibrary() { this.plusNums = function (x, y) { return Number(x) + Number(y); }; this.subNums = function(x , y) { this.plusNums(x,-y); } } if(typeof sadra_ml === 'undefined'){ window.sadra_ml = new mathLibrary(); }else { console.log("There is name conflict"); } })(window);
-
سلام دوستان
امیدوارم حالتون خوب باشه
لطفا یه نگاهی به کد زیر بندازید
<p>Paragraph 1</p> <p>Paragraph 2</p> <p>Paragraph 3</p> <p>Paragraph 4</p> <button id="calcBtn">Calculate</button> <div id="result"></div> <script> $(window).ready(function () { $('#calcBtn').click(function (e) { $('p').each(function () { $(this).css('color','rgb('+ rand(0,255) +','+ rand(0,255) +','+ rand(0,255) +')'); $('#result').append($(this).html()); // ----------------- This Code : //$('#result').append($(this)); }) }); }) </script>
در اون قسمتی از کد که دارم محتوی کدهای پاراگراف رو به تگ div اضافه میکنم یه سوالی ذهن منو مشغول کرده.
اگر همین کدی که الان هست رو اجرا کنیم، جی کوئری هربار توی حلقه رنگ تگ اصلی رو تغییر میده و یه کپی از اون پاراگراف میگیره و اضافه میکنه به div.
ولی اگه اون تکه کدی که کامنت هست رو با اون خط جایگزین کنیم، میاد و هر بار کلا تگ پاراگراف رو برمیداره و اضافش میکنه به div. یعنی دیگه کپی ازش نمیگیره و دیگه تگ های p اون بالا باقی نمیموند.
میخواستم ببینم آیا من درست فهمیدم ؟ یا مشکلی توی کد هست که اینجوری اجرا میشه ؟!
باتشکر فراوان
-
در در 7/23/2019 at 09:51، Mobin گفته است :
کد اسکریپتتونو کامل بزارین
اینجوری مشخص نیست تابع onkeydown شما چی هست ایا return داخلش داره یا خیر<body onload="startGame()" onkeydown="return handleKey(event);"> <img src="img/mos.png" alt="" id="mosq"> <img src="img/spider.png" id="spider"> <script> function startGame() { var mosq = document.getElementById('mosq'); var spider = document.getElementById('spider'); mosq.style.top = rand(0, window.innerHeight - 50) + "px"; mosq.style.left = rand(0, window.innerWidth - 50) + "px"; spider.style.top = rand(0, window.innerHeight - 50) + "px"; spider.style.left = rand(0, window.innerWidth - 50) + "px"; } function handleKey(e) { var code = e.keyCode; if (code == 38) { moveSpider('up'); } else if (code == 39) { moveSpider('right'); } else if (code == 40) { moveSpider('down'); } else if (code == 37) { moveSpider('left'); } if(youWin()){ alert("You Win The Game ... !"); location.reload(); } } function moveSpider(str) { var spider = document.getElementById('spider'); var num = 10; switch (str) { case 'up': spider.style.top = spider.offsetTop - num + "px"; if(spider.offsetTop < 0){ spider.style.top = window.innerHeight + "px"; } break; case 'right': spider.style.left = spider.offsetLeft + num + "px"; if(spider.offsetLeft > innerWidth){ spider.style.left = '0px'; } break; case 'left': spider.style.left = spider.offsetLeft - num + "px"; if(spider.offsetLeft < 0){ spider.style.left = innerWidth + 'px'; } break; case 'down': spider.style.top = spider.offsetTop + num + "px"; if(spider.offsetTop > window.innerHeight){ spider.style.top = "0px"; } break; } } function youWin(){ var mosq = document.getElementById('mosq'); var spider = document.getElementById('spider'); if(Math.abs(spider.offsetTop - mosq.offsetTop) < 20 && Math.abs(spider.offsetLeft - mosq.offsetLeft) < 20){ return true; } return false; } </script>
-
با احترام
میتونید از لینک زیر کمک بگیرید
-
سلام دوستان امیدوارم حالتون خوب باشه
میخواستم بدونم در تکه کد زیر :
<body onload="startGame();" onkeydown="return handleKeys(event);"> <script> ... if (youWin()) { alert("You Win !"); location.reload(); } } </script>
چرا در رویداد onkeydown از return استفاده شده؟ توی اینترنت جستجو کردم ولی درست نفهمیدم میشه لطفا راهنمایی کنید
با تشکر فراوان
-
سلام
میتونید از کد زیر الگو بگیرید و کدتون رو بر اساس این بنویسید. اگر خواستید کدتون رو قرار بدید تا روی اون درست کنم
<div id="boxId"></div> <script> window.addEventListener('scroll',setFix); function setFix(){ if(document.documentElement.scrollTop > 30){ document.getElementById('boxId').style.position = 'fixed'; } } </script>
- 1
-
سلام دوستان
برای لود کردن فایل های جاوااسکریپت میتونیم اسکریپت رو در تگ head یا قبل از تگ /body بذاریم. وقتی که در تگ head میذاریم، قبل از اینکه محتوای صفحه خونده بشن، این فایل لود میشه. ولی ایا وقتی در اخر صفحه ( قبل از /body ) هم گذاشته میشه، قبل از خونده شدن محتوای صفحه این فایل لود میشه یا بعدش یا همزمان باهاش ؟!
بعد سوال دیگه اینکه اگه ما فایل رو در اخر سندمون لود کنیم، چه فرقی میکنه با اینکه از attribute defer استفاده کنیم ؟ این attribute که دقیقا همون کار رو انجام میده !ممنون میشم کمی توضیح بدید
باتشکر
-
در 2 ساعت قبل، mehran-b گفته است :
سلام @SadraHkm
مورد اول که خوب یک کلاسه که با کلمه new اومدیم یه آبجکت (شی) از روی کلاس ساختیم.
مورد دوم خود آبجکت (شی) رو ریختیم توی متغییر mySon.
ارتباط مورد اول و مورد دوم اینه که مورد دوم حاصل ساخت آبجکت (شی) از روی یک کلاس هست.
درسته. الان در کد دوم، از چه کلاسی داریم شئ میسازیم دقیقا ؟
-
سلام دوستان
من شئ گرایی رو توی php کار کردم. الان دارم جاوا اسکریپت یاد میگیرم. توی بحث شئ گرایی توی این زبان وقتی میخوایم یک کلاس و شئ بسازیم بصورت زیر عمل میکنیم:
//Creating Class function myClass(){ this.name = "reza"; this.sleep = function (){ document.write("Go Sleep !"); } } //Creating Object of myClass var person1 = new myClass(); person1.sleep(); // Go Sleep!
بعد من توی آموزشی که میبینم، دیدم این ساختار زیر رو شئ صدا میکنه و میگه با کد زیر هم میتونیم یک شئ بسازیم:
var mySon = {firstName:"Ali", age: 12}
این الان یک شئ عه یا یک کلاس ؟ من فکر میکنم این یک کلاس باشه. چون برای ساخت شئ باید از روی یک کلاس شئ بسازیم و از کلمه new استفاده کنیم...
اگر شئ هست، از روی چه کلاسی داره شئ میسازه ؟
ممنون میشم کمی توضیح بدید
-
در 2 ساعت قبل، mehran-b گفته است :
با تشکر فراوان
حل شد
-
سلام دوستان
من این کد رو آزمایشی نوشتم .
<?php function get_webpage($url) { $options = array( CURLOPT_CUSTOMREQUEST => "GET", //set request type post or get CURLOPT_POST => false, //set to GET CURLOPT_COOKIEFILE => "cookie.txt", //set cookie file CURLOPT_COOKIEJAR => "cookie.txt", //set cookie jar CURLOPT_RETURNTRANSFER => true, // return web page as string CURLOPT_HEADER => false, // don't return headers CURLOPT_FOLLOWLOCATION => true, // follow redirects CURLOPT_ENCODING => "", // handle all encodings CURLOPT_AUTOREFERER => true, // set referer on redirect CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect CURLOPT_TIMEOUT => 120, // timeout on response CURLOPT_MAXREDIRS => 10, // stop after 10 redirects ); $curl = curl_init($url); curl_setopt_array($curl,$options); $content = curl_exec($curl); $header = curl_getinfo($curl); $err = curl_errno($curl); $errmsg = curl_error($curl); $header = curl_getinfo($curl); curl_close($curl); $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['content'] = $content; return $header; } $url = 'http://www.google.com'; var_dump(get_webpage($url));
اما وقتی اجراش میکنم، این خروجی رو میده :
D:\wamp64\www\24\cURL\curl_get_webpage.php:35: array (size=29) 'url' => string 'https://google.com/' (length=19) 'content_type' => string 'text/html' (length=9) 'http_code' => int 301 'header_size' => int 187 'request_size' => int 85 'filetime' => int -1 'ssl_verify_result' => int 20 'redirect_count' => int 1 'total_time' => float 1.544 'namelookup_time' => float 0.093 'connect_time' => float 0.296 'pretransfer_time' => float 0.109 'size_upload' => float 0 'size_download' => float 0 'speed_download' => float 0 'speed_upload' => float 0 'download_content_length' => float -1 'upload_content_length' => float -1 'starttransfer_time' => float 0.125 'redirect_time' => float 0.125 'redirect_url' => string '' (length=0) 'primary_ip' => string '91.109.17.47' (length=12) 'certinfo' => array (size=0) empty 'primary_port' => int 443 'local_ip' => string '192.168.1.106' (length=13) 'local_port' => int 52333 'errno' => int 60 Error Message Is Here ********* 'errmsg' => string 'SSL certificate problem: unable to get local issuer certificate' (length=63) 'content' => boolean false
تو ایندکس ارور، یه اروری نوشته . توی سایت های خارجی هم گشتم و چندتا راه امتحان کردم ولی جواب نداد. در ضمن وقتی وارد لوکال هاست میشم بالای فایرفاکس مینویسه connection is not secure !
ممنون میشم راهنمایی کنید
-
در 7 دقیقه قبل، فرحان گفته است :
سلام. این کد ظاهرا یه کد اموزشی هست. و شما میتونی همون جور که میگی بنویسیش.
اما اگه منظورتون اینه که بلاک ترای کچ به چه دردی می خوره، جواب اینه که گاهی اوقات قراره محاسباتی یا اتصالی پیش بیاد که نتیجش قطعی نیست. یعنی چی؟ مثلا الان میدونید فقط اگر x برابر 0 باشه خطاست. اما حالا فرض کنید نمیدونید مقدار x از کجا اومده. مثلا کاربر ممکنه حروف الفبا یا هرچیز دیگه ای وارد کنه. در این صورت 1/x ام، ممکنه مثلا خطای وارنینگ یا فتال ارور بده، در این صورت به جای شرط گذاشتن برای مقدار x که چیا نباشه، راحت میشه محاسبه رو توی ترای کچ انجام داد و مطمئن شد که خطا نمیده. و اروری به کاربر نشون داده نمیشه که آدرس پوشه های سرور هم توش باشه! (به جاش اون پیام ما نشون داده میشه)
مثال دیگه زمانیه که قراره ارتباط با یه سرور دیگه برقرا کنیم. مثلا زمانی که می خوایم به سرور مای اس کیو ال وصل بشیم. نمیدونم الان سروری که موجود در آینده هم در حال اجرا هست یا نه. مثلا ممکنه سرور مای اس کیو ال به خاطر یه دلیلی از دسترس خارج بشه که در این صورت خطایی به کاربر نشون داده میشه که مدیریت شده نیست. معمولا توی این جور جاها از بلاک try .. catch استفاده میشه.
موفق باشید.
بله این یک کد آموزشی هست .
ممنون بابت توضیحات مفید و کاملتون. متوجه منظورتون شدم.
پس خود کلاس exception به چه دردی میخوره. وقتی از این کلاس استفاده میکنیم خیلی اطلاعات حساس مثل آدرس فایل و ... به بیرون درز میکنه که !
-
سلام دوستان
من این کد رو آماده کردم
<?php include_once '../common/common.php'; // First Section <------------> function inverse($x){ if($x == 0){ throw new Exception('No Accepted Value'); } return 1/$x ; } try{ inverse(5); inverse(0); }catch (Exception $error){ echo 'An Error Occured ! Error Message: ' . $error->getMessage() . "<br>"; } echo 'After This Block'; // Second Section <------------> function toinverse ($a){ if($a == 0){ echo ' There is an error 2 '; } return 1/$x ; }
توی قسمت اول ( کامنت گذاشتم ) الان ما اومدیم گفتیم اگه x برابر صفر شد بیاد یه ارور ایجاد بشه. بعد توی دستور try..catch اومدیم گفتیم اگه استثنایی بود بره توی قسمت catch و یه متنی رو بخونه .
من سوالم اینجاست که چرا نمیایم مستقیم همون ارور رو توی دستور if نمایش بدیم ( مثل قسمت دوم ). یعنی به جای اینکه بیایم بگیم اگه x صفر بود --> ارور، اگه ارور بود --> متن ارور ( دستور catch) خب بیایم بگیم اگه صفر بود --> متن ارور .
برای چی یه قسمت اضافی ( اون exception ) رو بیخودی اون وسط کدهای اضافه میکنیم؟
امیدوارم منظورم رو فهمیده باشید
ممنون
-
میتونید با یک جستجوی ساده در گوگل نحوه کدنویسی این آپشن ها رو یاد بگیرید.
مثلا برای لایک جستجو کنید : ساخت لایک با Php
برای اینجور اپشن هایی مثل لایک میتونید در دیتابیس مثلا جدولی برای هر پست درست کنید که یه ستون اون جدول رو به تعداد لایک های اون پست اختصاص بدید و با هر بار کلیک شدن روی دکمه قلب، به تعداد لایک های اون پست اضافه بشه
- 1
-
در 6 ساعت قبل، Mobin گفته است :
باید اضافه کنید
تابع strip ی که استفاده میشهstip_tags هست که تگهای داخل متن رو از بین میبره برای جلوگیری از xss
اهان ممنون
پس در کل بهتره برای برای ورودی های که کاربر که در sql وارد میشه، از mysqli_real_scape استفاده کنیم و برای دیگر ورودی ها از addslashes استفاده کنیم تا اسلش اضافه کنه درسته ؟
پس stripslash که اسلش رو حذف میکنه، کجاها کاربرد داره
-
در 12 ساعت قبل، Mobin گفته است :
برای امن کردن یک کوئری چیزی که عموما توصیه میشه استفاده از تابع mysqli_real_escape_string یا (mysqli::escape_string) هست که کوتها ' رو با قرار دادن یک اسلش قبلش غیر فعال میکنه تا باعث sql inject نشه
اهان
بعد برای امن کردن ورودی های کاربر به طور کلی باید اسلش های ورودی رو حذف کنیم یا اسلش به ورودی اضافه کنیم
Stripslash یا addslashes
-
سلام دوستان
من چندتا تابع رو با هم قاطی کردم. الان اگه بخوام ورودی های کاربر رو از یک فرم، امن کنم باید از کدوم از این توابع استفاده کنم؟ هرکدومشون چه مزیتی دارن ؟
mysqli_escape_string یا mysqli_real_escape_string یا addslashes یا stripslashes ؟
وقتی ورودی گرفته میشه، ما باید اسلش های اون رو حذف کنیم یا اسلش بهش اضافه کنیم ؟
و اصلا فرق اون 2 تابع اول که فقط توی کلمه real فرق میکنن، چیه ؟
اگه میشه کمی توضیح بدید من گیج شدم
ممنون
-
سلام دوستان
من یه سوال کلی دارم. فرض کنید من یه سایت داشته باشم که کاربر امکان انتخاب چند نوع تم مختلف رو داشته باشه و یکی از اونارو ست کنه. من میخوام وقتی کاربر مرورگرش رو بست و بعد دوباره باز کرد، اون تم به طور پیشفرض براش ست شده باشه و نخواد دوباره ست کنه. اگر بخوام این کار رو با کوکی ها انجام بدم، اون محتوی کوکی رو باید چی وارد کنم ؟ چطور باید یه همچین آپشنی رو با کوکی ها پیاده کرد؟
ممنون
-
سلام
به طور کلی فایل ها ( چه جاوا چه css و ... ) رو در تگ های header فراخوانی میکنند.
اگر هم کد html ندارید ( header ندارید ) و با php سر و کار دارید میتونید در همون خط اول با دستور زیر فایل رو فراخوانی کنید
<?php include 'YourFile.js'; ?>
-
سلام دوستان
من یه کوئری نوشتم و میخوام ارسالش کنم به دیتابیس. اما یه پارامتر میگیره که من میخوام اون پارمتر امن بشه برای همین از prepare استفاده کردم به این صورت
$sql = 'select * from customers where age > ?'; $resualt = $mysqli ->query($sql); $state = $mysqli->prepare($sql); $state->bind_param('i',$age); $state->execute(); $age = $_GET['age']; //Here echo $resualt->field_count . "<br>"; echo $resualt->num_rows . "<br>"; $customers = $resualt->fetch_all(); arrayNormal($customers);
اما در قسمت اخر کد نمیدونم باید چطور نتایج این کوئری رو نمایش بدم؟ از همونجایی که کامنت گذاشتم
- 1
-
سلام دوستان
میدونیم که برای باز کردن یا درست کردن یک فایل باید از تابع fopen () استفاده کنیم.
من این کد زیر رو نوشتم .
$filePath1 = 'NewFile.php'; unlink($filePath1); $fp1 = fopen($filePath1, 'a+'); for ($i = 1; $i <= 5; $i++) { fwrite($fp1, "Line $i > " . date("Y-m-d h:i:s", time()) . PHP_EOL); // sleep(1); } fclose($fp1); $fp1 = fopen($filePath1, 'r'); for($i = 1 ; $i <= 5 ; $i++) { $ch1 = fgetc($fp1); $str1 = fgets($fp1); e( $ch1 . ' | ' . $str1); } fclose( $fp1);
چرا این کد رو نمیشه به این صورت نوشت ؟:
$filePath1 = 'NewFile.php'; unlink($filePath1); $fp1 = fopen($filePath1, 'a+'); for ($i = 1; $i <= 5; $i++) { fwrite($fp1, "Line $i > " . date("Y-m-d h:i:s", time()) . PHP_EOL); // sleep(1); } for($i = 1 ; $i <= 5 ; $i++) { $ch1 = fgetc($fp1); $str1 = fgets($fp1); e( $ch1 . ' | ' . $str1); } fclose( $fp1);
در این کد دوم من fclose اولی و fopen دومی رو حذف کردم. چرا باید برای هر کاری که میخوایم روی فایل انجام بدیم باید فایل رو باز و بسته کنیم ؟
چرا نمیشه همینطور که فایل باز هست ( قسمت اول کد ) بیایم و یه کار دیگم روش انجام بدیم ( قسمت دوم کد )
الان این کد دوم ارور میده.
ممنون
مشکل در نوشتن کتابخانه
در برنامه نویسی استاتیک
ارسال شده در
با احترام
من دوباره که نگاهی به کد انداختم فهمیدم که در متد subNums یادم رفته return رو بنویسم و این باعث خطا ( undefined ) شده بود. معذرت میخوام
خیلی ممنون لطف کردید