• اطلاعیه ها

    • Morteza

      باهم بسازیم: اطلس ووکامرس و وردپرس   14/07/96

      تاپیک ایجاد شده برای بحث در جهت ایجاد یک منبع، ویکی، صفحات توضیحی و یا بخش آموزشی جامع برای وردپرس و متعلقات مختلف آن است. لطفا جهت مشارکت در این بحث، ارائه پیشنهاد و یا انتقاد به تاپیک فوق مراجعه کنید. باهم بسازیم: اطلس ووکامرس و وردپرس
SM-Mahdavi

سوالات و نظرات آموزش PDO

25 پست در این موضوع قرار دارد

سلام دوستان. در این تاپیک می تونید سوالات و نظرات خودتون در مورد آموزش PDO که دارم قرار میدم بنویسید.

سپاس

9

به اشتراک گذاری این پست


لینک به پست

داداش pdo چیه؟

0

به اشتراک گذاری این پست


لینک به پست

داداش pdo چیه؟

با اجازه SM-Mahdavi

تو همون تاپیکی که لینکش رو گذاشتن بخونید هست :

سلام دوستان

خب همگی می دونید که برای کار با بانک های اطلاعاتی در PHP سه تا متد معرفی شده. متد اول MySQL هست. خب این روش به دلیل مشکلاتی که تو امنیت و بحث SQL Injection داشت کم کم کنار رفت. یعنی خود مایکروسافت اونو کنار گذاشت. ولی خب به جاش MySQLI رو ارائه داد. میشه گفت نسخه تکمیل شده همون MySQL هست. با این دو تا روش شما فقط می تونید با بانک MySQL کار کنید.

PDO وقتی ارائه شد کم کم همه رو به سمت خودش جذب کرد. حالا چرا؟

دلیل اول اینه که شما با این روش می تونید به 12 تا بانک مختلف مثل SQL Lite و SQL Server کار کنید، در صورتی که با روش MySQLI شما فقط با یک بانک می تونید کار کنید که اونم خود MySQL هست.

مزیت بعدی امنیت و شی گرایی هست که در روش PDO بسیار تقویت شده.

5

به اشتراک گذاری این پست


لینک به پست

سلام

به غیر از md5 تابع دیگری هم برای هش وجود دارد یا نه؟

0

به اشتراک گذاری این پست


لینک به پست

سلام علی جان

به انجمن وردپرس پارسی خوش اومدین.

توابع زیادی برای این کار وجود داره http://www.php.net/manual/en/ref.hash.php

اما در حال حاظر بهترین عملکرد رو md5 داره. که فکر می کنم این متد رو هم به تازگی هکرها تونستن مورد نفوذ قرار بدن.

4

به اشتراک گذاری این پست


لینک به پست

درود

دوست عزیز خیلی وقت بود دنبال یادگیری متد PDO بودم و متاسفانه سورس فارسی پیدا نمی کردم، ممنونم از آموزشتون خیلی بهم کمک کرد، لطفاٌ آموزش رو ادامه بدید

0

به اشتراک گذاری این پست


لینک به پست

خب همگی می دونید که برای کار با بانک های اطلاعاتی در PHP سه تا متد معرفی شده. متد اول MySQL هست. خب این روش به دلیل مشکلاتی که تو امنیت و بحث SQL Injection داشت کم کم کنار رفت. یعنی خود مایکروسافت اونو کنار گذاشت. ولی خب به جاش MySQLI رو ارائه داد. میشه گفت نسخه تکمیل شده همون MySQL هست. با این دو تا روش شما فقط می تونید با بانک MySQL کار کنید.

PDO وقتی ارائه شد کم کم همه رو به سمت خودش جذب کرد. حالا چرا؟

ببخشید، جسارت نباشه، فکر نمیکنم که PDO و روش کانکت قدیمی mysql ابتکاری از ماکروسافت باشه؟ مگر اینکه منظورتون خود SQL Server ماکروسافت باشه که حاوی باگ SQLi هست. تا جایی که من میدونم MySQL کاری به ماکروسافت نداره و مال اوراکل هست.

موفق باشید.

3

به اشتراک گذاری این پست


لینک به پست

سلام.

بله درسته. اشتباه از من بوده. از همه کاربران و شما دوست عزیز عذر می خوام.

2

به اشتراک گذاری این پست


لینک به پست
اما در حال حاظر بهترین عملکرد رو md5 داره. که فکر می کنم این متد رو هم به تازگی هکرها تونستن مورد نفوذ قرار بدن.

md5 تنها که الان دیگه جوابگو نیست .

پیشنهاد میکنم از sha256 رو 4 هزار دور با یک سالت ، پسوردهاتون رو هش کنید .

0

به اشتراک گذاری این پست


لینک به پست

md5 اصلن جالب نیست ، الگوریتم های زیاید برای هش هست ؛

البته بماند هیچ کدوم از الگوریتم ها مناسب نیستند . توصیه بنده اینه که برای هر اسکریپت به الگوریتم هش اختصاصی با چاشنی slat نوشته بشه که اکه وارد باشید 1 دقیقه کار داره

1

به اشتراک گذاری این پست


لینک به پست

سلام به دوستان !! یکی میشه اینفایل چک کنه ببینه مشکلش چیه ؟ همه چی درست هست فک کنم ولی داخل دیتا بیش درج نمیکنه ! ممنون میشم چک کنید مشکلشو بگید با pdo هست !

register.zip

0

به اشتراک گذاری این پست


لینک به پست

سلام.

خطا دارید؟

1

به اشتراک گذاری این پست


لینک به پست

سلام نه بدیش همینه خطا نمیده ولی عمل درج رو هم انجام نمیده !

0

به اشتراک گذاری این پست


لینک به پست

شما type هر پارامتر رو باید مشخص کنید



<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

2

به اشتراک گذاری این پست


لینک به پست

سلام به کمک احتیاج دارم خیلی خیلی سریع واقعا ممنون میشم اگر کسی بتونه کمکم کنه.

من میخوام با pdo عکس ذخیره کنم تو دیتابیس و بعد بخونمش.

اما نمیدونم چرا موقع بازیابی عکس باز نمیکنه هیچ خطایی نمیده فقط جای عکس هست اما عکس باز نمیشه.

0

به اشتراک گذاری این پست


لینک به پست

از چه روشی برای ذخیره‌سازی عکس استفاده می‌کنین؟

1

به اشتراک گذاری این پست


لینک به پست

بهتره شما آدرس عکس رو داخل دیتابیس ذخیره کنید تا راحت تر بتونید استفاده کنید. اگه برای انجام این مورد مشکلی دارید تاپیک بزنید راهنمایی کنم.

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)


if(isset($_POST["save"])){
if($_POST["title"]!="" && $_POST["text"]!="" && $_POST["category"]!="" && $_POST["slider"]!="" && $_POST["important"]!="" && $_FILES["file"]["name"]!="")
{
$title= prevent($_POST["title"]);
$text= prevent($_POST["text"]);
$cat_id= checknum($_POST["category"]);
$slider= checknum($_POST["slider"]);
$important= checknum($_POST["important"]);
$filename= $_FILES["file"]["name"];
$filetype= $_FILES["file"]["type"];
$temp = $_FILES["file"]["tmp_name"];
$save_url = "../img/post/";
$file = md5($filename.microtime()).substr($filename,-5,5);
$db_url = "imq/post/".$file;
$whitelist = array("image/jpeg" , "image/jpg" , "image/gif" , "image/png");
if(in_array($filetype , $whitelist)){
if(is_uploaded_file($temp)){
$move = move_uploaded_file($temp,$save_url.$file);
if($move){
$sql="INSERT `$tbl_post` SET `category_id`=? , `title`=? , `text`=? ,`pic_url`=? , `slider`=? , `important`=? ";
$result= $connect-> prepare($sql);
$result->bindValue(1,$cat_id);
$result->bindValue(2,$title);
$result->bindValue(3,$text);
$result->bindValue(4,$db_url);
$result->bindValue(5,$slider);
$result->bindValue(6,$important);
if($result->execute()){
echo "<script>alert('خبر جدید در پایگاه داده ذخیره شد.');</script>";
}
}
}
}

ویرایش شده در توسط ahmadi_f
0

به اشتراک گذاری این پست


لینک به پست

دیتابیس رو چک کنید که URL فایل درست ذخیره بشه، اگه درست ذخیره شده بود، مطمئنید بشید که متغیرها رو درون کد درست تعریف کردید و همچنین اصلاً هاست اجازه آپلود به شما میده یا خیر.

موفق باشید.

1

به اشتراک گذاری این پست


لینک به پست

یعنی کد های که برای برای اپلود نوشتم درسته؟

همه چیزو چک کردم.عکس داخل دیتا بیس ذخیره میشه.

اینم کدهایی ک موقع خوندن عکس استفاده می کنم.


<?php
$result_p = $connect->query("SELECT * FROM `$tbl_post` ORDER BY `id` DESC LIMIT 0,7");
while($rows_p = $result_p->fetch(PDO::FETCH_ASSOC))
{
?>
<img src="imq/<?=$rows_p["pic_url"];?>" width="60" />

0

به اشتراک گذاری این پست


لینک به پست

شما خودتون کدهای رجیستر خبر رو با خوندنش مطابقت بدید و متوجه اشتباهتون میشید.

من چون نمیتونم کدهای شما رو فعلاً بخونم، شما خودتون چک کنید که URLها به درستی ذخیره میشن و آیا شما به‌درستی فراخوانی میکنید.

موفق باشید.

0

به اشتراک گذاری این پست


لینک به پست

با سلام

من یه مشکلی دارم و اون اینکه هر کاری می کنم با pdp به sql server نمی تونم وصل بشم

خطای   could not find driver  رو میده

کسی می تونه به من کمک کنه

ممنون

0

به اشتراک گذاری این پست


لینک به پست
در در ۱۳۹۵/۵/۳۱ ه‍.ش. at 14:55، khodamoradi گفته است :

با سلام

من یه مشکلی دارم و اون اینکه هر کاری می کنم با pdp به sql server نمی تونم وصل بشم

خطای   could not find driver  رو میده

کسی می تونه به من کمک کنه

ممنون

باید درایور sql server برای pdo رو نصب کنید

کدهای زیر رو تست کنید


 

try {

    $DBH = new PDO("sqlsrv:Server=xxxx;Database=xxxx", 'xxxx', 'xxxx');

} catch (PDOException $e) {

    echo $e->getMessage();
}

یا

try {

    $DBH = new PDO("dblib:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx');

} catch (PDOException $e) {

    echo $e->getMessage();
}

 

1

به اشتراک گذاری این پست


لینک به پست

سلام

دستت درد نکنه

خیلی ممنونم

با قطعه کد اولی تونستم به sql server  وصل بشم

بازم ممنونم

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری