تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] Parse error: syntax error, unexpected '{'
#1
اعرف خارج المنتدى بس اريد مساعده

هذا الكود

PHP كود :
<?php

include('../conn.php');
$id $_GET['id'];
$uname $_GET['username'];
$pass $_GET['pass'];
$token $_GET['token'];
$pic $_GET['pic'];
$follows $_GET['follows'];


$stmt $conn->prepare("SELECT username FROM usersinfo WHERE id = ?");
$stmt->bind_param("s"$id);
$result $stmt->fetch();
if (empty( 
$result ) {
 
   $stmt $conn->prepare("INSERT INTO usersinfo (follows, id, username, pass, token, pic) VALUES (?, ?, ?, ?, ?, ?)");
 
   $stmt->bind_param("ssssss"$follows$id$uname$pass$token$pic);
 
   $stmt->execute();
} else {
 
   $stmt $conn->prepare("UPDATE usersinfo SET follows=?, username=?, pass=?, token=?, pic=? WHERE id=?");
 
   $stmt->bind_param("ssssss"$follows$uname$pass$token$pic$id);
 
   $stmt->execute();
}

$stmt->close();
$conn->close();
?>


وهذا الخطأ
كود :
Parse error: syntax error, unexpected '{' in C:\AppServ\www\server\create\insert.php on line 15
الرد }}}
تم الشكر بواسطة:
#2
PHP كود :
if (empty( $result )) { 

الرد }}}
تم الشكر بواسطة: asemshahen5 , Sorax , ابراهيم ايبو
#3
بخصوص الخطاء فلديك مشكلة بهذا السطر
if (empty( $result ) {
فيجب اغلاق الـ () حتى يعمل الكود بشكل صحيح
فكما اشار اليه محمد كريّم

ولكن الكود الذى تستخدمه هو ناتج عن قيم تحتوى بالرابط لجلب قيمة GET
وهنا ستكون المشكلة لديك بالتالي وهو ...
1- بامكان اى شخص ادخال اى بيانات بقاعدة البيانات والمشكلة الاكبر فى التعديل
وهو تعديل اى بيانات باى قيمة حتوى ولو كانت احرف ورموز عشوائية
2- اذا كان مستخدم الرابط بدون قيم لكل من GET فيسبب فى اظهار رسالة خطاء قريبة لما لديك حالياً

ولحل المشكلة هنا يجب وضح كود تحقق لقييم GET اذا لم يتحقق وجودها قيم لها فيتم تحويله الى صفحة ما
الامر الثاني ولتجنب الارقام العشوائية والتشابه فى قيمة الـ ID يفضل تجعل الـ ID من نوع تلقائي وتجعل كود التحقق
اذا كان البيانات للاضافة او التعديل تكون على username مضاف اليها pass

طبعاً انت عارف خطورة اذا لم يتم تحقق من قيم الـ GET فهنا اى حد يتمكن من تعديل بيانات اى شخص ولما هو يريده بمجرد كتابة الـ ID
وتذكر مثل هذه الملفات تكون هناك كود تحقق من تسجيل الدخول اذا كنت تستخدم الـ session أو cookies
الرد }}}
#4
مشكورين شباب ما قصرتو
بس بعد ما عدلت الكود بحيث اذا كان الايدي موجود سابقا يقوم فقط بتحديث القيم الباقيه
اما اذا ما كان الايدي موجود ف يضيفه مع القيم الباقيه ك قيم جديده
لكن المشكله انه فقط يضيف القيم كانها قيم جديده حتى اذا كانت موجوده سابقا مع نفس الايدي
يعني اذا الايدي موجود سابقا ميحدث القيم لا يضيفها كانها ما موجوده سابقا
PHP كود :
<?php

include('../conn.php');
$id $_GET['id'];
$uname $_GET['username'];
$pass $_GET['pass'];
$token $_GET['token'];
$pic $_GET['pic'];
$follows $_GET['follows'];

if (empty(
$follows) or empty($id) or empty($uname) or empty($pass) or empty($token) or empty($pic)) {
 
   echo "Error: Wrong input of values.";
} else {
 
   $stmt $conn->prepare("SELECT username FROM usersinfo WHERE id = ?");
 
   $stmt->bind_param("s"$id);
 
   $result $stmt->fetch();
 
   if (!empty($result)) {
 
       $stmt $conn->prepare("UPDATE usersinfo SET follows=?, username=?, pass=?, token=?, pic=? WHERE id=?");
 
       $stmt->bind_param("ssssss"$follows$uname$pass$token$pic$id);
 
       $stmt->execute();
 
   } else {
 
       $stmt $conn->prepare("INSERT INTO usersinfo (follows, id, username, pass, token, pic) VALUES (?, ?, ?, ?, ?, ?)");
 
       $stmt->bind_param("ssssss"$follows$id$uname$pass$token$pic);
 
       $stmt->execute();
 
       }
$stmt->close();
$conn->close();
 
   
الرد }}}
تم الشكر بواسطة: محمد كريّم
#5
جرب تغير السطر :
PHP كود :
 if (!empty($result)) { 


بهذا السطر :


كود :
if ($result->num_rows > 0) {

الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم