कैसे मैन्युअल डालें एक समूह प्रयोक्ता के एक SMF फोरम में करने के लिए PHP का प्रयोग

SMF (सरल मशीन फोरम), जुलाई पर ShortLikeAFox द्वारा PHP 30, 2008 में तैनात

यह Tutorial आप अपने पद से परिचित हैं ग्रहण: कैसे मैन्युअल डालें एक प्रयोक्ता के लिए एक SMF फोरम PHP का प्रयोग में.

मैं हाल ही में 800 या तो हिल की चुनौती का सामना करना पड़ा एक SMF फोरम में एक डेटाबेस से बैंड. मैं समस्याओं जब इस कदम है कि मैं पहली पोस्ट में कवर नहीं किया बनाने की एक जोड़ी का सामना करना पड़ा:

  1. इस बैंड के नाम चरित्र कदम से एक चरित्र के लिए SMF डेटाबेस में सुरक्षित होने की गारंटी नहीं थे. तो नाम किसी तरह का समारोह संशोधित नियुक्त किया था.
  2. इस बैंड पासवर्ड नहीं है. तो पासवर्ड की पीढ़ी के कुछ प्रकार की जरूरत है नियोजित किया जाना है.

मैं इस बारे में सभी फोरम में बैंड के पंजीकरण की गई यह कदम इस तरह एक छोटे से चला गया:

ओपन के बैंड डाटाबेस

प्रत्येक (बैंड के लिए) (

उत्पन्न पासवर्ड

नाम बदलें बैंड "सुरक्षित" नाम के साथ

पकड़ो और उत्पन्न जानकारी उपयोगकर्ता डालने की जरूरत

डालें बैंड में smf_members

बैंड के पासवर्ड के साथ एक ईमेल भेजें

)

मुझे लगता है कि सूचना शामिल उपयोगी था बैंड डेटाबेस: से उपलब्ध था, bandEmail, bandName और bandWebsite

यहाँ मैं करता था कूटशब्द पीढ़ी समारोह है (blatently totallyphp.co.uk से) उठाए:

समारोह createRandomPassword () (

$ chars = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand (() microtime डबल () * 1000000);

$ i = 0;

$ = "पास;



($ जब मैं <= 7) (

33; $ NUM = रैंड ()% 33;

$ tmp = substr ($ chars, $ NUM, 1);

$ पास = $ पास. $ tmp;

$ i + +;

)

$ वापस पास;

)

कूटशब्द यहाँ अपेक्षाकृत कमजोर बनाया है, लेकिन यह काफी अपने उद्देश्यों के लिए अच्छा था. कोई पासवर्ड पीढ़ी समारोह यहां ठीक काम करेगा. अगर वे इसे बदलने के लिए नहीं चुना के लिए सदस्यों को याद करने की है क्योंकि यह आसान होगा मैं यह एक चुना.

कैसे करना है:

/ / पहले बैंड डेटाबेस से कनेक्ट
$ उपयोगकर्ता नाम = "bandUsername";
$ मेजबान = "bandHost";
$ mypassword = "bandPassword";
$ db_name = "bandDatabase";

("cannot connect to server"); "मेजबान (" $ mysql_connect, "$ उपयोगकर्ता नाम", "$ mypassword") या मर ( "सर्वर से") कनेक्ट नहीं कर सकते हैं;
("cannot select DB"); mysql_select_db ( "$ db_name") या मर ( "") DB का चयन नहीं कर सकते हैं;

/ / अब डेटाबेस से सभी बैंड के हड़पने
$ क्वेरी = "चुनें * से allBands";
$ बैंड = mysql_query ($ क्वेरी) या मर ( "Config त्रुटि 2222b");
$ userRows = mysql_num_rows ($ बैंड);

/ / अब smf DB से कनेक्ट करने देता है
$ मेजबान = "smfhost"; / / मेजबान नाम
$ उपयोगकर्ता नाम = "smfuser; / / MySQL प्रयोक्ता नाम
$ mypassword = "smfpassword"; / / MySQL पासवर्ड
$ db_name = "smfdatabase"; / / डाटाबेस नाम

