私は高校生で、ウェブデザイン クラスの最終プロジェクトを完成させようとしています。PHP のグローバル配列「POST」で問題が発生しました。
背景情報: キャンバスに描画できるようにするために Js (JavaScript) を使用した HTML 5 キャンバス要素があります。これまでのところ、すべて問題ありません。ここで、キャンバスをサーバー上のテキスト ファイルに保存して、他の誰かがこの .txt ファイルを取得してキャンバスを再描画できるようにします。
実際の問題に進みます。関数「.toDataUrl()」を使用して、キャンバスのコードを抽出しました。これを AJAX を使用して php ファイルに送信し、それを txt ファイルに書き込むと、ファイルを閉じて php スクリプトを終了する必要があります。
現在、私のコードは次のようになっています。
Javascript:
function save() {
if (selectSave.selectedIndex == 0) {
dataURLSave1 = canvas.toDataURL();
var request = ajaxRequest;
request.open("POST", "http://berzanlabb.se/te11e/jimbjo310/Projektsida/write_1.php", true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.setRequestHeader("Content-length", dataURLSave1.length);
request.setRequestHeader("Connection", "close")
request.onreadystatechange = function() {//Call a function when the state changes.
if(request.readyState == 4 && request.status == 200) {
alert("Done: "+request.responseText);
}
}
request.send(dataURLSave1);
return;
}
およびphp:
<?php
$file=fopen("save_1.txt","w+") or exit("Unable to open file!");
$_POST['dataURLSave1'];
$test=$_POST['dataURLSave1'];
echo fwrite($file,"$test");
fclose($file);
?>
このコードは、グローバル変数「GET」では機能しますが、POST では機能しません。私が直面している問題は、GET が送信したい変数を送信するのに十分な長さではないことです。そのため、代わりに POST を使用しました。しかし、今のところ、php が変数を取得していない理由がわかりません。
書式設定が今まで見たことのないものである場合、またはこの質問が以前に聞かれたことがある場合は申し訳ありません。ネットで答えを探してみましたが、まだ見つかりません。