כמה דברים:
1) שים לב שהחל מהגרסאות הבאת של PHP ההתחברות למסד הנתונים והשימוש בהם יעשה דרך PDO, ממליץ לך להכנס לאתר של PHP ולקרוא על זה.
2) אין צורך ב
קוד: |
header('Content-Type: text/html; charset=utf-8'); |
כאשר יש לך את:
קוד: |
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8" /> |
.
זה עושה אותו הדבר (אומר לדפדפן באיזה קידוד להשתמש).
אז אפשר לוותר על אחד מהם, אני הייתי מוותר על הheader().
3) אין לך פה בכלל תנאי שבודק אם יש ערכי $_POST. זה כאילו אתה ממלא כל הזמן את המסד נתונים שלך בזבל, אתה גם כל הזמן מתחבר אליהם כשלא צריך.
4)
מה זה?
קוד: |
mysqli_query($con, "SET NAMES 'utf8'"); |
לא חושב שצריך את זה. הרי כבר כל הטבלה מוגדרת על שמירת ערכים בקידוד UTF8
5) אני הייתי בכלל מוציא מprint את כל התאגי HTML ואז בbody הייתי מכניס קוד PHP.
זה יעשה לך גם קצת סדר עם כל העניין של הקידוד, וגם סדר בקוד.
אני תמיד מעדיף שהhead של הHTML ירוץ לפני שהשרת יריץ לי קוד PHP וישלח נתונים לקליינט.
מכיוון שככה אני אדע בוודאות שכל מה שהכנסתי בHEAD ייושם בדפדפן.
אלא אם כן מדובר בדף PHP שמריץ פקודות PHP בלבד ולא מוציא פלט.
אם אתה עדיין רואה שיש בעיות אני פה
מוכן לעזור.