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

Mkvisual

عضو جدید
سلام ...
روی لوکال داری نصب میکنی ؟
احتملا از xamp یا wamp2.1 e استفاده میکنید ...
دنبال wamp 2.0 c بگردید و اون رو نصب کنید ... احتمالا مشکلتون برطرف بشه .
قبل از نصب wamp تمام نسخه های قبلی زمپ و مای سیکول رو حذف کنید .
 

hamed_goun

عضو جدید
بهترین فریم ورک

بهترین فریم ورک

سلام
به نظر شما چه فریم ورکی واسه پی اچ پی مناسبتره؟
 

nasseri_tak

عضو جدید
من php storm و wamp نصب کردم

untitled.jpgCopy of untitled.jpg

تو این قسمت از تنظیماتش موندم

server: start URl
upload files to remote host:
mounted folder=??????
web server root URL=???????????
local path=????????????
کسی می تونه به من کمک کنه؟؟؟؟؟؟؟؟؟
 

fateme01

عضو جدید
سایتمو چطور آپلود کنم؟؟؟

سایتمو چطور آپلود کنم؟؟؟

سلام !برا یه شرکت اداری با phpسایت طراحی کردم (اولین تجربمه)میخاستم راهنماییم کنید که بعد گرفتی هاست و دامین چطور آپلودش کنم و از چه سیستمی باید استفاده کنم؟؟(در ضمن سایتم پویاس وپایگام sql)توروخدا زوود بم جواب بدید خیلی عجله اییه
 

fateme01

عضو جدید
سلام من با php سایتمو ساختم تموم شده لطفا حالا کمکم کنید چطور رو هاست اپلودش کنم؟؟؟؟؟؟؟؟؟
 

niktaa

عضو جدید
راهنمایی

راهنمایی

با سلام اگر ممکنه راهنمایی کنید؟

iphoto $

s file $
o tpl $
مي خوام بدونم i و s و o به چه معنی داره؟
 

syronz

عضو جدید
سلام من با php سایتمو ساختم تموم شده لطفا حالا کمکم کنید چطور رو هاست اپلودش کنم؟؟؟؟؟؟؟؟؟

باید یک اکانت دسترسی از نوع FTP داشته باشی بعدش از نرم افزاری مثل FileZilla استفاده کنی و صفحات رو آپلود کنی. اگه تعداد صفحات زیاده اونو اول زیپش کن بعدا رو سرور بازش کن.

البته مستقیما از طریق Cpanle هم میشه این کار رو کرد ولی کند تره.
 

syronz

عضو جدید
من php storm و wamp نصب کردم

مشاهده پیوست 79107مشاهده پیوست 79108

تو این قسمت از تنظیماتش موندم

server: start URl
upload files to remote host:
mounted folder=??????
web server root URL=???????????
local path=????????????
کسی می تونه به من کمک کنه؟؟؟؟؟؟؟؟؟

تا جایی که من می دونم xampp از همشون قویتره! چرا اونو استفاده نمی کنی؟!
 

syronz

عضو جدید
میتونی از آجاکس استفاده کنی. و کد آجاکس به عنوان یک واسط عمل کرده اطلاعات رو به صفحات متعددی برفستد.
 

maede_h

عضو جدید
درخواست کمک در ساخت لاگین و طراحی جداول

درخواست کمک در ساخت لاگین و طراحی جداول

سلام
من در حال انجام پروژه کارشناسی ام هستم که طراحی یک وب سایت برای انجام آزمونهای اینترنتی هست
چند سوال در موردش دارم. لطفا اگه کسی هست و می تونه کمکم کنه. ممنون می شم.
1. برای ساخت لاگین، آیا این کافیه که اون چیزی که کاربر وارد می کنه را با آنچه که در دیتابیس موجوده مقایسه کنیم و در صورت یکسان بودن لاگین با موفقیت انجام بشه؟ آیا نیازی به ست کردن کوکی نیست؟
2. من اگر بخوام توی سایت سه مدل سوال مختلف داشته باشم، باید برای هر نوع سوال یه جدول جدا طراحی کنم؟ مثلا سوالات تستی، تشریحی و چند جوابی.
3. اگر بخوام یکی از فیلدهای یک جدول را به فیلد جدول دیگری متصل کنم چه کدی باید بنویسم؟ مثلا من می خوام مشخص کنم این سوال را فلان طراح، طراحی کرده. برای طراحان(اسم و مشخصات) یک جدول دارم و برای سوالات یک جدول دیگه.
4. اگر کسی بتونه کلا مفهوم کلید خارجی رو در عمل هنگامی که کدنویسی می کنیم برای من توضیح بده توی پایگاه داده، خیلی ممنون می شم.
با تشکر
 