("cannot connect to server"); "मेजबान (" $ mysql_connect, "$ उपयोगकर्ता नाम", "$ mypassword") या मर ( "सर्वर से") कनेक्ट नहीं कर सकते हैं;
("cannot select DB"); mysql_select_db ( "$ db_name") या मर ( "") DB का चयन नहीं कर सकते हैं;

/ / $ vaild_chars उपयोगकर्ता नाम के लिए अनुमति दी पात्रों की सरणी होने जा रही है. मैं केवल अक्षर और अंक की अनुमति देने का फैसला किया. वहाँ है कि एक समस्या उत्पन्न नहीं होती इस्तेमाल किया जा सकता है अन्य अक्षर हैं, पर शैली कारणों से मैं केवल अक्षर और अंक के साथ जाने का फैसला किया
$ valid_chars = "abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9";
$ valid_chars विस्फोट = ( "", $ valid_chars);

/ / अब हम पाश के लिए प्रत्येक बैंड के माध्यम से की जरूरत है

){ i = 0 ($ के लिए; $ i <userRows $, $ i + +) (

($bands)){ ($ यदि पंक्ति = mysql_fetch_assoc ($ बैंड)) (

/ / Extract बैंड जानकारी
उद्धरण ($ पंक्ति);
/ / बैंड के लिए एक पासवर्ड बनाएँ
$ realPassword = createRandomPassword ();
/ / मैं अपनी Debugging के हिस्से के रूप में और bandname और पासवर्ड गूंज के रूप में काम करता है तो मैं इस समारोह देख सकते हैं का चुनाव
गूंज ( "<br/> $ bandName - $ realPassword");
$ newBand = "";
बैंड नाम पर हम अगर डॉलर से valid_chars एक वैध चरित्र मैच देखने के लिए देखने के लिए जा रहे हैं एक पत्र / / के लिए. ऐसा लगता है कि हम इसे से मुक्त करने के लिए जा रहे हैं नहीं है और बैंड नाम truncate
($bandName); $j ++ ){ ($ j = 0; $ j <strlen ($ bandName); $ j + +) (के लिए

($band[$j])); $ Temp = str_replace ($ valid_chars, "एक्स", strtolower ($ बैंड [$ j]));
($ अगर temp == "एक्स")

$ = $ newBand newBand. $ बैंड [$ j];

)
/ / मैं मैं पुराने नाम और पासवर्ड की गूंज एक ही कारण के लिए नया नाम गूंज
( "- $ newBand") गूंज;
/ / हम नए बैंड का नाम है .... अब हम इस डाटाबेस में डालने के लिए की जरूरत को जानकारी buliding शुरू करते हैं ...
$ = $ newBand memberName;
$ = $ newBand realName; / / मैं असली नाम और सदस्य के नाम एक ही निर्धारित किया है. अगर वे चाहते हैं यह बैंड इसे बदल सकते हैं
$ emailAddress = $ bandEmail;
$ websiteUrl = $ bandWebsite; / / जब से मैं भी उन्हें दर्ज कर सकते हैं इस बैंड 'वेबसाइटों है
$ = $ newBand websiteTitle;
$ = 1 is_activated;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ कूटशब्द = sha1 (strtolower ($ memberName). $ realPassword); / / पासवर्ड एन्क्रिप्टेड किया जाना चाहिए

/ / इस SMF डेटाबेस में एक ही नाम के साथ यकीन है कि उनके isn'ta सदस्य बनाओ. हम दो बार गलती से किसी को भी प्रवेश नहीं करना चाहता हूँ
$ क्वेरी = "चुनें * से" memberName कहाँ memberName = '$ smf_members;
("Config Error 2222343242b"); $ परिणाम = mysql_query ($ क्वेरी) या मर ( "Config त्रुटि 2222343242b");
$ nrows = mysql_num_rows ($ परिणाम);

यदि सदस्य का नाम मिला है / / कुछ नहीं कर
($ nrows> 0) () अगर

और (

/ / यदि उपयोगकर्ता को पहले ही मंच के लिए साइन अप नहीं है तो करते हैं और एक ईमेल भेज ....
$ क्वेरी = "घुसाएँ को smf_members (, emailAddress, ID_POST_GROUP, websiteUrl passwd, websiteTitle) मान ( '$ is_activated realName memberName memberName', '$' realName, '$' emailAddress, '$' is_activated, '$ ID_POST_GROUP' , '$ कूटशब्द', '$' websiteUrl, '$ websiteTitle') ";

("Config Error 2232 "); $ परिणाम = mysql_query ($ क्वेरी) या मर ( "Config त्रुटि 2232");

/ / अब हम बैंड को एक ईमेल भेज करने की आवश्यकता है
$ करने के लिए = $ emailAddress;
$ विषय = "आपका फोरम उपयोगकर्ता नाम और पासवर्ड";

/ / से
$ हेडर = "से: मुझे <me@mysite.com>";

/ / आपका संदेश
$message.="Your login and password are listed below. You can change either at anytime. If you don’t want to participate in our forums, that’s no problem. Just never log in and it will be like nothing ever happened . \ r \ n ";
$ संदेश .= "प्रयोक्ता नाम: $ memberName पासवर्ड: $ realPassword \ r \ n";

/ / ईमेल भेजने
$ sentmail = मेल ($, $ विषय, $ संदेश, $ हेडर) करने के लिए;
($ sentmail) यदि

गूंज ( "- हाँ!");
/ / यह हमारी गूंज के अंतिम हिस्सा है. इस "हाँ!" अगर एक ईमेल भेजा है ही मुद्रित किया जाएगा. तो एक पूरा प्रिंटआउट रेखा से कुछ इस तरह दिखेगा:
/ / एडम संघर्ष - 4s6vsxag - AdamStrife - हाँ!

)

)
)

