PDA

View Full Version : سوال: ارسال تصاویر ساخته شده با php به مرورگر



mr.wolf
شنبه 21 اسفند 1389, 12:35 عصر
با سلام
من توسط کد php یک تصویر ساختم که میخوام این تصویر روی مرورگر نمایش داده بشه
منظورم اینه که تصویر ساخته شده نباید جایی روی هاست ذخیره بشه و فقط باید نمایش داده بشه
همه چیز درست کار میکنه
فقط :::::::::::::
توی صفحه ای که این تصویر قراره نمایش داده بشه کلی اطلاعات چاپ شده و زمانی که میخواد این تصویر رو توسط دستور


header("Content-type: image/gif");

به مرورگر ارسال کنه خطا میده:


Warning: Cannot modify header information - headers already sent by


فکر میکنم این خطایی که میده واسه این باشه که قبل این دستور کلی مطلب توی صفحه چاپ شده.
ولی خب چاره ای نیست اون مطالب باید باشن نمیشه اونا رو حذف کرد.
دوستان راه حلی به نظرشون میرسه ؟
مثلا آیا این دستور

header("Content-type: image/gif");

معادل HTML یا ... نداره که از اون استفاده کنیم و درگیر این خطاها نشیم ؟:افسرده:

xoogle.ir
شنبه 21 اسفند 1389, 12:45 عصر
عکس رو در یک فایل دیگه مثلا sample.php تولید کنید و در اون صفحه ای که میخواهد نمایش داده بشه به این شکل عمل کنید.


<img src="sample.php" />

parselearn
شنبه 21 اسفند 1389, 12:47 عصر
شما نميتونيد header رو تغيير بديد
وقتي در صفحه اي متون هم وجود دارد آن صفحه به عنوان html در نظر گرفته ميشود. و مسلما قابليت تبديل به تصوير را ندارد
يك نمونه اينجا هست براي راهنمايي
http://barnamenevis.org/showthread.php?265326-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%88-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-php-%28%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%85%D8%B3%DB%8C%D8%B1-%DB%8C%D8%A7-%D8%AE%D9%88%D8%AF-%D8%B9%DA%A9%D8%B3%29&highlight=

mr.wolf
شنبه 21 اسفند 1389, 13:13 عصر
مرسی از توجهتون
ولی یک نکته دیگه هم هست
ببینین دوستان داستان از این قراره:
من دارم یک captcha البته به روشی دیگه درست می کنم.

من یک فایل php دارم مثلا به نام : image.php که توی اون یک کد خاص تولید میکنم . بعد توسط php یک تصویر درست میکنم و اون کد رو داخل تصویر نمایش میدم.
(هر باری که این image.php فراخوانی بشه اون کد تغییر میکنه.).
در ضمن اون کد علاوه بر تصویر، بعنوان یک :


<input name="cod" type="hidden" value="<?php echo cod ?>

هم آماده میشه. البته ناگفته نمونه که این کد cod قبل اینکه بعنوان value برای این باکس باشه، توسط یک الگوریتم کدگذاری میشه.
حالا کاربر باید بیاد و اون کدی که توی تصویر هست رو داخل باکس مربوطه وارد کنه و بعد روی دکمه send کلیک کنه.

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


عکس رو در یک فایل دیگه مثلا sample.php تولید کنید و در اون صفحه ای که میخواهد نمایش داده بشه به این شکل عمل کنید.

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

mtchabok
شنبه 21 اسفند 1389, 18:45 عصر
کاری که باید بکنید اینه که یه فایل فقط و فقط برای تولید عکس درست می کنید که در اون کدامنیتی رو تولید و در سشن و یا هر چیز دیگه ای قرار میدید تا در صفحات دیگه بهش دسترسی داشته باشید .
و در صفحه ای که فرم اصلی تون هس اون صفحه تولید عکس رو مثل یه عکس با بلوکهای html فراخوانی می کنید .
در صفحه ای که عمل پردازش فرم تون رو انجام میده کد وارد شده توسط کاربر و کد موجود در سشن رو بررسی و نتیجه رو اعلام می کنید .
اکثر سیستمها از همین روش استفاده میکنن .

xoogle.ir
شنبه 21 اسفند 1389, 19:32 عصر
من باید کدی که توی اون فایل sample.php تولید شده رو هم یه جوری واسه صفحم مشخص کنم که بعد اون بیاد با کد وارد شده از طرف کاربر مطابقت بده.
دوستان لطفا راهنمایی کنین
کدی که تولید کردی رو توی session قرار بده.
حالا چرا میخای captcha درست کنی به سبکی متفاوت ؟؟؟؟ captcha های فعلی پاسخگوی شما نیستند ؟

mr.wolf
دوشنبه 23 اسفند 1389, 20:49 عصر
خب دوستان ممنونم از راهنمایتون

حالا چرا میخای captcha درست کنی به سبکی متفاوت ؟؟؟؟ captcha های فعلی پاسخگوی شما نیستند ؟ نمیدونم چرا ولی فکر میکنم دلیلش نوعی کنجکاوی باشه تا از طریق نامعمول یک کار رو انجام بدم !

خب دوستان من به نتیجه رسیدم
اینجا میذارم شاید واسه شمام جالب باشه

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


1 ---> <input type="hidden" name="cod" value="<?php echo $cod ?> " >
2---> <img src="captcha.php?c=<?php echo $cod ?>" >
این که مشخصه چی شد!.
حالا میام توی فایل cpatcha کد ارسال شده رو دیکود میکنم، به عدد اولیه میرسم و بعد اون رو نمایش میدم.
کاربر فرم رو پر میکنه، عدد وارد شده در باکس ورودی captcha با عدد ارسال شده توسط باکس مخفی ( البته بعد دیکود کردن این) مقایسه میشه و اگه برابر بودن فرم ثبت میشه
دیگه نیاز نیست از session هم استفاده بشه.
به همین سادگی به همین خوشمزگی!