بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

چند سوال درمورد ساخت برنامه ای که بتونه با یک وب سروریس کار کنه.

مدیریت گفتگو
alfredo 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام و عرض ادب.

من میخواستم یک برنامه  و یک سایت بسازم که به این صورت باهم در ارتباط باشند (البته من هیچ تخصص و تجربه ای درزمینه سایت و سرور ندارم)

برنامه بتونه اطلعات سایت رو آپدیت و تامین کنه و اطلاعاتش درون دیتابیس وبسایت قابل مشاهده باشه.

من نمیخوام از سرور برای این کار استفاده کنم. آیا امکانش هست که فقط توسط یک هاست و دامین این کارو انجام داد؟

آموزش های مربوط به دفترچه یادداشت رو قبلا دیدم و خیلی میتونه کمکم کنه ولی اونجا سرور داخلی بود. و با php  دستورات در سمت سرور انجام میشد. حالا میشه از همون روش استفاده کرد روی هاست و دامین و یک همچین سایتی راه اندازی کرد که توش دیتابیس بصورت برنامه ریزی شده کار کنه ؟!

لطفا تمام راه های موجود رو بهم بگید.

با تشکر فراروان از استاد کاشی زاده عزیز که همیشه در صحنه هستند و به داد ما میرسند.

 

نظرات

پاسخ‌ها 12

کاشی زاده 10 سال پیش

سلام ،
در پروژه Note به صورت کامل این مسئله را بررسی کردیم .
تفاوتی بین سرور و هاست اشتراکی نیست و شما میتونید همان کد ها را در هاست اشتراکی نیز استفاده کنید و تفاوتی در کد ها نیست ، با خرید یک هاست اشتراکی و آپلود فایل های php و تغییر آدرس دامنه که در اپلیکیشن استفاده شده به آدرس واقعی متصل به هاست میتونید این کار را انجام بدید .

موفق باشید .

نظرات

Mohad 10 سال پیش

سلام یک نکته ای به گفته استاد اضافه کنم که سایت های ورودپرسی بسته به اینکه با چه پلاگینی ساخته شده باشن برای وب سرویسشون هم معمولا پلاگین هست که چندان دیگه نیاز به کد نویسی php و غیره سمت سرور نداری و میتونی ازشون استفاده کنی

نظرات

alfredo 10 سال پیش

ممنونم.

اتفاقا برام سوال بود که این وردپرس اصلا چی هست... 

هاست و دامین رو گرفتم ولی هیچ کاری بلد نیستم باهاشون بکنم. البته فکر کنم تونستم وصلشون کنم به هم (البته چون هنوز ۲۴ ساعت نشده. سایت بالا نمیاد).

من توی پنل هاستم که میرم این گزینه ها برام میاد که نمیدونم باید باهاشون چکار کنم

از روی آموزش استاد که میرم، تقریبا هیچ کاری نمیتونم انجام بدم. چون استاد یک فایل index.php میسازند و سایت از اون طریق کار میکنه. ولی من نمیدونم این فایل رو کجا باید بسازم ؟! البته فکر کنم توی روت هاستم باید بسازمش ولی فعلا که سایت چیزی نشون نمیده تا بتونم با‌ آزمون و خطا برم جلو.

یک راهی از توی همین پنل  هاست پیدا کردم که خودش روی هاست وردپرس نصب میکنه. البته خیلی چیزای دیگه هم میتونه نصب کنه. ولی من نمیدونم کدوماش به دردم میخوره ! 

اینها و خیلی برنامه های دیگه رو میشه روش نصب کرد. کدوماش رو نصب کنم؟ 

یک نکته اینکهFTP منیجیر خودش  این صحنه رو نشون میده که یک سری فایل توی هاستم هست و نمیدونم میتونم پاکشون کنم یا نه ؟ 

نظرات

alfredo 10 سال پیش

با مقداری کلنجار بالاخره وردپرس نصب شد و بالا اومد.

الآن که فایل index.php  رو باز میکنم این کدها داخلش هست:

 <?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

این چرا با ?> بسته نشده پس؟

الآن من باید همینجا کدهایی که استاد از w3schools گرفته بود رو قرار بدم ؟!

کسی میدونه ؟!

استاد !

 

 

نظرات

کاشی زاده 10 سال پیش
وردپرس سیستم مدیریت محتوی هست و ما در آموزش ها از آن استفاده نکردیم و خودمان یک وب سرویس از صفر نوشتیم . شما باید به فایل منیجر پنل برید و در پوشه public_html فایل هایی که در آموزش ها ساخته شد را قرار دهید و با آدرس سایت آن ها را باز کنید .
alfredo 10 سال پیش

استاد اینها در فایل منیجرش هست: (public نداره)

نظرات