कैसे मैन्युअल डालें एक प्रयोक्ता के लिए एक SMF फोरम में PHP का प्रयोग

SMF (सरल मशीन फोरम), जुलाई पर ShortLikeAFox द्वारा PHP 28, 2008 में तैनात

यह विशिष्ट उदाहरण SMF 1.1.5 के लिए है. मैं इसे किसी भी दूसरे संस्करण के साथ काम करेंगे गारंटी नहीं दे सकते.

तो क्या आप सरल मशीन फोरम सॉफ्टवेयर चलाने और स्वयं एक प्रयोक्ता प्रवेश करना चाहते हैं? कोई समस्या नहीं है. मैं इस समस्या को बहुत खास लगता है, लेकिन पता विचारों यहाँ मंचों और अन्य डेटाबेस Wordpress जैसे सॉफ्टवेयर संकुल संचालित अन्य प्रकार के लिए अनुकूलित किया जा सकता है के बारे में बताया. इससे पहले कि हम वास्तव में यह कैसे करना पड़ जाना है, ले कैसे सरल मशीन Forums उपयोगकर्ता का ट्रैक रखता है पर एक नज़र करते हैं. इस SMF डेटाबेस में एक मेज कहा जाता है smf_members. यह संरचना smf_members इस तरह दिखता है:

मैदान प्रकार अशक्त

कुंजी चूक अतिरिक्त
ID_MEMBER mediumint (8) अहस्ताक्षरित NO PRI Null auto_increment
memberName varchar (80) NO एमयूएल
dateRegistered int (10) अहस्ताक्षरित NO एमयूएल 0
पोस्ट mediumint (8) अहस्ताक्षरित NO एमयूएल 0
ID_GROUP smallint (5) अहस्ताक्षरित NO एमयूएल 0
lngfile tinytext NO एमयूएल
lastLogin int (10) अहस्ताक्षरित NO एमयूएल 0
realName tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list पाठ NO
pm_ignore_list पाठ NO
messageLabels पाठ NO
passwd varchar (64) NO
emailAddress tinytext NO
personalText tinytext NO
लिंग tinyint (4) अहस्ताक्षरित NO 0
जन्मतिथि तिथि NO एमयूएल 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
स्थान tinytext NO
ICQ tinytext NO
AIM varchar (16) NO
YIM varchar (32) NO
MSN tinytext NO
hideEmail tinyint (4) NO 0
showOnline tinyint (4) NO 1
timeFormat varchar (80) NO
हस्ताक्षर पाठ NO
timeOffset फ्लोट NO 0
अवतार tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) अहस्ताक्षरित NO 0
karmaGood smallint (5) अहस्ताक्षरित NO 0
usertitle tinytext NO
notifyAnnouncements tinyint (4) NO 1
notifyOnce tinyint (4) NO 1
notifySendBody tinyint (4) NO 0
notifyTypes tinyint (4) NO 2
memberIP tinytext NO
memberIP2 tinytext NO
secretQuestion tinytext NO
secretAnswer varchar (64) NO
ID_THEME tinyint (4) अहस्ताक्षरित NO 0
is_activated tinyint (3) अहस्ताक्षरित NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) अहस्ताक्षरित NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) अहस्ताक्षरित NO एमयूएल 0
totalTimeLoggedIn int (10) अहस्ताक्षरित NO 0
passwordSalt varchar (5) NO

