راکت
حل شده

باگ php یا خطای پایگاه داده

23 پاسخ

دوستان سلام و وقت بخیر ، من یک فرمی ساختم که اطلاعات رو به دیتابیس ارسال میکنه یک فرم عضویت در سایت فوق العاده ساده هستش همه چیز اوکی هستش اما یک مشکل بزرگ داره که پایگاه داده فقط یک نفر رو در خودش ذخیره میکنه یعنی اینکه وقتی که من دارم فرو رو پر میکنم و روی ثبت نام کلیک میکنم فقط یک بار میتونم ثبت نام کنم یعنی فقط یک کاربر میتونه در سایت ثبت نام کنه به طور خلاصه دیتابیس فقط اطلاعات 1 نفر رو ذخیره میکنه و دیگر هیچ کسی نمی تونه ثبت نام کنه در عکس زیر ببینید فقط یک نفر هستش و بجز یک نفر دیگه کسی رو ثبت نام نمیکنه کد هام هم در زیر هستن لطفا کمک کنید ممنون

توضیح تصویر رو وارد کنید

کد های html من

<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="https://roocket.ir/css/style.css">
    <title>ثبت نام در سایت</title>
</head>
<body>
    <div class="containear">
        <form action="eng/do-register.php" method="POST">
            <input type="text" name="name" placeholder="نام و نام خانوادگی ...">
            <input type="number" name="number" placeholder=" تلفن همراه...  ">
            <input type="email" name="email" placeholder="ایمیل ... ">
            <input type="password" name="password" placeholder="رمز ... ">
            <input type="submit" class="btn" value="ثبت نام ">
        </form>
    </div>
</body>
</html>

کد php جهت اتصال به پایگاه داده

<?php
    $db = mysqli_connect('localhost','vesal','Ve0829##0829','vesalalizadeh');
    mysqli_query($db, "SET NAMES utf8");
?>

کد php جهت ارسال اطلاعات به دیتابیس

<?php 
    include_once 'db.php';
    $name = $_POST["name"];
    $number = $_POST["number"];
    $email = $_POST["email"];
    $password = $_POST["password"];

    $register = mysqli_query($db, "INSERT INTO users (name, number, email, password) VALUES ('$name', '$number', '$email', '$password')");
    if($register){ 
        echo "ثبت نام شما با موفقیت انجام شد ";
    }else {
        echo "خطا در برقراری ارتباط با پایگاه داده";
    }
ثبت پرسش جدید

پاسخ‌ها

23
hamed
hamed
@hamedkh72
بهترین پاسخ

@alizadevesal
کل ستون ها رو ویرایش کنید و برای همه موارد به جز id تیک null رو بزنید. برای id هم اگه تیک AI رو نزدید حتما اون رو تیک بزنید. ویرایش که انجام شد دوباره تست کنید.

Ahmad Kalantari
Ahmad Kalantari
@amdk.1987

تخصص: Reactjs laravel dev

اگه میتونید با همین کد یک کاربر رو ذخیره کنید، احتمالا:
1- بعضی از ستون ها رو NULLABLE نذاشتید و دارید دیتای NULL یا خالی ارسال میکنید براش
2- حداقل نام یک ستون رو بصورت unique تعریف کردید و دوباره برای اون دارید دیتای مشابه ذخیره میکنید مثلا name, number و...

بنظرم با خطای پایگاه داده رو بگیرید ببینید چی میگه
بجای کد:

 echo "خطا در برقراری ارتباط با پایگاه داده";

کد زیر رو قرار بدید تا ببینید چه خطایی میده

 echo("Error description: " . $register -> error);
کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@amdk.1987 ممنون بابت پاسختون با خطای زیر مواجه شد

Notice: Trying to get property 'error' of non-object in C:\xampp\htdocs\register\eng\do-register.php on line 12
Error description:

شاید پاسخ شما همین‌جا باشد

Ahmad Kalantari
Ahmad Kalantari
@amdk.1987

تخصص: Reactjs laravel dev

کدتون رو داخل try catch بزارید:

try {
$register = mysqli_query($db, "INSERT INTO users (name, number, email, password) VALUES ('$name', '$number', '$email', '$password')");
  if($register){ 
        echo "ثبت نام شما با موفقیت انجام شد ";
    }
} catch (Exception $e) {
  echo $e->errorMessage();
}
کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@amdk.1987
اتفاق خواصی نیفتاد

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@amdk.1987 به نظر مشکل از چی هستش ؟

hamed
hamed
@hamedkh72

سلام
برای همه ی ثبت نام ها پیغام موفقیت چاپ میشه و فقط اولی ثبت میشه؟ یا موارد بعدی خطا دریافت میکنی؟

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@hamedkh72
سلام بله خیر برای همه ثبت نام ها خطا نمیده فقط برای دومی یعنی فقط به طور کلی یک نفر رو ذخیره میکنه و برای همه خطا میده

hamed
hamed
@hamedkh72

اگه امکانش هست از تب structure که داخل تصویری که از دیتابیس فرستادین قابل مشاهده س اسکرین شات بگیرید بفرستید.

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

Ahmad Kalantari
Ahmad Kalantari
@amdk.1987

تخصص: Reactjs laravel dev

id رو هم باید ارسال کنید یا باید autoincrement بزارید. تیک null رو هم بزنید تا اگه داده ای رو نفرستادید خطا نده
اینجا هست آموزشش
عنوان لینک مورد نظر

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@hamedkh72
اقا خیلی ممنون دمت گرم حل شد 3 روزه روش کار میکنم ممنون بابت کمکتون

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@hamedkh72
ببخشید مهندس جان php رو از کجا یاد گرفتین ؟

Ahmad Kalantari
Ahmad Kalantari
@amdk.1987

تخصص: Reactjs laravel dev

داخل سایت راکت آموزش هست مهندس

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@amdk.1987
از شما هم متشکرم دوست عزیز

فقط یک سوال دیگر من خیلی دوست دارم بک اند کار بشم و تا العان هم فقط به html و css مسلط هستم به نظر شما دوره فرانت اند رو تموم کنم بیام php یا تا اینجا کافیه مستقیم بیام درست روی php به نظر شما باید چیکار کنم ؟

Ahmad Kalantari
Ahmad Kalantari
@amdk.1987

تخصص: Reactjs laravel dev

خواهش میکنم.
بنظر من حداقل jquery و bootstrap رو یادبگیرید.
بعدش حتما php رو یادبگیرید
بعد بنظرم وردپرس و قالب نویسی برای وردپرس
و بعدش یه فریمورک کامل مثل لاراول رو یاد بگیرید.
ولی من جای شما باشم دیگه سمت php نمیرم بلکه از اول با python شروع میکنم! دستمزد javaکارها و بعد .netکارها و بعد pythonکارها در شرکتها به مراتب بیشتر هست (منظورم این نیست php بده!!!)

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@amdk.1987
فرمایش شما متین دوست عزیز ولی نمی دونم چرا به php حس خواصی دارم 🙄 به نظر شما بازار کار php بده ؟

Ahmad Kalantari
Ahmad Kalantari
@amdk.1987

تخصص: Reactjs laravel dev

من چندسالی هست php کار میکنم (لاراول) ولی به سایت jobinja سربزنید متوجه میشید کدام شرکتها چه زبانی رو میخوان و با چه حقوقی. بانکها، ارگانها، سازمانهایی مثل تامین اجتماعی همه یا java هستن یا .net. چون سیستمها از اول با اونها نوشته شده دیگه تغییر نمیدن و البته این شرکتها حقوق خوبی نسبت به یه استارتاپ داره!

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

@amdk.1987
ببخشید اگه جسارت نباشه درآمدتون از php خوب نیست ؟

Ahmad Kalantari
Ahmad Kalantari
@amdk.1987

تخصص: Reactjs laravel dev

نه زیاد. با این زحمتی که php کشیدم میرفتم سراغ جاوا خیلی بهتر بود و اسم و رسم شرکتهایی که جذب میشید قابل قیاس نیست.
البته ناگفته نماند شروع کردم یادگیری جاوا رو !

hamed
hamed
@hamedkh72

@alizadevesal
خواهش میکنم. خوشحال شدم که مشکلتون حل شد.
در حوزه برنامه نویسی به زبان فارسی به نظر من فعلا بهترین آموزش ها برای سایت راکت هست. مگر اینکه در آینده رقیبی پیدا کنه.
وقت خودت رو هم تلف نکن با سایت هایی که فقط ادعا دارن و آموزش هاشون یا خیلی قدیمیه و عملا کاربردی نیستن و یا افرادی تدریس میکنن که حتی به سن قانونی هم نرسیدن. اینجور سایت ها فقط جیب کاربرها رو هدف قرار میدن و به اسم مدرک برنامه نویسی و موارد این چنینی کاربر رو فریب میدن.
یادت باشه برنامه نویسی مدرک نداره. حتی مدرک دانشگاهی هم کسی رو برنامه نویس نکرده. فقط و فقط مشاهده آموزش(فیلم یا کتاب یا هرچیز دیگه ای) و تمرین فراراون در کنارش.