کاشی زاده 10 سال پیش
اینها فایل های وردپرسسی هست که نصب کردید باید ابتدا وردپرس را حذف کنید و فایل های خود را در همینجا قرار دهید .
alfredo 10 سال پیش
استاد سایتم درست بالا میاد. الآن یک فایل index.html دارم توی هاستم که وقتی داخلش کد php مینویسم و مثلا میزنم یک جلمه رو اکو کنه. درست کار میکنه و توی سایت اون جمله میاد. ولی وقتی اون کدی که شما از w3school گرفتید رو مینویسم. کلا سایت از کار می افته و یک صفحه سفید نمایش میده.
کاشی زاده 10 سال پیش
باید تنظیمات دیتابیس را نیز بررسی کنید و حساب کاربری برای دسترسی به دیتابیس بسازید .
alfredo 10 سال پیش
منظورتون همون یوزر و پسورد هست که برای دسترسی به دیتابیس نیاز هست؟ یوزر پسورد ساختم ولی نه به روشی که توی آموزش هست (اون گزینه که شما توی آموزش استفاده کردید برای ساخت دسترسی، برای من نداره و از جای دیگه براش یک نام کاربری و پسورد قرار دادم) . ولی مشکل همچنان پا برجاست.
alfredo 10 سال پیش
بعد از جستجوی فراوان متوجه شدم مشکل از کجاست دقیقا. از همونجاست که شما اشاره کردید. توی صفحه ادمین اسکیوال بنده اصلا گزینه به اسم یوزر نیست. یک قسمت هست به اسم previlaes که اونجا ظاهرا باید بتونم یوزر اضافه کنم ولی هیچ دکمه ای برای اضافه کردن نداره. داخلش هم نوشته You do not have the necessary privileges to create a routine Documentation
کاشی زاده 10 سال پیش
هاستتون رایگان هست ؟ ممکنه محدودیت استفاده از دیتابیس برای هاست تعریف شده باشد .
alfredo 10 سال پیش
بله از 1freehosting گرفتم . نمیشه این دیتابیس رو به روش های دیگه ایجاد و مدیریت کنم!؟ اگه راه نداشته باشه میشه هاست هم عوض کنم البته.
کاشی زاده 10 سال پیش
پیشنهاد میکنم یه هاست ارزان قیمت با پنل Direct Admin یا CPanel تهیه کنید ، در هاست های رایگان تنها با دیتابیس مشکل نخواهید داشت و مشکلات دیگری هم در آینده گریبان گیرتان میشود . با یه سرچ ساده در گوگل میتونید سرویس دهندگان میزبانی وب را پیدا کنید ، یه هاست معمولی حدودا 25000 تومان برای یکسال هزینه دارد .
alfredo 10 سال پیش

استاد همه مراحل که فرمودید انجام شد. الآن به یک مشکل برخوردم که دقیقه ۳۲ آموزش که شما کدهای php رو مینویسید تا اطلاعات دیتابیس در سایت نمایش داده بشه. من 0 results برام توی سایت نمایش داده میشه. 

خودم حدث میزنم مشکل از این قسمت باشه چون یکم ساختارش برام عجیبه اون نقطه ها و کوتیشن ها (گیج شدم اینجاش رو)

شما ببینید ایراد میبینید اینجا؟ 

$sql = "SELECT * FROM table";
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "<br> id: ". $row["id"].
             " - subject: ". $row["subject"].
             " - text: ". $row["text"].
             " - vote: ". $row["vote"].
             " - time: ". $row["time"]. "<br>";
        }
    } else {
        echo "0 results";
    }

 

نظرات

کاشی زاده 10 سال پیش
table جز Keyword هاست نام مناسبی برای جداول در نظر بگیرید .
alfredo 10 سال پیش
اسمش رو تغییر دادم به utable  ولی همچنان result0 میده
کاشی زاده 10 سال پیش
خطایی سیستم بهتون نمیده ؟ رکوردی توی دیتابیس درج کردید ؟ نمایش خطای php روشن هست ؟
alfredo 10 سال پیش
دقیقا مشکل از نبود رکورد بود. بعد از اینکه اسمش رو عوض کرده بودم دیگه رکورد جدید درست نکرده بودم. مشکل همین بود. مثل همیشه تشخیصتون عالی بود. ممنونم.
ImanX 10 سال پیش

سلام من توصیه میکنم کار با Rest Api  یادبگیرین.  راستش نمیدونم تو آموزش های استاد هست یا نه. اما خیلی میتونه کمکتون کنه.

 

نظرات

alfredo 10 سال پیش
میشه یکم توضیح بدید درموردش ؟
ImanX 10 سال پیش

این لینک را مطالعه کنید. http://www.restapitutorial.com/lessons/restquicktips.html

نظرات

ImanX 10 سال پیش