syronz

عضو جدید
سلام
من در حال انجام پروژه کارشناسی ام هستم که طراحی یک وب سایت برای انجام آزمونهای اینترنتی هست
چند سوال در موردش دارم. لطفا اگه کسی هست و می تونه کمکم کنه. ممنون می شم.
1. برای ساخت لاگین، آیا این کافیه که اون چیزی که کاربر وارد می کنه را با آنچه که در دیتابیس موجوده مقایسه کنیم و در صورت یکسان بودن لاگین با موفقیت انجام بشه؟ آیا نیازی به ست کردن کوکی نیست؟
2. من اگر بخوام توی سایت سه مدل سوال مختلف داشته باشم، باید برای هر نوع سوال یه جدول جدا طراحی کنم؟ مثلا سوالات تستی، تشریحی و چند جوابی.
3. اگر بخوام یکی از فیلدهای یک جدول را به فیلد جدول دیگری متصل کنم چه کدی باید بنویسم؟ مثلا من می خوام مشخص کنم این سوال را فلان طراح، طراحی کرده. برای طراحان(اسم و مشخصات) یک جدول دارم و برای سوالات یک جدول دیگه.
4. اگر کسی بتونه کلا مفهوم کلید خارجی رو در عمل هنگامی که کدنویسی می کنیم برای من توضیح بده توی پایگاه داده، خیلی ممنون می شم.
با تشکر

1. خوب اگه کوکی رو در نظر گرفته باشی که بهتره! یعنی اول چک کنه کوکی معتبر وجود داره! اگه داشت نیازی به لاگین نباشه اتوماتیک وارد بشه

2. خوب این بستگی به این داره که بانک اطلاعاتی رو چطوری بخوای طراحی کنی ، در نظر بگیر که چه روشی مناسبتره! اما به نظرم چون هر یک ویژگی های کاملا متفاوتی دارن حتما از جدول های متفاوتی استفاده کن
مثلا برای سوالات تستی این فیلدها : سوال / گزینه اول / گزینه دوم / گزینه سوم / گزینه چهارم / گزینه درست / شماره سوال و .... برای سوالات تشریحی نیازی به یه همچین قالبی نداری و فقط سوال / جواب کفایت می کنه.

3. یه روشی بود "اینر جوین بود" که ازش استفاده می کنن. inner join اینجا توضیحش طولانیه! برو تو منابع آموزشی sql بگرد می تونی پیداش کنی. اینم یه روش که خودم استفاده کردم
PHP:
SELECT todo.*,mabhas.part,mabhas.year,mabhas.lesson FROM todo,mabhas WHERE todo.id_user = '$id' AND todo.id_part = mabhas.id
در این روش دو جدول todo و mabhas رو با هم مقایسه کردم بر اساس اینکه فیلد id_part و id برابر باشن یه مجموعه اطلاعاتی رو نشون بده.

4. در شماره 3 فکر کنم id_part یه نوع کلید خارجی به شمار میاد. البته مطمئن نیستم.
 

maede_h

عضو جدید
1. خوب اگه کوکی رو در نظر گرفته باشی که بهتره! یعنی اول چک کنه کوکی معتبر وجود داره! اگه داشت نیازی به لاگین نباشه اتوماتیک وارد بشه

2. خوب این بستگی به این داره که بانک اطلاعاتی رو چطوری بخوای طراحی کنی ، در نظر بگیر که چه روشی مناسبتره! اما به نظرم چون هر یک ویژگی های کاملا متفاوتی دارن حتما از جدول های متفاوتی استفاده کن
مثلا برای سوالات تستی این فیلدها : سوال / گزینه اول / گزینه دوم / گزینه سوم / گزینه چهارم / گزینه درست / شماره سوال و .... برای سوالات تشریحی نیازی به یه همچین قالبی نداری و فقط سوال / جواب کفایت می کنه.

3. یه روشی بود "اینر جوین بود" که ازش استفاده می کنن. inner join اینجا توضیحش طولانیه! برو تو منابع آموزشی sql بگرد می تونی پیداش کنی. اینم یه روش که خودم استفاده کردم
PHP:
SELECT todo.*,mabhas.part,mabhas.year,mabhas.lesson FROM todo,mabhas WHERE todo.id_user = '$id' AND todo.id_part = mabhas.id
در این روش دو جدول todo و mabhas رو با هم مقایسه کردم بر اساس اینکه فیلد id_part و id برابر باشن یه مجموعه اطلاعاتی رو نشون بده.

4. در شماره 3 فکر کنم id_part یه نوع کلید خارجی به شمار میاد. البته مطمئن نیستم.

بسیار ممنون از پاسختون.
جدولها رو طراحی کرده ام و دقیقا همینی شده که شما الان توضیح دادین. مرسی
بله مبحث مربوط به جوین رو هم خوندم و دقیق متوجه شدم باید چیکار کنم.
فقط یه جایی من گیر کردم.
من وقتی مثلا می خوام اون یوزری که کاربر وارد کرده را با یوزرهایی که داخل جدول موجوده مقایسه کنم، اومدم اول توی یک session که توی صفحه ام باز کرده بودم، مقدار یوزری که گاربر وارد کرده رو به این شکل ذخیره کردم :
$_SESSION["username"]=$_POST["username"];
حالا وقتی که می خوام مقایسه کنم اینطوری می نویسم:
$sql="SELECT * FROM register WHERE username=$_SESSION["username"]"; این کدی که نوشتم مربوط به بعد از اتصال به پایگاه و .. هست
اما خطا می گیره ازم. من دیگه نمی دونم چطوری باید مقداری که توی پایگاه دارم رو با مقداری که از یه فرم می گیرم مقایسه کنم. مگه همین کد صحیح نباید باشه؟
اگه این کد رو هم بگین خیلی ممنون می شم. تمام کارهای بعدی من منوط به این هست که بتونم فیلدی از داخل پایگاهم رو با چیزی که کاربر وارد می کنه مقایسه کنم.
دلیل این هم که session گرفتم اینه که این مقادیر به فایل دیگه ای غیر از اینجا منتقل می شد و من برای اینکه مقدارش رو داشته باشم فکر کردم از session استفاده کنم. نمی دونم کار درستی بوده یا نه
ضمنا کوکی رو هم که می گین نمی دونم باید چطوری ست کنم و بعد چطوری ازش استفاده کنم. خیلی مطلب در موردش خوندم اما هنوز نمی دونمی توی کدوم فایل و چه زمانی باید ست بشه و کجا باید چک بشه که این کوکی صحیح هست و یه کد خاصی رو انجام بده
با تشکر
 

syronz

عضو جدید
بسیار ممنون از پاسختون.
جدولها رو طراحی کرده ام و دقیقا همینی شده که شما الان توضیح دادین. مرسی
بله مبحث مربوط به جوین رو هم خوندم و دقیق متوجه شدم باید چیکار کنم.
فقط یه جایی من گیر کردم.
من وقتی مثلا می خوام اون یوزری که کاربر وارد کرده را با یوزرهایی که داخل جدول موجوده مقایسه کنم، اومدم اول توی یک session که توی صفحه ام باز کرده بودم، مقدار یوزری که گاربر وارد کرده رو به این شکل ذخیره کردم :
$_SESSION["username"]=$_POST["username"];
حالا وقتی که می خوام مقایسه کنم اینطوری می نویسم:
$sql="SELECT * FROM register WHERE username=$_SESSION["username"]"; این کدی که نوشتم مربوط به بعد از اتصال به پایگاه و .. هست
اما خطا می گیره ازم. من دیگه نمی دونم چطوری باید مقداری که توی پایگاه دارم رو با مقداری که از یه فرم می گیرم مقایسه کنم. مگه همین کد صحیح نباید باشه؟
اگه این کد رو هم بگین خیلی ممنون می شم. تمام کارهای بعدی من منوط به این هست که بتونم فیلدی از داخل پایگاهم رو با چیزی که کاربر وارد می کنه مقایسه کنم.
دلیل این هم که session گرفتم اینه که این مقادیر به فایل دیگه ای غیر از اینجا منتقل می شد و من برای اینکه مقدارش رو داشته باشم فکر کردم از session استفاده کنم. نمی دونم کار درستی بوده یا نه
ضمنا کوکی رو هم که می گین نمی دونم باید چطوری ست کنم و بعد چطوری ازش استفاده کنم. خیلی مطلب در موردش خوندم اما هنوز نمی دونمی توی کدوم فایل و چه زمانی باید ست بشه و کجا باید چک بشه که این کوکی صحیح هست و یه کد خاصی رو انجام بده
با تشکر

PHP:
$sql="SELECT * FROM register WHERE username=$_SESSION["username"]";

