2016-08-06 11 views
0

私は単純なスクリプトファイルの入力に取り組んでいます。これはサイトの背景を指定された画像に変更します。それは動作しますが、サイトをリフレッシュすると問題が始まり、背景イメージは消えます。背景画像が設定されていないか確認してください

バックグラウンドが設定されているかどうかを設定して確認する方法が不思議だったので、次のファイル入力からずっと時間がかかりますか?

Iが一定であることをしようとしましたが、動作しませんが、ここに私のコードは次のとおりです。

if (isset($_POST['submit_bgImg'])) { 
    $myTarget = 'img/' . basename($_FILES['bg_img']['name']); 
    if (move_uploaded_file($_FILES['bg_img']['tmp_name'], $myTarget)) { 
     print('<style> body {background-image:url(img/' . $myFile . ');}</style>'); 
     define('MY_BG', $_FILES['bg_img']['name']); 
    } 
} 

if (defined('MY_BG')) { 
    print('<style> body {background-image:url(img/' . MY_BG . ');}</style>'); 
} 

任意のヘルプ?以下のような

+0

'isset($ _ POST ['submit_bgImg'])'これが問題です。リフレッシュ時に '$ _POST ['submit_bgImg']'は設定されません。 –

+0

このリンクを試す(http://stackoverflow.com/questions/11752451/how-do-i-set-a-fixed-background-image-for-a-php-file) – Arjun

+0

私は、クッキーまたはセッションを使用して一時的にファイル名を保持します。明らかに$ _postはリフレッシュで動かない –

答えて

0

あなただけのユーザーのためにそれを維持したい場合は、セッションやクッキーにMY_BG変数を格納する必要がありますに:$_SESSION['my_bg'] = $_FILES['bg_img']['name'];

あなたは永遠にそれを維持したい場合は、ファイルやMySQLなどのデータベースに保管しなければならない

$conn = new MySQLi('host','user','password','database name'); 
$conn->query("INSERT INTO table VALUES ('" . $bg_name . "')"); 
0

printの代わりにphpで試してみてください。ajaxを使用することをお勧めします。

if (isset($_POST['submit_bgImg'])) { 
    $myTarget = 'img/' . basename($_FILES['bg_img']['name']); 
    if (move_uploaded_file($_FILES['bg_img']['tmp_name'], $myTarget)) { 
     echo "<style> body {background-image:url(img/' . $myFile . ');}</style>"; 
     define('MY_BG', $_FILES['bg_img']['name']); 
    } 
} 

if (defined('MY_BG')) { 
    echo "<style> body {background-image:url(img/' . MY_BG . ');}</style>"; 
} 
関連する問題