खेतों हम ध्यान देने की जरूरत है:

  • memberName - स्व Explanitory.
  • dateRegistered - है, लेकिन जरूरी नहीं है यदि तारीख 31 दिसंबर 1969 के रूप में प्रदर्शित करता है पंजीकृत बाहर भर नहीं है. दिनांक एक युग टाइमस्टैम्प के रूप में सहेजा है. कैसे अपने सिर में timestamps की गणना करने के लिए नहीं पता? कोई समस्या नहीं है. मैं यहाँ पाया मुफ्त जनरेटर का उपयोग करें.
  • realName - डाला जाना चाहिए. जब मैं मैं बस memberName यहाँ दोहराने यकीन नहीं है.
  • emailAddress - स्व Explanitory.
  • जब से हम स्वयं एक सदस्य को सक्रिय कर रहे हैं is_activated - 1 करने के लिए सेट किया जाना चाहिए.
  • ID_POST_GROUP - मैं झूठ नहीं बोलूँगी. मैं यह क्या है यकीन नहीं है, लेकिन यह हमेशा से 4 करने के लिए सेट किया जा रहा है. तो .... मैं हमेशा से 4 करने के लिए यह निर्धारित किया है. कार्यक्रम के लिए नहीं का सबसे अच्छा तरीका है, लेकिन आप क्या कर सकते हैं?
  • passwd - कूटशब्द आप नये उपयोगकर्ता देना चाहता हूँ. यह कैसे SMF दस्तावेज़ीकरण देख बिना प्रवेश करने के लिए पता करने के लिए असंभव है. यह उचित कोड डाटाबेस के लिए एक SMF पासवर्ड एन्क्रिप्ट करने के लिए इस तरह दिखता है:

($memberName).$password) $ passwd = sha1 (strtolower ($ memberName). $ पासवर्ड)

कोड के ऊपर की रेखा में, $ पासवर्ड उपयोगकर्ता के वास्तविक कूटशब्द है.

कैसे करना है:

/ / पहले, SMF डेटाबेस से कनेक्ट

$ मेजबान = "होस्टनाम"; / / मेजबान नाम
$ उपयोगकर्ता नाम = "उपयोगकर्ता नाम", / / MySQL प्रयोक्ता नाम
$ mypassword = "कूटशब्द"; / / MySQL पासवर्ड
$ db_name = "उपयोगकर्ता नाम", / / डाटाबेस नाम

("cannot connect to server"); "मेजबान (" $ mysql_connect, "$ उपयोगकर्ता नाम", "$ mypassword") या मर ( "सर्वर से") कनेक्ट नहीं कर सकते हैं;
("cannot select DB"); mysql_select_db ( "$ db_name") या मर ( "") DB का चयन नहीं कर सकते हैं;

$ memberName = "ironMan";
$ realName = "टोनी स्टार्क";
$ emailAddress = "ironMan@ironMan.com";
$ = 1 is_activated;
$ ID_POST_GROUP = 4;

$ कूटशब्द = "Tony1234";

($memberName).$password); $ कूटशब्द = sha1 (strtolower ($ memberName). $ पासवर्ड);

$ = 1216951200 dateRegistered; / / 7/25/2008 2

$ क्वेरी = "घुसाएँ में, '$' emailAddress, '$' is_activated, '$ realName' '$ memberName' (, emailAddress, ID_POST_GROUP, dateRegistered passwd is_activated realName) memberName मूल्यों ( '$ smf_members ID_POST_GROUP', ' $ कूटशब्द ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ परिणाम = mysql_query ($ क्वेरी) या मर ( "SMF त्रुटि 101,234");

यह सब वहाँ यह करने के लिए है!

कैसे थंबनेल छवियाँ PHP का उपयोग करने के लिए

कार्य में, ShortLikeAFox PHP द्वारा 22 जुलाई, 2008 को पोस्ट

तो तुम एक दिया छवि से थम्बनेल बनाने के लिए ... PHP यह काम आसान बना देता है चाहता हूँ. मैं पहले छवियाँ प्रयोक्ताओं प्रशासन की मदद से मैं एक साइट पर अपलोड से निपटने के लिए नीचे दिए गए समारोह लिखा. इस साइट पर अपलोड की गई छवियाँ jpegs, pngs, या gifs, इसलिए मैं सभी तीन से निपटने के लिए एक समारोह में लिखने के लिए किया जा सकता है. यह कोड मूलतः एक समारोह के बंद आधारित है webcheatsheet.com में मिला

कैसे करना है:

समारोह createThumbs ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(

/ विस्तार के लिए / पार्स पथ

$ जानकारी = pathinfo ($ pathToImages. $ fname);
/ / जारी सिर्फ अगर यह एक JPEG छवि है
if ( ( strtolower ($info['extension']) == ‘jpg’) || ( strtolower ($info['extension']) == ‘jpeg’) )
(

/ / लोड छवि और छवि आकार ले
$ img = ( "($ pathToImages) ($ fname)") imagecreatefromjpeg;
$ चौड़ाई = imagesx ($ img);
$ ऊंचाई = imagesy ($ img);

/ / थंबनेल आकार की गणना
$ new_width = $ thumbWidth;
$ new_height = मंजिल ($ ऊंचाई * ($ thumbWidth / $ चौड़ाई));

/ / एक नया अस्थायी छवि बनाने
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / कॉपी और पुरानी छवि का आकार नई छवि में
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ चौड़ाई, $ ऊंचाई);

/ / एक फ़ाइल में थंबनेल को बचाने
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

(strtolower ($ अगर जानकारी [ 'एक्सटेंशन']) == 'gif')
(

/ / लोड छवि और छवि आकार मिल
$ img = imagecreatefromgif ( "($ pathToImages) ($ fname)");
$ चौड़ाई = imagesx ($ img);
$ ऊंचाई = imagesy ($ img);

/ / थंबनेल आकार की गणना
$ new_width = $ thumbWidth;
$ new_height = मंजिल ($ ऊंचाई * ($ thumbWidth / $ चौड़ाई));

/ / एक नया अस्थायी छवि बनाने
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / कॉपी और पुरानी छवि का आकार नई छवि में
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ चौड़ाई, $ ऊंचाई);

/ / एक फ़ाइल में थंबनेल को बचाने
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

(strtolower ($ अगर जानकारी [ 'एक्सटेंशन']) == 'png')
(

/ / लोड छवि और छवि आकार मिल
$ img = ( "($ pathToImages) ($ fname)") imagecreatefrompng;
$ चौड़ाई = imagesx ($ img);
$ ऊंचाई = imagesy ($ img);

/ / थंबनेल आकार की गणना
$ new_width = $ thumbWidth;
$ new_height = मंजिल ($ ऊंचाई * ($ thumbWidth / $ चौड़ाई));

/ / एक नया अस्थायी छवि बनाने
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / कॉपी और पुरानी छवि का आकार नई छवि में
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ चौड़ाई, $ ऊंचाई);

/ / एक फ़ाइल में थंबनेल को बचाने
imagepng ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

)

यह कैसे काम करता है

इस समारोह createThumbs चार बहस लेता है.

  • $ pathToImages -> छवि फ़ाइल यह इस: / घर / सामग्री / उपयोगकर्ता नाम / html / सूची / अपलोड की तरह लग रहे हो सकता है कुछ अंदर है, फ़ोल्डर का पथ /
  • $ fname -> इस फ़ाइलनाम: pic1.gif, johnny.jpg, आदि ...
  • $ pathToThumbs -> तुम्हें अंदर तुम ऐसा नहीं होने के लिए थंबनेल छवि चाहते फ़ोल्डर का रास्ता एक ही मार्ग के रूप में $ pathToImages होना यह चाहिए, क्योंकि थंबनेल छवि मूल छवि के रूप में एक ही नाम होगा.
  • $ thumbWidth -> इस चौड़ाई है कि आप पिक्सल में होना करने के लिए थंबनेल चाहते हैं.

एक महत्वपूर्ण ध्यान दें कि मैं यहाँ करना चाहिए कि इस समारोह में, फ़ाइल एक्सटेंशन की जाँच के अलावा, यह है कि छवि फ़ाइलों को कुछ भी नहीं दुर्भावनापूर्ण शामिल सुनिश्चित करने के लिए दूसरी जगह में कुछ भी नहीं है. फाइल createThumbs चूंकि () पहले से ही यह है कि फ़ाइलों को ठीक से छानबीन की गई है संभाला है अपलोड किया गया है के साथ काम करता है.

पहली बात createThumbs () फोन करता है pathinfo है (). pathinfo () एक सरणी में एक पथ के भागों टूटता है. क्योंकि हम ठीक से थम्बनेल बनाने के लिए फाइल एक्सटेंशन की जरूरत है यह हमारे लिए उपयोगी है. अगर हम एक jpeg के साथ काम कर रहे हैं अगली createThumbs () की जाँच को देखने के लिए. यदि मूल फ़ाइल एक JPEG createThumbs है एक नई छवि मूल छवि पर imagecreatefromjpeg के साथ आधारित बनाता है (). अगले कदम की चौड़ाई और इस छवि की ऊंचाई पाने के लिए है (imagesx (), imagesy ()). और मूल चौड़ाई और ऊंचाई createThumbs के अनुपात thumbWidth $ का उपयोग करना () नई चौड़ाई और थम्बनेल की ऊंचाई सेट. इन नए अनुपात createThumbs का उपयोग करना () है जो एक समान चौड़ाई और imagecreatetruecolor (). Imagecopyresized () की छवि का आकार और इसे बचाने के प्रयोग किया जाता है साथ थम्बनेल की ऊंचाई होगा एक "" रिक्त छवि बनाता है कि "" अभी बनाया खाली. imagecopyresized () इसे ही दिख सकता है, लेकिन मापदंडों का एक बहुत लेता है अगर तुम यह सच है कि जटिल नहीं है दस्तावेज़ीकरण पर एक नज़र रखना. अब यह है कि थम्बनेल एक सही रंग छवि सभी createThumbs के रूप में मौजूद करने की जरूरत है एक jpeg में फाइल कन्वर्ट है. इस imagejpeg करने के लिए () कहा जाता है.

इस तरह से इस समारोह jpegs के लिए काम करता है. वहाँ के लिए कम से कम अंतर है. Pngs और. Gifs.

कैसे लिखें ब्राउज़र विशिष्ट कोड को PHP के साथ

PHP में ShortLikeAFox द्वारा 21 जुलाई, 2008 को पोस्ट

तो आपको लगता है कि केवल कुछ ब्राउज़रों पर प्रदर्शित कोड लिखने के लिए चाहता हूँ ... कुछ कारणों से ऐसा करना चाहते करने के लिए एक नंबर रहे हैं. मैं व्यक्तिगत रूप से ऐसा करने के लिए जरूरी यह पहली बार है जब मैं एक पृष्ठ पर एक निश्चित mp3 एम्बेड करने कोशिश कर रहा था हुई. मैं इतना है कि mp3 (आईई, फ़ायरफ़ॉक्स, और ओपेरा) पर मैं परीक्षण के ब्राउज़रों पर खेलना होता है और मान्य एक ही समय पर कोड नहीं लिख सकता है किसी कारण के लिए. अगर मुझे सही याद है, यह इंटरनेट एक्सप्लोरर है कि इस समस्या पैदा कर दी गई थी. के साथ, जब उपयोगकर्ता IE का उपयोग कर रहा था, पता लगाने के लिए एक छोटी सी PHP का उपयोग करने के लिए गया था और फिर मैं आया इसका समाधान है कि अगर मामला था mp3 गैर में मान्य कोड एम्बेड.

क्योंकि W3C validator IE के रूप में ही पहचान कभी नहीं यह समाधान के mp3 हमेशा सही ढंग से और खेल पृष्ठ हमेशा मान्य करने के लिए, का नेतृत्व किया. यह W3C अनुपालन तक पहुँचने के लिए सबसे अधिक नैतिक रास्ता नहीं हो सकता है, लेकिन यह काम करता है.

एक और बार मैं ब्राउज़र विशिष्ट कोड लिखने के लिए की आवश्यकता होगी, याद है जब मैं ठीक से मेरी. PNG छवियों को प्रदर्शित नहीं IE 6 के साथ एक समस्या थी. मैं आसपास googled और इस समस्या के समाधान के लिए कुछ पाया है, लेकिन उन दोनों के ऊपर अपने पन्नों पर समग्र परत स्थानों से खिलवाड़ समाप्त हो गया. इसके बजाय कि समस्या समस्या निवारण की, मैं जल्दी हल के साथ गए और प्रदर्शन करने का निर्णय लिया. Gifs जब उपयोगकर्ता IE 6 था. यदि उपयोगकर्ता था कि एक अन्य ब्राउज़र की थी. मुझे लगता है कि उसके लिए बहुत बुरा लगा था png समस्याओं.

यह कैसे करना है:

पहले तुम कोड की एक छोटी लाइन लिखने के लिए क्या किया है अपने उपयोगकर्ता को ब्राउज़र पता करने की जरूरत है. ये कैसे करना है कि PHP के साथ:

  • 'HTTP_USER_AGENT' ]; $ visitorsOS = $ _SERVER [ 'HTTP_USER_AGENT'];

यहाँ क्या $ visitorsOS के तीन उदाहरण हैं की तरह देख सकते हैं

  • Mozilla/4.0 (संगत; MSIE 6.0, Windows NT 5.1; SV1;. NET CLR 1.0.3705;. NET
  • Opera/9.51 (Windows NT 5.1; यू; pl)
  • Mozilla/5.0 (Windows, यू, Windows NT 5.1, en-us; rv: 1.9) Gecko/2008052906 फ़ायरफ़ॉक्स

पहली उपयोगकर्ता इंटरनेट एक्सप्लोरर 6 है, ओपेरा 9,51, और तीसरे फ़ायरफ़ॉक्स सेकंड.

की तुलना में हम वास्तव में हम डालने की जरूरत आगंतुक के कंप्यूटर के बारे में अब जरूरत है कि हम और अधिक जानकारी पता है कि अच्छी जानकारी का उपयोग करने के लिए. तुम अगर उपयोगकर्ता इंटरनेट एक्सप्लोरर का कोई भी संस्करण चला रहा है कि केवल दिखेंगे कोड लिखना चाहते कहो. तुम्हें यह नहीं होता है कि मामले में:

(’MSIE’,$visitorsOS)){ (eregi ( 'MSIE', $ visitorsOS)) (अगर

कोड जो USER IF दिखाई ही WILL आईई HAS

)

और (

अन्य सभी मामलों में कोड जो WILL प्रकट

)

मैं बजाय ereg, संवेदनशील नियमित अभिव्यक्ति मैच एक मामले मैच eregi, एक मामले असंवेदनशील नियमित अभिव्यक्ति का उपयोग करें. अगर मैं इस व्यामोह से बाहर है, या है अगर मैं वास्तव में एक मामला जहां इंटरनेट एक्सप्लोरर ही msie के रूप में पहचान मिली मुझे याद नहीं है. इसलिए यह मैं क्या फायदा है या तो eregi मामले में कुछ भी चोट नहीं होगा. केवल एक छोटा सा बदलाव की आवश्यकता होगी आईई का विशेष संस्करण के लिए कोड लिखने के लिए चाहता है. के बजाय ... अगर मुझे लगता है कि केवल MSIE 6.0 के लिए दिखाई कोड चाहता (eregi ( 'MSIE' ...) मैं (eregi ( 'MSIE 6.0' ...) जैसे कुछ का प्रयोग करेंगे.


अगली प्रविष्टियाँ »