این کد خطای syntax داره . دلیلش هم واضحه. " دوم متن رو میبنده به همین دلیل سیشن اصلا حساب نمیشه اونو به شکل زیر بنویسید

PHP:
$username = $_SESSION["username"];
$sql="SELECT * FROM register WHERE username='$username'";


متد کلی کار درسته. برای این حالت معمولا از سیشن استفاده نمیشه اما کار شما غلط نیست. ست کردن کوکی هم بسیار ساده است و دستورات خاص رو داره.
برای ست کردن کوکی میتونید به شکل ساده ی زیر عمل کنید

PHP:
setcookie("TestCookie", $value, time()+3600);

TestCookie اسم کوکی مورد نظر ماست. $value هم مقداری که می خواهیم رو در کوکی ذخیره میکنه! (البته می تونیم یک آرایه رو ذخیره کنیم) و تایم آخر هم مدت زمانی که کوکی معتبر هستش رو نشون میده که بعد از اون مدت کوکی دیگه کارایی خودشو از دست میده

PHP:
echo $_COOKIE["TestCookie"];
با این دستور هم میشه اون چیزی رو که در ،TestCookie ذخیره کرد رو نشون داد. به همین سادگی.
 

maede_h

عضو جدید
PHP:
$sql="SELECT * FROM register WHERE username=$_SESSION["username"]";

این کد خطای syntax داره . دلیلش هم واضحه. " دوم متن رو میبنده به همین دلیل سیشن اصلا حساب نمیشه اونو به شکل زیر بنویسید

PHP:
$username = $_SESSION["username"];
$sql="SELECT * FROM register WHERE username='$username'";


متد کلی کار درسته. برای این حالت معمولا از سیشن استفاده نمیشه اما کار شما غلط نیست. ست کردن کوکی هم بسیار ساده است و دستورات خاص رو داره.
برای ست کردن کوکی میتونید به شکل ساده ی زیر عمل کنید

PHP:
setcookie("TestCookie", $value, time()+3600);

TestCookie اسم کوکی مورد نظر ماست. $value هم مقداری که می خواهیم رو در کوکی ذخیره میکنه! (البته می تونیم یک آرایه رو ذخیره کنیم) و تایم آخر هم مدت زمانی که کوکی معتبر هستش رو نشون میده که بعد از اون مدت کوکی دیگه کارایی خودشو از دست میده

PHP:
echo $_COOKIE["TestCookie"];
با این دستور هم میشه اون چیزی رو که در ،TestCookie ذخیره کرد رو نشون داد. به همین سادگی.
دست شما درد نکنه. راستش من اون مدلی هم که شما گفتین نوشته بودم و جواب نگرفته بودم
اما حالا راه حل رو فهمیدم باید اینطوری بنویسم:

