2016-08-25 6 views
2

SQLが真であるが、動作していない場合、スワップアラートを表示したい。 ここにバックエンド部分があります。

<?php 
include "../../../config/config.php"; 

if (isset($_POST['submit-slider'])) 
{ 
    $title = $_POST['title-slider']; 
    $description = $_POST['description-slider']; 
    $street = $_POST['street-slider']; 
    $phone = $_POST['phone-slider']; 
    $trip = $_POST['trip-slider']; 
    $web = $_POST['web-slider']; 
    $email = $_POST['email-slider']; 

    $target_dir = "../../../img/homepage/screen_4/"; 
    $target_file2 = "" . basename($_FILES["img-slider"]["name"]); 
    $target_file = $target_dir . basename($_FILES["img-slider"]["name"]); 


    $uploadOk = 1; 

    $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION); 


    // Check if $uploadOk is set to 0 by an error 
    if ($uploadOk == 0) { 
     // header("Location: /dashboard/views/slider/add_slider.php"); 
     // if everything is ok, try to upload file 
    } else { 
     if (move_uploaded_file($_FILES["img-slider"]["tmp_name"], $target_file)) { 


      //echo "The file ". basename($_FILES["img"]["name"]). " has been uploaded."; 
     } else { 
      echo "Sorry, there was an error uploading your file."; 
     } 


     $query = "INSERT INTO images(title, 
            description, 
            street_1, 
            phone, 
            url, 
            trip_link, 
            img, 
            email 
           ) 

            VALUES ('" . $title . "', '" 
       . $description . "', '" 
       . $street . "', '" 
       . $phone . "', '" 
       . $web . "', '" 
       . $trip . "', '" 
       . $target_file2 . "', '" 
       . $email . "')"; 

     $result = mysqli_query($con, $query); 

     if ($result) { 

      $_SESSION['succes_slider'] = 1; 
      header("Location: /dashboard/views/slider/add_slider.php"); 
     } else { 
//   $_SESSION['succes_slider'] = 0; 
      header("Location: /dashboard/views/slider/add_slider.php"); 
     } 
    } 
} 
?> 

ここで私は甘い警告を表示したいページです。

<?php 
session_start(); 
if (!isset($_SESSION['name'])) { 
    header("Location: /dashboard/login.php"); 
} 


//include "../config/config.php"; 
include "../../components/header.php"; 
include "../../components/menu.php"; 


if (isset($_SESSION['succes_slider']) == 1) { 
    echo" <script> 
      $(document).ready(function() { 
       swal('Succes','','succes'); 
      }); 
      </script>"; 
} 


?> 

</aside> 


<!-- Content Wrapper. Contains page content --> 
<div class="content-wrapper"> 
    <!-- Content Header (Page header) --> 
    <section class="content-header"> 
     <h1> 
      Hello 
      <small>HI</small> 
     </h1> 
    </section> 

    <!-- Main content --> 
    <section class="content"> 

動作していない理由を私は知らないと私は..myコードは、MySQLインジェクションの脆弱性があるが、私は今、この権利で働いていないよ知っています。ここで

他のページに動作していない理由を誰か知るのに役立つことができれば甘いアラートが、私のログインページに取り組んでいる。..

は、ログイン

if (isset($_POST['login'])) { 
    $email = mysqli_real_escape_string($con, $_POST['email']); 
    $password = mysqli_real_escape_string($con, $_POST['password']); 



    $sql = "SELECT * FROM users WHERE email='" . $email . "' AND password='" . md5($password) . "'"; 


    $result = mysqli_query($con, $sql); 


    $row_count = mysqli_num_rows($result); 


    if ($row_count != 0) { 
     $row = mysqli_fetch_assoc($result); 


     $_SESSION['email'] = $email; 
     $_SESSION['name'] = $row['name']; 




     header("Location: /dashboard/index.php"); 
    } else { 
     $_SESSION['error'] = 1; 
     header("Location: /dashboard/login.php"); 
    } 
} 

のバックエンドですログインのフロントエンドは他のページと同じですが、違いはセッションの名前です。

+0

あなたは( 'にsession_startを含める必要があります) '$ _SESSION'変数を使用するすべてのファイルで使用できます。 SQLインジェクションを防ぐために、プリペアドステートメントで入力をエスケープしたり、mysqli_real_escape_stringを使用したりすることもできます。 – Bobby

+1

**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman

答えて

0

$ _SESSIONのいずれかを使用する前に、session_startを使用する必要があります。さらに、インクルードを使用しているのを見ましたが、ファイルがない場合にエラーを引き起こすので、requireに移動することをお勧めします。 もう一つの提案は、ファイルにスクリプトが含まれているかどうかを確認することです。

私はあなたがファイルにコードタグを開始されたセッションを使用していなかったと思います
<?php 
// include "../../../config/config.php"; 
// if a file is missing include won't trigger an error 
require "../../../config/config.php"; 

// always include session_start where you plan to use $_SESSION 
session_start(); 

if (isset($_POST['submit-slider'])) 
+0

回答ありがとうございます。しかし、まだ動作していません:(そして、あなたのアドバイスに感謝!:) – Wargiry1962

+0

私はあなたが.jsエラーを述べたことを見た、あなたは私たちに与える必要がありますあなたの問題をよりよく分析できるようにもっと詳しく... –

+0

問題は解決しました。解決策はセッションを開始することでしたが、2番目の問題は甘美な警告でした。メッセージタイプの名前を間違って書きました。ありがとうPS: m romanian too:D。 – Wargiry1962

0

最初のファイルでは、session_start()も使用する必要があります。

$_SESSION['succes_slider'] = 1;を割り当てていますが、このファイルでセッションが開始されていません。 したがって、最初のコードの最初の行にsession_start();を使用するだけで動作します。

+0

あなたの答えをありがとうが、それはまだ動作していません:..そして、コンソールで "Uncaught ReferenceError:logStrが定義されていませんsweetalert.min.js:1"というエラーが見つかりました – Wargiry1962

+0

sweetalert-codeは他の場所で動作しますか? – Bobby

+0

ログインページ私はログインページで投稿を編集します.. – Wargiry1962

0

...

あなたが必要とした直後にこれを追加します。

session_start(); 
関連する問題