ما هو الفرق بين تنسخ عبر CGI مقابل بيرل؟

StackOverflow https://stackoverflow.com/questions/813008

  •  03-07-2019
  •  | 
  •  

سؤال

وأستخدمه تنسخ في بيرل ولاحظت (بعد الكثير من ضجيجا من رئيس ضد الجدار) أنه عندما يتم تشغيل البرنامج النصي في سطر الأوامر فإنه يحتاج منك أن تترك خارج \ ن (ق) بعد البريد الإلكتروني والمستلم عنوان البريد الإلكتروني من أجل تنسيق البريد بشكل صحيح، ولكن عندما يتم عرضها عبر CGI إذا كانت تلك \ ن (ق) ليست هناك تقوم بإرجاع خطأ توضح أن البريد الإلكتروني المستلم تالف.

وأي شخص آخر قد واجهت هذا؟ ما هي اثنين من القيام بشكل مختلف؟

هل كانت مفيدة؟

المحلول

في بضع تعليقاتكم أذكر لكم أن كنت تشغيل البرنامج النصي من سطر الأوامر مع الخيار -l (بيرل -l foo.cgi).

والخيار -l تتيح معالجة تنتهي خط التلقائي، وكما لديك مشكلة مع خط النهايات، أقترح عليك أن تحاول ذلك دون -l.

نصائح أخرى

وأين هي البيانات القادمة من؟ الثابت ترميز في البرنامج النصي، أو من نموذج ويب؟

وكما جانبا، إذا كنت تحصل على عنوان البريد الإلكتروني المستلم من نموذج ويب، النموذج الخاص بك سوف يتم استخدامها من قبل الاطر. انها ضمانة 100٪.

ومصطلح "CGI" واسع، إذا كنت تقصد المخطوطة الخاص بك تشغيل باعتباره CGI مقابل YUR perlscript المدى في سطر الأوامر، وأود أن ننظر نحو تحديد المسارات أن السيناريو له والبيئة العامة الموروثة. وخاصة إذا كان لديك تشغيله userids مختلفة مثل. إذا كان خادم الويب هو في الاستجذار، وما إلى ذلك.

use Data::Dumper;
warn(Dumper(\%ENV));

وهكذا انا التخمين أن لديك شيئا من هذا القبيل لتشغيله عن طريق سطر الأوامر:

my $your_email = "you@foo.bar";
my $recipient_email = "them@foo.bar";

وهذا عندما "يتم عرضها عبر CGI":

my $your_email = "you@foo.bar\n";
my $recipient_email = "them@foo.bar\n";

ولذا فإن السؤال أود أن أطلب منكم ثم هو كيف كنت تتصل تنسخ مع المتغيرات المذكورة أعلاه، وأيضا ما تقصد عندما تقول "يتم عرضها عبر CGI" مقابل تشغيل عن طريق سطر الأوامر؟ هل مجرد إضافة رمز CGI ولا يزال قيد التشغيل عن طريق سطر الأوامر أو عن طريق زيارة URL في متصفح الويب؟

scroll top