2017-05-31 3 views
0

Ich muss Textnachricht Feature für meine Anwendung für die ich habe eine PHP-Datei, die ich von Service-Provider, wo db Details.dort und geben Sie den Pfad zum Dienstanbieter in Server hinzufügen. Ich bin verwirrt, wo man hingibt und ihm zufolge, wenn ich diesen Dateipfad in URL gebe, sollte es Kontaktnummer und Nachrichtkörper zurückgeben, aber ich bin nicht fähig, es zu prüfen.Verwirrt, wo PHP-Datei (Laravel 5.3)

Skript sieht aus, als

<?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>'; 
?> 

Meine Frage ist, dass, wo soll ich es in Laravel Verzeichnis und ist es möglich, eine Tabelle Details zu erhalten, wie ich oben Skript DB Details erwähnt.

Vielen Dank für Hilfe

+3

Verwenden Sie nicht die 'mysql_ *' Funktionen. Sie sind seit v5.5 (Juni 2013) veraltet und wurden seit v7.0 (Dez 2015) entfernt. Verwenden Sie stattdessen die [** mysqli _ ***] (https://secure.php.net/manual/de/book.mysqli.php) oder [** PDO **] (https://secure.php.net) /manual/en/book.pdo.php) funktioniert mit [** vorbereiteten Aussagen **] (https://secure.php.net/manual/en/pdo.prepare.php) und [** gebundenen Parametern ** ] (https://secure.php.net/manual/en/pdostatement.bindparam.php). –

+1

Ihr Code ist anfällig für [** SQL injection **] (https://en.wikipedia.org/wiki/SQL_injection) Angriffe. Sie sollten [** mysqli **] (https: //secure.php.net/manual/de/mysqli.prepare.php) oder [** PDO **] (https://secure.php.net/manual/de/pdo.prepared-statements.php) vorbereitete Anweisungen mit gebundenen Parametern wie beschrieben in [** dieser Beitrag **] (https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). –

+0

bitte jeder kann es als Antwort geben mit PDO oder etwas anderes –

Antwort

4

Auch wenn es Ihnen eine Minute Zeit spart, würde ich nicht diesen Code auf Ihrer Website verwenden. Es wäre schwierig, auf einer Laravel-Site zu verwenden, wenn Sie es nicht neu schreiben. Wenn du es sowieso neu schreiben musst, könntest du es vielleicht in Laravel machen.

Das Skript, das Sie haben, sieht ziemlich einfach aus, um neu zu schreiben. Dieser Code wurde nicht getestet. Ich würde nicht erwarten, es in Ihre App kopieren und einfügen und es ohne Änderungen funktionieren, aber hier sind die grundlegenden Schritte.

Schritt 1 - Create a Model for your table.

app/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'; 

} 

Schritt 2 - Create a controller

App/HTTP/Controller/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);; 
    } 
} 

Schritt 3 - Create a view

Ressourcen/views/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> 

Schritt 4 - Add a route for your new controller

app/Routen/web.php

Route::get('messages/{sender}', '[email protected]'); 

Schritt 5 - Besuchen Sie die neue UR L

http://localhost/messages/device

Wo Gerät ist, was $_GET['device'] gewesen wäre.