PHP:
[$sql="SELECT * FROM member WHERE username= ' ".$_SESSION["username"]." ' ";

اینو نوشتم که اگه احیانا کسی مشابه من مشکلی داشت، و با اون کدی که شما نوشتید هم احیانا جواب نگرفت، بتونه مشکلشو حل کنه. یه نصف روز وقتمو گرفت بیخودی.
در مورد کوکی هم خیلی ممنون از توضیح کاملتون و اینکه وقت گذاشتید.
مشکلم اینه که نمی دونم کدومش و کجا بنویسم؟ یعنی ست کردنش رو توی اون فایلی بنویسم که ورودی ها رو بهش می فرستیم؟
و توی هر فایلی که دارم کد می نویسم هم می تونم اون رو بگیرم و ازش استفاده کنم؟ یعنی مثلا می خوام اگر کوکی متغلق با کاربر خاصی هست، صفحه ی خاصی رو بهش نشون بده
یعنی محیط لاگین برای مدیر و برای کاربر عادی فرق داشته باشه. باید با همین کوکی ها اینو بفهمم دیگه؟ درسته؟
بعد اینکه مثلا کاربری که لاگین هست و داره توی سایت صفحات رو می بینهف من برای هر صفحه باید این کوکی رو فرابخونم و باز تست کنم که اگر مال این کاربر هست صفحه رو براش بیار، وگرنه برو به صفحه لاگین؟
بازم متشکرم که جوابم رو دادین. خیلی کمکم کردین.
 

syronz

عضو جدید
دست شما درد نکنه. راستش من اون مدلی هم که شما گفتین نوشته بودم و جواب نگرفته بودم
اما حالا راه حل رو فهمیدم باید اینطوری بنویسم:

PHP:
[$sql="SELECT * FROM member WHERE username= ' ".$_SESSION["username"]." ' ";

اینو نوشتم که اگه احیانا کسی مشابه من مشکلی داشت، و با اون کدی که شما نوشتید هم احیانا جواب نگرفت، بتونه مشکلشو حل کنه. یه نصف روز وقتمو گرفت بیخودی.
در مورد کوکی هم خیلی ممنون از توضیح کاملتون و اینکه وقت گذاشتید.
1 . مشکلم اینه که نمی دونم کدومش و کجا بنویسم؟ یعنی ست کردنش رو توی اون فایلی بنویسم که ورودی ها رو بهش می فرستیم؟
2. و توی هر فایلی که دارم کد می نویسم هم می تونم اون رو بگیرم و ازش استفاده کنم؟ یعنی مثلا می خوام اگر کوکی متغلق با کاربر خاصی هست، صفحه ی خاصی رو بهش نشون بده
3. یعنی محیط لاگین برای مدیر و برای کاربر عادی فرق داشته باشه. باید با همین کوکی ها اینو بفهمم دیگه؟ درسته؟
4. بعد اینکه مثلا کاربری که لاگین هست و داره توی سایت صفحات رو می بینهف من برای هر صفحه باید این کوکی رو فرابخونم و باز تست کنم که اگر مال این کاربر هست صفحه رو براش بیار، وگرنه برو به صفحه لاگین؟
بازم متشکرم که جوابم رو دادین. خیلی کمکم کردین.

1. بله توی همون فایل.
2. بله در هر فایلی می تونید اون رو بگیرید! همون طور که توانایی گرفتن اطلاعات مربوط به سیشن رو دارید
3. اینجا قضیه یکم فرق میکنه، در برخی از سایت ها آدمین یک کاربر عادیه و توسط متد دیگه ای acl سطح دسترسی ها و ... اعمال میشه
4. بله. می تونید اینکار رو بکنید. البته کاربری که لاگین هست شما می تونید با استفاده از سیشن هم سطح دسترسی ها رو تعین کنید، شخصا در این موارد سیشن رو ترجیح میدم.

خوشحال میشم بتونم کمکتون کنم
 

maede_h

عضو جدید
1. بله توی همون فایل.
2. بله در هر فایلی می تونید اون رو بگیرید! همون طور که توانایی گرفتن اطلاعات مربوط به سیشن رو دارید
3. اینجا قضیه یکم فرق میکنه، در برخی از سایت ها آدمین یک کاربر عادیه و توسط متد دیگه ای acl سطح دسترسی ها و ... اعمال میشه
4. بله. می تونید اینکار رو بکنید. البته کاربری که لاگین هست شما می تونید با استفاده از سیشن هم سطح دسترسی ها رو تعین کنید، شخصا در این موارد سیشن رو ترجیح میدم.

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

syronz

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

نه ! شما اسم کوکی رو بنویسید به اطلاعاتش دسترسی پیدا میکنید (در صورتی که محدود به دامنه ی خاصی نباشد)
اونی که نوشتم قضیه اش فرق میکنه به سبک ساخت بر میگرده! فکر کنم شما می خواید یک صفحه ی آدمین داشته باشید برای تغییر محتوا و ... در این حالت می تونید دو نوع جدول یوسر داشته باشید یه نوع که یوسر عادی رو در خودش نگهداری میکنه و جدول دیگه برای نگهداری اطلاعات آدمین ها. در این حالت کفایت میکنه. و کنترل دسترسی ها اعمال میشه. البته می تونید همه ی کاربران اعم از عادی و ادمین رو در یک جدول ذخیره کنید و بوسیله ی فیلدی ادمین بودن یوسر رو مشخص کنید. یعنی به اضای هر باری که یوسر بخواهد به صفحات کنترلر ادمین دسترسی داشته باشد با توجه به اطلاعات موجود در سیشن یا کوکی چک شود که اجازه ی دسترسی به این شخص داده می شود یا خیر ، یک تبادل با بانک اطلاعاتی برای چک کردن فیلد مشخصی.
 

IT.88

عضو جدید
سلام . ببخشيد من يه سوال داشتم خواهش ميكنم راهنماييم كنيد من تازه ميخوام php ياد بگيرم ولي نميدونم از كجا شروع كنم . كد php رو در چه برنامه اي بايد بنويسم تا اجرا شه .؟؟؟؟؟؟ wamp sever هم نصب كردم . خواهش ميكنم كمكم كنيد
 

syronz

عضو جدید
سلام . ببخشيد من يه سوال داشتم خواهش ميكنم راهنماييم كنيد من تازه ميخوام php ياد بگيرم ولي نميدونم از كجا شروع كنم . كد php رو در چه برنامه اي بايد بنويسم تا اجرا شه .؟؟؟؟؟؟ wamp sever هم نصب كردم . خواهش ميكنم كمكم كنيد

سلام.

اول از همه xampp رو نصب کن.

http://xampp.en.softonic.com/

بعد از نصب کامپیوترت به یک سرور محلی تبدیل میشه.
XAMPP Control Panel میاد رو دسکتاپ کامپیوترت یا تو استارت منو. اونو اجرا کن و آپاچی و mysql رو چک کن که در حالت start هستن یا stop. ، اگه در حال اجرا نبودن اجراشون کن

مرورگر اینترنتت (موزیلا یا اینترنت اکسپلورر) رو فعال کن و این ادرس رو بنویس
http://localhost
اگه کار کرد و صفحه ی اول xampp رو دیدی یعنی کار میکنه! از منوی سمت راست phpinfo() رو کلیک کن ببین اطلاعات پی اچ پی ات چیه.

-------

از این به بعد اگه خواستی پروژه ای چیزی بسازی وارد این مسیر شو xampp\htdocs
فایل های خودت رو اونجا داخل پوشه ای که ساختی کپی کن و بعدش از طریق مرور گرت بهش دسترسی پیدا میکنی.
در ضمن یه کتاب پیدا کن. بدون کتاب سخته
موفق باشی
 

maede_h

عضو جدید
سلام
من یه سوال دیگه در مورد پروژه ام داشتم
امیدوارم یکی کمکم کنه
فرض کنید من نام یک یوزر رو آوردم توی صفحه نمایش دادم (از توی جدول) حالا می خوام وقتی روی لینک اسمش کلیک می کنم ، بره مشخصات کاملشو از توی جدول بیاره. این اتصال به چه شکل باید انجام بشه؟ به سیشن نیاز دارم؟
دوم اینکه چطوری می شه اصلاعات یه جدول رو به صورت تصادفی به نمایش در آورد؟
با تشکر از دوستان
 

syronz

عضو جدید
سلام
من یه سوال دیگه در مورد پروژه ام داشتم
امیدوارم یکی کمکم کنه
فرض کنید من نام یک یوزر رو آوردم توی صفحه نمایش دادم (از توی جدول) حالا می خوام وقتی روی لینک اسمش کلیک می کنم ، بره مشخصات کاملشو از توی جدول بیاره. این اتصال به چه شکل باید انجام بشه؟ به سیشن نیاز دارم؟
دوم اینکه چطوری می شه اصلاعات یه جدول رو به صورت تصادفی به نمایش در آورد؟
با تشکر از دوستان

این کار به چندین روش مختلف می تونه انجام بشه. یکی از کارها می تونه تجزیه و تحلیل URL و نمایش محتوای مناسب برای صفحه است. من وقتی روی اسم شما کلیلک کنم به این صفحه هدایت می شم
http://www.www.www.iran-eng.ir/member.php/490682-maede_h
می تونیم این رو انالیز کنیم و تکه ی آخر یعنی 490682-maede_h رو تشخیص بده بر اساس اون فایل member.php اطلاعات مورد نظر رو از بانک اطلاعاتی استخراج کنه و به نمایش بزاره.
برای دسترسی به اطلاعات URL میتونید از دستورات زیر استفاده کنید
PHP:
$url = $_SERVER['REQUEST_URI'];
$arr_url = explode('/',$url);
$account_name = end($arr_url);
$query ="SELECT * FROM tablename WHERE name = '$account_name' ";

خط اول اطلاعات URL را میگیرد. خط دوم متن ادرس را بر اساس کاراکتر / جدا میکند و هر کدام را در یک خانه ی آرایه قرار میدهد. در اینجا نام 490682-maede_h در خانه ی آخر آرایه قرار میگیرد
خط سوم به نام دسترسی پیدا میکند و در خط آخرهم کوئری مورد نظر برای استخراج اطلاعات! این روش در حالتی که سایت به صورت روتر طراحی شده باشه خوب جواب میده

روش دیگه اینه که لینک به صورت فرستادن مقادیر تحت روش GET باشه. به این صورت که لینک رو در حالتی مثل زیر می نویسیم
HTML:
<a href="member.php?account_name=490682-maede_h" > maede_h </a>
بعدش داخل فایل member.php دستورات لازم برای دسترسی به اطلاعات maede_h رو می نویسیم.
PHP:
$account_name = $_GET['account_name'];

روش دوم روش خوبیه می تونید از اون استفاده کنید. پس در این حالت به سیشن نیازی ندارید! و فکر کنم در این موارد سیشن کار خاصی نتونه انجام بده.

برای اینکه اطلاعات یک جدول رو به صورت تصادفی نشون بدید باز راههای مختلفی وجود داره، یکی از راه ها اینه که شما از id جدول استفاده کنید با استفاده از تابع rand() عدد تصادفی رو تولید کنید و با دستورات مربوطه فیلد متناظر با این عدد را با توجه به id جدول استخراج کنید.
 
آخرین ویرایش:

maede_h

عضو جدید
توضیحاتتون عالی و کامل بودند. بله از روش دوم باید استفاده کنم فکر کنم.
دقیقا سشن هیچ کاری نتونست بکنه. چون فقط داده آخرو نگه می داشت و هر دفعه کلیک روی یه اسم می گردم، داده های آخرین رکورد جدول رو می اورد.
حالا یه سوال اینجا برام پیش میاد:
مثلا من توی فایل اولم لیست داده های موجود در جدول خاصی رو با استفاده از اسمشون نمایش می دم. (با استفاده از while ) خب حالا می خوام که تمام این اسامی به صورت لینک باشن و من روی هر کدوم که کلیک می کنم بره اطلاعات همون رو بیاره
این دستوری که گفتین رو کجا باید اضافه کنم؟ توی خود همین فایل؟ داخل حلقه باید بگذارم؟
در مورد دومی هم خیلی راهکار خوبی هست فکر کنم جواب می ده . خیلی خیلی ازتون ممنونم.
 

maede_h

عضو جدید
سلام. یه سوال دیگه هم می پرسم با اجازتون
من یه دونه drop down list ساختم با استفاده از یه حلقه while که میاد اسامی رکوردهای یک جدول رو برامون میاره. یعنی هر بار یکی از رکوردها رو می گیره و می ذاره به جای یکی از ایتمهای لیست.
خب حالا من چطوری باید وقتی کاربر یکی از این اسامی رو انتخاب می کنه، کاری کنم که دقیقا همین اسم توی فرمم سابمیت بشه. یعنی می خوام توی صفحه بعدی اون رو با GET بگیرم. اما فقط داده آخر برام می مونه وقتی از حلقه While بیرون میاد. یعنی تنها آخرین داده است که فرستاده می شه برای $_GET
چیکار باید کرد؟ خیلی نیاز به جواب این سوال دارم. پروژه ام به خاطرش متوقف شده و پیش نمی ره.... :(
 

syronz

عضو جدید
توضیحاتتون عالی و کامل بودند. بله از روش دوم باید استفاده کنم فکر کنم.
دقیقا سشن هیچ کاری نتونست بکنه. چون فقط داده آخرو نگه می داشت و هر دفعه کلیک روی یه اسم می گردم، داده های آخرین رکورد جدول رو می اورد.
حالا یه سوال اینجا برام پیش میاد:
مثلا من توی فایل اولم لیست داده های موجود در جدول خاصی رو با استفاده از اسمشون نمایش می دم. (با استفاده از while ) خب حالا می خوام که تمام این اسامی به صورت لینک باشن و من روی هر کدوم که کلیک می کنم بره اطلاعات همون رو بیاره
این دستوری که گفتین رو کجا باید اضافه کنم؟ توی خود همین فایل؟ داخل حلقه باید بگذارم؟
در مورد دومی هم خیلی راهکار خوبی هست فکر کنم جواب می ده . خیلی خیلی ازتون ممنونم.

دو فایل php طراحی کنید. در فایل list.php و در داخل حلقه کد زیر رو بنویسید.
PHP:
echo "<a href='showuser.php?name=$user_name' > $username </a> ";

البته شما چون داخل حلقه هست شاید کد نویسیتون کمی متفاوت باشه. بعدش داخل فایل showuser.php برای دسترسی به اطلاعات این کد رو می نویسید.
PHP:
$usesr_name = $_GET['name'];
$query = "SELECT * FROM tbluser WHERE username = '$user_name' ";

به همین سادگی!
 

syronz

عضو جدید
سلام. یه سوال دیگه هم می پرسم با اجازتون
من یه دونه drop down list ساختم با استفاده از یه حلقه while که میاد اسامی رکوردهای یک جدول رو برامون میاره. یعنی هر بار یکی از رکوردها رو می گیره و می ذاره به جای یکی از ایتمهای لیست.
خب حالا من چطوری باید وقتی کاربر یکی از این اسامی رو انتخاب می کنه، کاری کنم که دقیقا همین اسم توی فرمم سابمیت بشه. یعنی می خوام توی صفحه بعدی اون رو با GET بگیرم. اما فقط داده آخر برام می مونه وقتی از حلقه While بیرون میاد. یعنی تنها آخرین داده است که فرستاده می شه برای $_GET
چیکار باید کرد؟ خیلی نیاز به جواب این سوال دارم. پروژه ام به خاطرش متوقف شده و پیش نمی ره.... :(

کاش کدهاتونو اینجا می نوشتید تا بهتر متوجه بشم!
این به احتمال زیاد به ایراد در کدهای HTML شما بر میگرده مثلا یه حالتی شبیه زیر
HTML:
<select name="droplist">
<option value="value 3" >گزینه اول</option>
<option value="value 3">گزینه دوم</option>
<option value="value 3">گزینه سوم</option>
</select>
در این حالت ما هر گزینه ای رو هم انتخاب کنیم باز اطلاعات مربوط به گزینه ی آخر برای فایل آنالیزور فرستاده میشه! چون value رو برای هر آپشن جداگانه ننوشتیم. البته شاید ایراد از جای دیگه هم باشه ولی. برای گرفتن اطلاعات مربوط به یک لیست کشویی در مقصد اینطوری مینویسیم
PHP:
$value = $_GET['droplist']

---------
اگه منظورتون این بوده که کدهای مربوط به لیست کشویی ساخته نمیشن از کدهای زیر استفاده کنید
PHP:
echo '<select name="droplist">';
for($i=1;$i<4;$i++)
echo "<option value='".$arr[$i]."' > ......

بهتره اون تکه کدی که مشکل دارید رو اینجا بنویسید ... مخصوصا برای html که دلایل زیادی روی درست کار نکردنشون تاثیر میزاره
 

maede_h

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

PHP:
echo "<input type=checkbox name=testname[] value=". $info['TestName'].">" .$info['TestName'];

البته این برای چک باکسهاست که من متوجه شدم اصلا استفاده از drop down list برای نیاز من درست نبود. چون من می خواستم بیش از یک مقدار هم بشه انتخاب کرد.
این کد باعث می شه که هر تعداد چک باکسی که توسط کاربر انتخاب بشه همه اش توی آرایه testname ذخیره می شه و بعد با POST که بفرستیم، تمام مقادیر رو در خودش داره و می شه با $value که اندیس آرایه اش از 0 شروع می شه، مقادیر رو استخراج کرد.
 

maede_h

عضو جدید
سلام
من با عرض معذرت باز هم سوال داشتم :)
من می خوام که تعدادی سوال برای کاربر نمایش بدم
حالا این سوالات مثلا 10 تاست. باید هر موقع که زمانش تموم شد، خودش بره سر سوال بعدی. چه کاربر جواب بده و چه نه

یه دستوری پیدا کردم که برای اینه که مثلا اگه 10 تا داده می خوایم نمایش بدیم، هرچند تایی که خودمون می خوایم رو توی یک صفحه نشون می ده. استفاده اش کردم و کار کرد. حالا می خوام ببینم می تونم از همون استفاده کنم که هر سوالی رو توی یه صفحه نشون بده؟ اما نمی دونم چطوری دکمه ی next براش بذارم که بره صفحه بعد سوال بعدی رو نشون بده
کدش این هست، البته به شرطی که فرض کنیم تعداد کل در $row هست:
PHP:
for ($i=1; $i<=$row[0]; $i++)                 {       
          echo "<a href='activetest.php?page=".$i."'>".$i."</a> ";                };         
       if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };       
          $start_from = ($page-1) * 1;

الان این کد چون عدد 1 رو گذاشتم اون آخر، هر یک رکورد رو توی یک صفحه نشون می ده
کاری که می کنه اینه که تعداد صفحات رو زیر صفحه چاپ می کنه و روی هر عددی که کلیک کنیم می ره به همون صفحه. من می خوام این رو چاپ نکنه بلکه یه دکمه سابمیت داشته باشیم که با زدن اون بریم صفحه بعدی.
این جزو سوالات آخرم بود دیگه فکر کنم. با عرض تشکر فراوان :gol:
 

Similar threads

بالا