السلام عليكم ورحمة الله لدي مشكله في موقعي لدي صفحه واحد تعرض بيانات رحله
المفترض ان يتم انشاء Qr code يحتوي علي جميع بيانات الرحله البيانات باللغه العربيه لذالك تحدث مشكله
Could not encode content to ISO-8859-1
هذه هي المشكله الاولي
ثاني مشكله هي عندما البيانات تكون كبيره جدا واستطعت انشاء Qr code للاسف يكون معقد جدا ولا يتم قراتها ابدا مهما حاولت
اسم الباكج : composer require simplesoftwareio/simple-qrcode
الربط اللذي اود ان اجعل له qrCode هكذا :
كود الخاص بي
public function playOrder(Request $request)
{
$x = $request->data;
$dataarray = json_decode($x, true);
$qrQode = QrCode::size(100)->generate("https://wealthest22.com/quiz_app_taha/public/s/" . $x);
return view('index', ["data" => $dataarray, "qrQode" => $qrQode]);
}
التقنيات
laravel , php ,html,css,js
وعليكم السلام , الحل بسيط
بنسبه للمشكله الاولي وهي اللغه العربيه يجب اولا عمل json_decode للبيانات
قبل انشاء Qr code
بهذه الطريقه
$x = $request->data; $dataarray = json_decode($x, true);
بنسبه للمشكله الثانيه اذا كانت البيانات كبيره بالفعل لن يتم قراءة الباركود وهنا لا يوجد الا حل واحد فقط هو محاولة اختصار هذه الرابط بالبيانات الخاصه به الي رابط بسيط ولان هذه المشكله قد وجهتني واستطعت حلها 100% ساطرح عليك الحل النهائي لها
اولا سنقسم الرابط الي جزئين الرابط الاصلي وهو https://wealthest22.com/qui...
والبيانات التي تريد عمل عليها باركود
وسيتم انشاء جدول يحتوي علي حقلين بهذه الطريقه
public function up()
{
Schema::create('short_links', function (Blueprint $table) {
$table->id();
$table->longText('long_url');
$table->string('code')->unique();
$table->timestamps();
});
}
حقل long_url يمثل الرابط بالكامل بجميع بياناته
حقل ال code يمثل قيمه لا يمكن تكرارها
ثما سيتم انشاء model خاص بالجدول بهذه الطريقه
class ShortLink extends Model
{
use HasFactory;
protected $fillable = ['long_url', 'code'];
}
ثما سيتم تغير الداله الخاص بك لتصبح بهذه الشكل :
public function playOrder(Request $request)
{
$input['long_url'] = "https://wealthest22.com/quiz_app_taha/public/play/order?data=" . ($request->data); // The long URL from your form or API call
$input['code'] = str::random(6); // Generate a random string for the short code
$shortLink = ShortLink::create($input);
$x = $request->data;
$dataarray = json_decode($x, true);
$qrQode = QrCode::size(100)->generate("https://wealthest22.com/quiz_app_taha/public/s/" . $shortLink->code);
return view('index', ["data" => $dataarray, "qrQode" => $qrQode]);
}
عند بداية فتح الصفحه سيتم تخزين الرابط اللذي يحتوي علي بيانات كبيره وثما سيتم انشاء كود عشوائي لا يتكرر لهذه رابط
و عند انشاء Qrcode سيتم انشاءه للرمز اللذي لايتكرر من رابط لاخر بلاضافه الي رابط الموقع الاساسي
ولان عند قراءة Qr code سيتم اظهار الرابط بهذه الشكل :
"https://wealthest22.com/quiz_app_taha/public/s/wwwwwww"
اعتبارا ان wwwww هو الكود اللذي لايتكرر وعند مسح QrCode سيظهر هذه الرابط وعند الدخول اليه سننشئ داله بسيطه تعيد التوجيه الي الرابط الاساسي بهذه الطريقه
public function shortenLinkRedirect($code)
{
$find = ShortLink::where('code', $code)->first();
if ($find) {
return redirect($find->long_url);
}
return abort(404);
}
لا تنسي انشاء route الخاص به بهذه الطريقه
Route::get('/s/{code}', [NameController::class, 'shortenLinkRedirect'])->name('s');
التعليقات