اگه هدف شما اینه که برنامه نویس بک اند بشی باید html ، css و به خصوص javascript رو در حد مطلوب یاد بگیری و بعدش سراغ php برو. بعد از اینه php رو خوب مسلط شدی میتونی یکی از فریمورک های php رو انتخاب کنی و راهتو ادامه بدی.
نظر و پیشنهاد دوستمون هم محترمه ولی بنده یخورده با ایشون هم نظر نیستم. با وجود پیشرفت هایی که داخل javascript اتفاق افتاد مخصوصا از es6 به بعد ، هر کاری که با سادگی با jquery انجام میشد رو الان میتونیم به سادگی با خود javascript انجام بدیم و اینکه در حال حاضر یادگیری javascript از الزامات دنیای وب هست.
در مورد وردپرس هم در صورتی که شما php و لاراول کار کنید اصلا لزومی نداره سمت وردپرس برید. پروژه های فراوانی هستن که با php و لاراول توسعه داده بشن و درگیر شدن با وردپرس از نظر من وقت تلف کردنه. مگر اینکه هدف اصلی شما برنامه نویس وردپرس شدن باشه که در اون صورت قضیه متفاوته.
در مورد زبان php هم اگر مردد هستی میتونی خیلی راحت سایت های کاریابی رو چک کنی و ببینی برای کدوم زبان تقاضا بیشتری هست. همینطور سایت هایی که به صورت فریلنسری پروژه دارن میتونی چک کنی. در ضمن بابت php خیالت راحت باشه حالا حالاها جای کار داره و کنار نمیره.
جناب موسوی هم در مورد این موضوع یه پادکست منتشر کردن که میتونی از این لینک اون رو گوش بدی :
لینک پادکست
و اینکه bootstrap هم میتونی کنار بقیه موارد یاد بگیری.
در ضمن اگه شی گرایی رو بلدی همیشه برای ارتباط با دیتابیس از روش PDO استفاده کن.
کلا دنیای برنامه نویسی انتها نداره . دنبال اینکه برنامه نویسی رو تموم کنی نباش و باید مدام در حال یادگیری باشی. یادگیری مداوم رو با از این شاخه به اون شاخه پریدن اشتباه نگیری. در حوزه کاری خودت باید همیشه دنبال یادگیری باشی و بروز باشی.
اگه زبان انگلیسیت خوبه که عالیه اگه هم نیست تا جایی که بتونی از سایت های انگلیسی زبان استفاده کنی ، انگلیسی رو یاد بگیر.
برای جاوا اسکریپت چهار قدم اول کافیه : دوره های جاوا اسکریپت
برای یادگیری php همه قدم ها لازمه : دوره های php

برای یادگیری برنامه نویسی باید سماجت زیادی داشته باشی. برنامه نویسی یعنی به خطا خوردن و حل کردنش. اگه با برخورد کردن با چند تا اررور قرار باشه کم بیاری و ادامه ندی و انتظار داشته باشی همیشه همه چی اوکی باشه چنین چیزی فقط یه توهمه.

شما این دوره ها رو ببنید و کامل به توصیه ها و نکاتی که جناب موسوی میگن عمل کنید و سخت تمرین کنید و پروژه های مختلف انجام بدید. اگر هم به مشکلی برخورد کردید همینجا مطرح کنید یا داخل گوگل سرچ کنید.
در ضمن یادت باشه بهترین اساتید دنیا هم اگه آموزشی رو منتشر کنن و فقط اونا رو بشینی مثل فیلم سینمایی ببینی به هیج جا نمیرسی. فقط تمرین تمرین تمرین. برای شروع هم از پروژه های ساده شروع کن وگرنه زده میشی.
خیلی چیزا رو بعدها یاد میگیری و به دانشت اضافه میشه ولی برای شروع با php پایه و اساسش همیناس و در ادامه مباحث مختلفی رو یاد میگیری و این راه ادامه دارد...
موفق باشی.

صفحه 1 از 2

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام