البرمجة

حل مشكلة Parse Error في PHP وإصلاح أخطاء جمع المعلومات من عناوين URL

في البداية، يبدو أن لديك بعض الأخطاء الإملائية واللغوية في الرمز البرمجي الخاص بك. دعنا نقوم بتصحيحها وتوضيح الطريقة الصحيحة لتحقيق هدفك.

أولاً وقبل كل شيء، في السطر الذي يحتوي على تعريف المتغير $txt وفتح الملف للكتابة، لديك خطأ في الكود. يجب عليك تغيير هذا السطر:

php
if (isset($_GET["log"]) && isset($_GET["firstname"]) && isset($_GET["lastname"]) && isset($_GET["address"]) && isset($_GET["city"]) && isset($_GET["state"]) && isset($_GET["zip"]) && isset($_GET["country"]) && isset($_GET["phone"]) && isset($_GET["gender"]) && isset($_GET["haircolor"]) && isset($_GET["eyecolor"]) && isset($_GET["high"]) && isset($_GET["weight"])) {

تلاحظ أنني قمت بتغيير الرمز $$ إلى &&، وهو الذي يستخدم للتحقق من تواجد كل متغير من متغيرات الاستعلام $_GET.

ثانيًا، في خطوة القراءة من متغيرات الاستعلام $_GET، تحتاج أيضاً إلى تصحيح أسماء المتغيرات بناءً على الأسماء الصحيحة في الرابط. لديك $firstname = $_GET["fname"];، ولكن يجب أن يكون $firstname = $_GET["firstname"];، والأمر نفسه لبقية المتغيرات.

ثالثًا، في سلسلة الطباعة echo، قمت بوضع PHP_EOL بين كل متغير وآخر، ولكن يبدو أنك تستخدم هذه الفاصلة في غير المكان المناسب. يجب أن تكون هذه الفواصل بين القوسين وليس بين القوس والمتغير. على سبيل المثال:

php
echo $firstname . PHP_EOL . $lastname . PHP_EOL . $address . PHP_EOL . $city . PHP_EOL . $state . PHP_EOL . $zip . PHP_EOL . $country . PHP_EOL . $phone . PHP_EOL . $hcolor . PHP_EOL . $ecolor . PHP_EOL . $high . PHP_EOL . $weight . PHP_EOL . $gender;

وأخيرًا، في الجزء النهائي حيث تقوم بفتح الملف للكتابة وكتابة المعلومات، يجب أن تستخدم المتغيرات الصحيحة. يجب أن يكون السطر كالتالي:

php
fwrite($fh, $firstname . PHP_EOL . $lastname . PHP_EOL . $address . PHP_EOL . $city . PHP_EOL . $state . PHP_EOL . $zip . PHP_EOL . $country . PHP_EOL . $phone . PHP_EOL . $hcolor . PHP_EOL . $ecolor . PHP_EOL . $high . PHP_EOL . $weight . PHP_EOL . $gender);

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

المزيد من المعلومات

بالطبع، دعوني أوسع المعلومات حول الأخطاء التي واجهتك وكيفية تحسين الرمز البرمجي الخاص بك.

أولًا، فيما يتعلق بالخطأ الذي واجهته، يبدو أنك قد قمت بإدراج رمز زائد غير متوقع في السطر الثالث من الشيفرة. الخطأ المحدد هو “syntax error, unexpected ‘$'”، وهذا يشير إلى وجود خطأ في الصياغة النحوية للرمز.

تحتاج إلى مراجعة السطر الثالث بعناية، وفي السياق الحالي، يظهر أن هناك خطأ إملائي. في السطر:

php
if (isset($_GET["log"]) && isset($_GET["firstname"]) && isset($_GET["lastname"]) && isset($_GET["address"]) && isset($_GET["city"]) && isset($_GET["state"]) && isset($_GET["zip"]) && isset($_GET["country"]) && isset($_GET["phone"]) && isset($_GET["gender"]) && isset($_GET["haircolor"]) && isset($_GET["eyecolor"]) && isset($_GET["high"]) && isset($_GET["weight"])) {

لاحظت أنك كتبت “if (isset($_GET[“log”]) && isset($_GET[“firstname”]) && … “، ولكنك قمت بكتابة “بينالقوسينفيالنهاية.هذاهوالخطأالذييجبتصحيحه.عليكاستبدال” بين القوسين في النهاية. هذا هو الخطأ الذي يجب تصحيحه. عليك استبدال “” بـ “&&” كما قمت بتصحيحه في الرد السابق.

ثانيًا، في جزء الكود الذي يقوم بكتابة المعلومات إلى ملف reg.log، لديك بعض الأخطاء الإملائية واللغوية. في السطر:

php
fwrite($fh, $firstname . PHP_EOL . $lastname . PHP_EOL . $address . PHP_EOL . $city . PHP_EOL . $state . PHP_EOL . $zip . PHP_EOL . $country . PHP_EOL . $phone . PHP_EOL . $hcolor . PHP_EOL . $ecolor . PHP_EOL . $high . PHP_EOL . $weight . PHP_EOL . $gender);

لديك $hcolor و$ecolor، ولكن في المتغيرات السابقة لم تقم بتعريفها بشكل صحيح في قائمة المتغيرات المُعرَّفَة بالفعل. يجب عليك تغييرها إلى $haircolor و$eyecolor كما هو معرَّف في سلسلة الاستعلام $_GET.

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

زر الذهاب إلى الأعلى