Запутался, где разместить php файл (laravel 5.3)

0

Мне нужно реализовать функцию текстовых сообщений для моего приложения, для этого у меня есть php файл, который я получаю от поставщика услуг, где вам нужно разместить данные db. И дайте свой путь поставщику услуг для добавления на сервер. Я смущен, где разместить и, по его словам, если я укажу этот путь к файлу в url, он должен вернуть номер контакта и тело сообщения, но я не могу его проверить.

сценарий выглядит так:

    <?php
    //  MySQL table outbox:
    // CREATE TABLE outbox(sender VARCHAR(255), rcpt VARCHAR(255), body VARCHAR(255));
    $mysql_host = "localhost";


    $mysql_base = "school_laravel";

    $mysql_user = "root";

    $mysql_password = "";

    $table = "outbox";

    mysql_connect($mysql_host, $mysql_user, $mysql_password);
    mysql_select_db($mysql_base);

    mysql_query("LOCK TABLES $table WRITE, $table AS $table" . "_read READ");

 $get_query = "SELECT * FROM $table AS $table" . "_read";
 $del_query = "DELETE FROM " . $table;
 if ($_GET['device'] != '') {
  $suffix = " WHERE sender='" . $_GET['device'] . "'";
     $get_query .= suffix;
  $del_query .= suffix;
 }
 $result = mysql_query($get_query);
    echo '<messages>';
    while ($array = mysql_fetch_array($result)) {
  echo '<message msisdn="' . $array['rcpt'] . '">' . $array['body'] . "</message>\n";
 }
 mysql_query($del_query);
 mysql_query("UNLOCK tables");
    echo '</messages>';
?>

Мой вопрос заключается в том, где я должен поместить его в каталог laravel и можно получить данные таблицы, так как я упоминал подробности БД в приведенном выше сценарии.

Спасибо за помощь

  • 3
    Не используйте функции mysql_* . Они устарели с версии 5.5 (июнь 2013 г.) и удалены с версии 7.0 (декабрь 2015 г.). Вместо этого используйте функции mysqli_ * или PDO с подготовленными операторами и связанными параметрами .
  • 1
    Ваш код уязвим для атак SQL-инъекций . Вы должны использовать подготовленные операторы mysqli или PDO со связанными параметрами, как описано в этом посте .
Показать ещё 2 комментария
Теги:

1 ответ

4

Даже если это сэкономит вам минуту, я бы не использовал этот код на вашем сайте. Было бы трудно использовать на сайте Laravel, если вы не перепишете его. Если вам все равно придется переписывать, возможно, вы могли бы сделать это с помощью Laravel.

Сценарий, который у вас есть, выглядит довольно просто, чтобы переписать его. Этот код не проверен. Я бы не стал копировать и вставлять его в ваше приложение и работать без изменений, но вот основные шаги.

Шаг 1 - Создайте модель для вашей таблицы.

Приложение /Outbox.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Outbox extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'outbox';

}

Шаг 2 - Создайте контроллер

приложение /Http/Контроллеры/MessagesController.php

<?php

namespace App\Http\Controllers;

use App\Outbox;
use Illuminate\Http\Request;

class MessagesController extends Controller
{
    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function show($sender)
    {

        $messages = Outbox::where('sender', $sender)
                      ->firstOrFail();

        $ids_to_delete = $messages->pluck('id');

        Outbox::destroy($ids_to_delete);

        return view('messages')
                 ->with('messages', $messages);;
    }
}

Шаг 3 - Создайте представление

ресурсы/виды/messages.blade.php

<!DOCTYPE html>
<html lang="en">
  <head>
      <title>
          laravel.com
      </title>
  </head>
  <body>
    <div>
      <messages>
        @foreach($messages as $message)
          <message msisdn="{{ $message->rcpt }}">{{ $message->body }}</message>
        @endforeach
    </div>
  </body>
</html>

Шаг 4 - добавьте маршрут для нового контроллера

Приложение/маршруты/web.php

Route::get('messages/{sender}', 'MessagesController@show');

Шаг 5 - Посетите новый URL-адрес

http://localhost/messages/device

Где бы ни было устройство $_GET['device'].

Ещё вопросы

Сообщество Overcoder
Наверх
Меню