بایگانی برچسب: s

مشکل در اتصال به بانک اطلاعات با pdo

با عرض سلام و خداقوت به همگی

بنده به یه مشکل برخوردم، تو اتصال به دیتابیس با pdo.
کدی که باهاش به دیتا بیس وصل میشم اینه

 $  cnCfg = array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"); $  cn = new PDO("mysql:host=localhost;dbname=ka;charset=UTF-8", "root", "", $  cnCfg); 

توی لوکال درست عمل میکنه، ولی تو هاست گیگفا نه(البته بگم نام کاربری و هاست و رمز و اینا رو همش و با اطلاعات هاستم تغییر میدم)
فقط pdo مشکل داره اگه همین کد و با mysql_connect بنویسم خطایی نمیده.
اروری هم که میده اینه

 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2019] Unknown character set' in /home/vol10_1/gigfa.com/gigfa_15787424/htdocs/connection/cn.php:7 Stack trace: #0 /home/vol10_1/gigfa.com/gigfa_15787424/htdocs/connection/cn.php(7): PDO->__construct('mysql:host=sql2...', 'gigfa_15787424', 'sdds', Array) #1 {main} thrown in /home/vol10_1/gigfa.com/gigfa_15787424/htdocs/connection/cn.php on line 7  


پرسش و پاسخ PHP, jQuery, CSS, MySQL, … – آخرین فعالیت‌های کاربران (شامل درج و بازنگری پرسش‌ها، پاسخ‌ها، نظرات)

پاسخ داده شده: دريافت اطلاعات يک فرم با name نامشخص

با جیکوئری می‌تونید تمام المان‌های اینپوت و سلکت و تکست اریا رو بگیرید و بریزید تو آرایه و ذخیره کنید. تست کردید این روش رو ؟
پرسش و پاسخ PHP, jQuery, CSS, MySQL, … – آخرین فعالیت‌های کاربران (شامل درج و بازنگری پرسش‌ها، پاسخ‌ها، نظرات)

ذخیره فارسی اطلاعات در دیتا بیس phpfox

سلام

من یک شبکه اجتماعی دارم با phpfox v.3.7.7

دیتا بیس رو فارسی ساختم utf8_persian_ci

ولی مطالب فارسی مثل پستها و کامنتها و … در دیتابیس فارسی ذخیره نمیشه
و به این شکل ذخیره میشه
البته در فراخوانی اونامشکلی نیست فارسی میاد
اما مشکل در حجم دیتابیس هست که حجم زیادی از دیتا بیس گرفته میشه

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

مرسی :rolleyes:

انجمن گروه آشیانه – آموزش امنیت و راه های مقابله با هک

پاسخ داده شده: صحت اطلاعات کاربر

من در پاسخم فرض کردم که شما کدهای سمت سرور، برای دریافت اطلاعات مربوطه از دیتابیس رو نوشتی و پاسخی که از جدول دیتابیس دریافت کردی در آرایه ای به نام test_values ذخیره شد.
برای پاسخ به پرسش شما؛ دو تا فایل درست کردم.
فایل اول که حاوی کدهایی است که خودت اینجا قرار دادی  :

 client.php 

و فایل دوم :

 server.php 

ابتدا، محتوای فایل دوم، یعنی فایل sever.php رو بهت نمایش می دم:

 <?php   $  test_values = array( "name"=>'Kiyarash', "family"=>"Vahed", "code"=>'0123456789', "lesson"=>"Computer" );  if ( $  _POST['name'] !== $  test_values['name'] ) {          echo 'NameError';      } else if ( $  _POST['family'] !== $  test_values["family"] ) {          echo 'FamilyError';      } else if ( $  _POST['code'] != $  test_values['code'] ) {          echo 'codeError';          } else if ( $  _POST['lesson'] !== $  test_values['lesson'] ) {          echo 'LessonError';      } else {          echo '<h1 style="color: green;">Congratulation... All Fields are OK...</h1>';      }  //var_dump( $  _POST );   ?>  

در خط 15 یعنی این خط :

 else if ( $  _POST['code'] != $  test_values['code'] ) { 

از یک مساوی استفاده کردم، برای این که شاید کد ملی رو به صورت عددی داشته باشی و اگر کد ملی در سمت سرور به صورت عددی باشه، چون داده های post به صورت رشته ارسال می شن، با استفاده از ==! همیشه مقدار false خواهی داشت.
و اما محتوای فایل client.php، بخش اول یعنی ساختار HTML صفحه…
من یک سری تغییرات  در ساختار html ایجاد کردم.
مثلا تگ باز و بسته ی فرم رو به صفحه اضافه کردم و به برخی از عناصر آی دی و نام اختصاص دادم…

 //client.php--->part1  <form name="frm" id="frm" method="post" action="#" >      name:<input type="text" name="name">     <br><br>     famili:<input type="text" name="family">     <br><br>     code meli:<input type="text" name="code">     <br><br>     dars:<input type="text" name="lesson">     <br><br>   <input type="button" id="btn" name="btn" onClick="" value="send">  </form> <div id="result">  </div>   

و در بخش دوم بر اساس کتابخانه جی کوئری، یک سری کد نوشتم که درخواست ایجکس رو بفرسته به دیتابیس و…
فقط افزودن جی کوئری به صفحه رو فراموش نکن…!!!

 //client.php--->part2  <script>  $  (document).ready(function(e) {          $  ("#btn").click(function(e) {                  var data = $  ("form").serializeArray();                  $  .ajax({             type: "POST",             url:"h4_server.php",             data: data,             beforeSend: function() {                                               },             statusCode: {                 404: function() {                     alert("فایل مورد نظر پیدا نشد");                 }             },             success: function(result) {                                  if ( result.indexOf("NameError") > 0 ) {                                      $  ("input[name=name]").css({'border-color':'red', 'box-shadow':'0 0 7px #ED3737'});                                      }                 else {                                          $  ("input[name=name]").removeAttr("style");                                      };                                  if ( result.indexOf("FamilyError") > 0 ) {                                          $  ("input[name=family]").css({'border-color':'red', 'box-shadow':'0 0 7px #ED3737'});                                      }                 else {                                          $  ("input[name=family]").removeAttr("style");                                      };                                                   if ( result.indexOf("codeError") > 0 ) {                                          $  ("input[name=code]").css({'border-color':'red', 'box-shadow':'0 0 7px #ED3737'});                                      }                 else {                                          $  ("input[name=code]").removeAttr("style");                                      };                  if ( result.indexOf("LessonError") > 0 ) {                                          $  ("input[name=lesson]").css({'border-color':'red', 'box-shadow':'0 0 7px #ED3737'});                                      }                 else {                                          $  ("input[name=lesson]").removeAttr("style");                                      }                                                   $  ("#result").html(result);             }         });//Ajax              });//Click      });//Doc Ready  </script>  

نکته ای که وجود داره اینه که پارامتر اول تابع success در متد ajax.$ در جی کوئری، شامل پاسخ درخواسته، اما به همراه متن پاسخ درخواست، تعدادی مقدار اضافب مثل هدر و… هم ارسال می کنه.. برای این که بهتر متوجه بشی می تونی از این قطعه کد در تابع success استفاده کنی…

             success: function(result) {                                  alert(result); } 

اگر این رو امتحان کنی خواهی دید که doctype، تگ meta و… هم ارسال شده.
لذا اگر بخوای به صورت ساده پاسخ رو بررسی کنی، نتیجه اونطور که انتظار داری نخواهد بود؛ پس من یک متن رو پس از بررسی هر شرط مربوط به هر فیلد متنی، به عنوان پاسخ echo کردم، و در صفحه client.php با استفاده  از دستور indexOf چک کردم که آیا متن مورد نظر در پاسخ ظاهر شده یا نه… اگر ظاهر شده بود، یعنی خطایی در این فیلد به وجود آمده، در نتیجه اون رو قرمز، و در غیر این صورت، اون رو به حالت عادی تبدیل کردم.
این روش، خیلی دم دستی و ساده است. روش های زیادی برای این کار وجود داره، مثل استفاده از json. اما من برای این که مطمئن نبودم استفاده از json یا روش های دیگه برات راحت باشه، این روش رو انتخاب کردم.
امیدوارم کمکت کنه…
پرسش و پاسخ PHP, jQuery, CSS, MySQL, … – آخرین فعالیت‌های کاربران (شامل درج و بازنگری پرسش‌ها، پاسخ‌ها، نظرات)

کپی کردن اطلاعات

با سلام امیدوارم که پست در جای مناسب داده باشم …

بنده یه مودم Adsl wireless دارم و یه لپ تاپ و یک سیستم خونگی در طبقه دوم که با lan به مودم adsl وصل شده است…
می خوام بدونم که آیا من میتونم بدونه رفتن به طبقه دوم خونم و نشستن پشت سیستمه خونگیم از طریق لپ تاپی و مودم adsl wireless که دارم وارد اون سیستم طبقه دوم که با lan به مودم هست وصل بشم و اطلاعات رو از داخل درایو ها بر دارم یا داخلش کپی کنم ؟؟؟

"لطفا راهنمایی کامل کنید"

باتشکر

انجمن گروه آشیانه – آموزش امنیت و راه های مقابله با هک

شروع یک اکتیویتی برای گرفتن اطلاعات ( Start Activity for Result )

بنام خدا

سلام

 

قبلا در مورد ارسال اطلاعات به اکتیویتی جدید از طریق Intent ها صحبت کردیم . قصد داریم تا در اینجا یاد بگیریم  چگونه یک اکتیویتی رو برای گرفتن یک سری اطلاعات اجرا کنیم. برای مثال از دوربین عکس گرفته و داخل اکتیویتیمون نمایش بدیم و …

متد startActivity(Intent) برای اجرای یک اکتیویتی استفاده میشه اما گاهی میخوایم نتیجه کار اکتیویتی وقتی کارش تموم شد به اکتیویتی قبل برگرده مثلا کاربر نامی رو در اکتیویتی جدید وارد میکنه وقی دکمه عقب رو میزنه و اکتیویتی قبل نمایش داده میشه نام کاربر به بالای صفحه اضافه شده باش.

برای انجام این کار باید startActivityForResult(Intent, int)رو صدا بزنیم که نتیجه کار از طریق متد onActivityResult(int, int, Intent) به ما بر گردونده میشه.

شاید از خودتون بپرسید خوب چجوری باید نتیجه رو مشخص کنیم ؟

برای اینکار در صفحه دوم  setResult(int) رو صدا می زنیم.

startActivityForResult(Intent, int) ما ابتدا مشخص می کنیم به کدوم اکتیویتی بره بعد هم میگیم جواب ارسال با چه کلیدی برگردونده بشه تا ما بفهمیم برای این اکتیویتی بوده چون ممکنه ما چندتا اکتیویتی مختلف بخوایم بریم یا به یک اکیتیویتی برای کارهای خاص، باید بعد از برگشت بفهمیم که کدوم کار نتیجه رو برگردونده.

onActivityResult(int, int, Intent) دوتا عدد صحیح برمیگردونه یکی همون کلید ما هست و یکی هم نتیجه که آیا کار ما با موفقیت انجام شده ، نشده و یا … همچنین اطلاعات دیگه رو هم از طریق intent بهمون میده.

setResult(int) عددی که مشخص کنیم نتیجه با موفقیت انجام شده نشده و یا غیره…

scrstrtfractrslt

مثال:

دوتا اکتیویتی می سازیم یکی صفحه اول(MyActivity) و یکی هم صفحه دوم(Page2). در صفحه دوم یه edit text قرار میدیم تا کاربر نامش رو وارد کنه بعد برمیگردیم صفحه اول و اون رو نمایش می دیم:

لایه صفحه اول یک دکمه و یک متن :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     android:paddingBottom="@dimen/activity_vertical_margin"     tools:context=".MyActivity">      <TextView         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:textAppearance="?android:attr/textAppearanceLarge"         android:text="اسفندونه"         android:id="@+id/name"         android:layout_centerVertical="true"         android:layout_centerHorizontal="true" />      <Button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="نام جدید"         android:id="@+id/btn_add"         android:layout_alignParentBottom="true"         android:layout_centerHorizontal="true" /> </RelativeLayout>

لایه صفحه دوم یک ورودی متن و یک دکمه:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     android:paddingBottom="@dimen/activity_vertical_margin"     tools:context="ir.esfandune.startforactivityresult.Page2">      <EditText         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:inputType="textPersonName"         android:hint="نام خود را وارد کنید"         android:ems="10"         android:id="@+id/et_name"         android:layout_centerVertical="true"         android:layout_centerHorizontal="true"         />      <Button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="ذخیره"         android:id="@+id/btn_save"         android:layout_alignParentBottom="true"         android:layout_centerHorizontal="true" /> </RelativeLayout>

 

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

package ir.esfandune.startforactivityresult;  import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView;   public class MyActivity extends Activity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_my);          Button btn_add = (Button) findViewById(R.id.btn_add);         btn_add.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 Intent next = new Intent();                 next.setClass(MyActivity.this,Page2.class);                 startActivityForResult(next, 2);             }         });      }      @Override     protected void onActivityResult(int requestCode, int resultCode, Intent data) {         super.onActivityResult(requestCode, resultCode, data);         if (requestCode ==2){             if (null != data){                 TextView txt = (TextView) findViewById(R.id.name);                 txt.setText(data.getStringExtra("NAME"));             }         }      } }

صفحه دوم که مقدار وارد شده رو به صفحه قبل بر میگردونیم:

package ir.esfandune.startforactivityresult;  import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText;   public class Page2 extends Activity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_page2);          Button btn_save = (Button) findViewById(R.id.btn_save);         btn_save.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 EditText et_name = (EditText) findViewById(R.id.et_name);                 //gerftan etelaate dakhele edittext                 String message=et_name.getText().toString();                  Intent intentMessage=new Intent();                 // gharar dadan matn dakhle intent ba esme khas ke dar safhe aval ba seda zadan e un esm betunim matn ro begirim                 intentMessage.putExtra("NAME",message);                 // tantim cod result                 setResult(1,intentMessage);//1 ro khodam gozashtam haminjuri ,toziaht *1 dar site esfandune                 //bastan in safhe                 finish();             }         });      }  }

*۱ : ما در این مثال نیاز به این نتیجه نداشتیم ولی  فرض کنید میخوایم کاربر یک کد رو در صفحه دوم وارد کنه اگر صحیح هست بره صفحه جدید غلط هست همینجا بمونه و ارور بده . برای اینکار میتنیم درصفحه دوم اگه جواب صحیح بود مثلا setresult عدد ۱ بفرسته و اگه غلط بود عدد ۰ . حالا در onActivityResult یه شرط if دیگه هم اضافه میکنیم که اگر resultCode برابر ۱ هست برو صفحه جدید وگرنه پیغام بده.

scrstrtfractrslt

 

موفق باشید.

 

 

☃ اسفندونه ☃

نظر داده شده: راه حل برای اطلاعات متغیر در پایگاه داده؟

خوب 2 جدول دارم نمیدونم  کواری رو چطور بنویسم کل چیزایی که نوشتم این ادرس اپلوید کردم اگه وقت کردید یه نگاهی بندازید کواری رو در قسمت ادیت برام بگید جز اون بلد نیستم چه طور پایگاه داده رو فارسی کنمhttp://s5.picofile.com/file/8144016200/c.rar.html
پرسش و پاسخ PHP, jQuery, CSS, MySQL, … – آخرین فعالیت‌های کاربران (شامل درج و بازنگری پرسش‌ها، پاسخ‌ها، نظرات)

نظر داده شده: با درج اطلاعات فارسی در دیتابیس آن اطلاعات را به صورت علامت سوال نمایش می دهد؟

آخه خیلیارو دیدم منظورشون از sql همون sql server ه! البته گفتم شاید. فعلا هم که این بنده خدا سوالشو پرسیده و رفته خبری هم ازش نیس که بگه منظورش چیه :دی
پرسش و پاسخ PHP, jQuery, CSS, MySQL, … – آخرین فعالیت‌های کاربران (شامل درج و بازنگری پرسش‌ها، پاسخ‌ها، نظرات)

پاسخ بازنگری شده: مشکل در ارسال اطلاعات فرم

 <script type="text/javascript"> //<![CDATA[ function validateForm(){     var GetArray = new Array();     GetArray['name'] = myform.name.value;     GetArray['sex'] = myform.sex.value;     GetArray['pass'] = myform.pass.value;     GetArray['newpass'] = myform.newpass.value;     if(GetArray['name'] == '' || GetArray['sex'] == '' || GetArray['pass'] == '' || GetArray['newpass'] == '')         alert('لطفا تمام فیلد ها را پر کنید');     else{         if(GetArray['pass'] != GetArray['newpass'])             alert('رمز ها باس یکی باشن');         else{             document.getElementById('result').innerHTML = 'Name = ' + GetArray['name'] + '<br />' +             'Sex = ' + GetArray['sex'] + '<br />' +             'pass = ' + GetArray['pass'] + '<br />';         }     } } //]]> </script> 

 <div id="result">محتویات فیلد شما اینجا قرار میگیره</div><br /><br /> <form method="post" name="myform"> Name:<br /> <input type="text" name="name" /><br /> Sex:<br /> <input type="text" name="sex" /><br /> Pass:<br /> <input type="text" name="pass" /><br /> New Pass:<br /> <input type="text" name="newpass" /><br /> <input type="button" value="Click To Send Form" onclick="validateForm();" /> </form> 

سلام
میتوانید از کد فوق استفاده کنید که خودم نوشتم و هیچ ایرادی نداره کی گفته جاوا اسکریپت زبان بدیه خیلی هم خوبه که امروزه پر کاربرد ترین زبان شناخته شده و کم پیش میاد جاوا مرورگر کاربری خاموش باشه
توجه: میتوانید بجای ای دی دادن به هر اینپاتی از نام فرم دات نام اینپات استفاده کنید و مقدارش را بگیرید خیلی هم آسانتر
توجه: اگر در عملیات شروط کار ما یه خطی باشه نیازی به {} ها نیست
پرسش و پاسخ PHP, jQuery, CSS, MySQL, … – آخرین فعالیت‌های کاربران (شامل درج و بازنگری پرسش‌ها، پاسخ‌ها، نظرات)

بازگرداندن اطلاعات درایوی که با bitlocker رمزگذاری شده.

باسلام خدمت دوستان واساتید محترم.
من هارد سیستمم فرمت شد بعد با استفاده از نرم افزارهای ریکاوری اطلاعاتم برگشت ولی مشکل اینجاست که یکی از درایوهام که با bitlocker رمز گذاری شده بود اطلاعاتش مثل درایو هایه دیگه برنگشت بلکه بصورت یک فایل با پسوند NTFS برگشت. اون فایلم درست هم سایز درایومم هست که اطلاعات توش بود ولی من نمیدونم چطور این فایلو باز کنم و به اطلاعاتم دسترسی داشته باشم. لطفا راهنماییم کنید اطلاعات اون درایو برام خیلی ارزشمنده…

انجمن گروه آشیانه – آموزش امنیت و راه های مقابله با هک