API مخفف application programming interface (رابط برنامه‌نویسی نرم‌افزار) واسطه‌ای است بین یک کتابخانه با برنامه‌هایی که از آن کتابخانه تقاضای سرویس می‌کنند. به صورت ساده و قابل فهم، API ها مثل function هایی هستند که در یک سرور (یا سیستم عامل) وجود دارد و یک برنامه نویس در برنامه خود می‌تواند آنها را فراخوانی و استفاده کند بدون اینکه به سورس و نحوه عملکرد آن دسترسی داشته باشد. به عنوان مثال ویندوز یک سیستم عامل کدبسته (غیر اپن سورس) است اما مایکروسافت برای ویندوز، APIهایی قرار داده است که با استفاده از آنها، برنامه‌نویسان می‌توانند از قابلیت‌ها و سرویس‌های سیستم‌عامل ویندوز در توسعه و نوشتن برنامه‌های کاربردی خود استفاده کنند. API های تحت وب API های تحت وب به مراتب گسترده‌تر، پرکاربردتر و از همه مهم‌تر؛ مستقل از سیستم‌عامل است. یعنی یک برنامه ممکن است روی سیستم عامل linux باشد اما شما که یک سرور ویندوزی دارید، می‌توانید از API آن به سادگی استفاده کنید. SOAP و REST دو گروه معروف از API های تحت وب هستند که دومی ساده‌تر و استفاده از آن آسان‌تر است.


نظرات

alfredo 10 سال پیش

استاد من پروژه رو تا انتها انجام دادم (البته به بخش های آپدیت و حذف اطلاعات نیاز نداشتم و انجامشون ندادم)

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

ولی وقتی یک آیتم جدید درست میکنم توی دیتابیس سایت، آیتم جدید ایجاد نمیشه. (البته توی خود برنامه به طور موقت ایجاد میشه)

هیچ اروری هم دریافت نمیکنم.

خودم شکم برده به فایل service.php

بنظر شما مشکلی نداره این کدها؟ (من از اینتلیجی استفاده نمیکنم و توی ایکس کد تغییراتش رو انجام میدم) 

<?php
    if(!isset($_GET["action"])){
        echo "!!!";
        exit;
    }


    $action = $_GET["action"];

    
    if ($action == "insert") {

        $conn = getConnection();

        $jsonString = file_get_contents('php://input');

        $data = json_decode($jsonString, true);

        $subject = $data["subject"];

        $text = $data["text"];


        $sql = "INSERT INTO utable (subject, text) VALUES('$text', '$subject')";

        if (mysqli_query($conn, $sql)){

            $last_id = mysqli_insert_id($conn);

            echo $last_id;

        } else {

            echo "Error: " . $sql . "
" . mysqli_error($conn);         }           }
    if ($action == "select") {

        $conn = getConnection();

        $sql = "SELECT * FROM utable";

        $result = $conn->query($sql);

        $output = array();

        if ($result->num_rows > 0) {

            while($row = $result->fetch_assoc()) {

                $record = array();

                $record["id"] = $row["id"];

                $record["subject"] = $row["subject"];

                $record["text"] = $row["text"];

                array_push($output, $record);

            }

        } else {

            echo "0 results";

        }


        $conn->close();

        echo json_encode($output);    

    } else if ($action == "update") {
    } else if ($action == "delete") {       
    }

 

    function getConnection () {

        $servername = "localhost";
        $username = "db";
        $password = "xxxxxxx";
        $dbname = "db";

        

        // Create connection

        $conn = new mysqli($servername, $username, $password, $dbname);

        if ($conn->connect_error) {

            die("Connection failed: " . $conn->connect_error);

        }

        return $conn;

    }
    

    ?>


نظرات

کاشی زاده 10 سال پیش
بهترین کار این هست که خطا های سما سرور را با اعمال تنظیماتی قابل نمایش کنید تا بهتر بتونید دیباگ را انجام دهید . لینک
alfredo 10 سال پیش
متشکرم. والا نتونستم سردر بیارم از توضیحات اون لینک. .htaccess نمیدونم چی هست یا یک سری کد نوشتند که نمیدونم باید کجا بنویسمشون. ولی توی کدها پی اچ پی خودمون یک خط پیدا کردم گفتم شاید مشکل از این باشه $js این خط با توجه به اینکه سرور من داخلی نیست نباید تغییر کنه؟
alfredo 10 سال پیش

 استاد بالاخره کشف کردم !

باید اونجا که توی php مینوشتم

$sql = "INSERT INTO utable (subject, text) VALUES ('$text', '$subject')";

این مدلی مینوشتم:

$sql = "INSERT INTO `db`.`utable` (`subject`, `text`) VALUES ('$text', '$subject')";

این رو از دستورات دیفالت خود اسکو ال منیجیر سایتم فهمیدم. دستی یک سطر در جدول ایجاد کردم دیدم کدهاش رو این مدلی نوشت. بعد توی   php  کد خودمو آپدیت کردم و درست شد.

دست شما درد نکنه. شرمنده خیلی اذیتتون کردم. ایشالا بعدا جبران میکنم.

 

نظرات

alfredo 10 سال پیش

استاد من روم سیاست. یک مشکل خیلی خیلی ریز پیش اومده فقط.

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

فکر کنم اطلاعاتم توی لیست درست لود نمیشه بعد از ساخت یک نوت جدید ! 

نظرات

کاشی زاده 10 سال پیش
خطایی در کد هاتون هست مطمئنا ، باید کدهاتون رو بررسی کنید و با استفاده دستور Print خط به خط آن ها را چاپ کنید تا به محل باگ برسید .

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .