みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FileMakerServe for PHP の 設定がうまくできません。
ファイル「FileMaker.php」と
そこから指定されるサーバーが本当に起動しているかどのようにしてわかるのでしょうか?
よろしくお願いします。
サーバーは何?
サーバーとして以下の様に設定しました。
①MacMINIにMAMPを設定
http://hapisupu.com/2015/11/mamp-install-setting/
②FileMakerSever14を、同じMacMINIにインストール
この様な状況です。
よろしくお願いします。
FileMaker Serverは自前のapacheで動きますので、MAMPのインストールは不要です。というかMAMPでは動かない?
FileMaker Serverインストール時にphp関係も同時にインストールされるので、あれこれ設定しなくても
http://サーバーアドレス/index.html にアクセスすると「FileMaker Database Server Website」と表示されるはずです。
ディレクトリは
Macintosh HD/Library/FileMaker Server/HTTPServer/htdocs/index.html
なんで、この中にhtmlやphpを突っ込んでいけばいいです。
うちはver.13なんで多少違うかもしれません。
Offline
ありがとうございます。
>http://サーバーアドレス/index.html にアクセスすると「FileMaker Database Server Website」と表示されるはずです。
→ これは、出来ました。
>Macintosh HD/Library/FileMaker Server/HTTPServer/htdocs/index.html
→ これもしているのですが?? どうも思った様にいかなくて。。
FileMaker.php これが効いている事は、何をすればわかるでしょうか?
以下の様に、①→②③を動かしているのですが、
①は表示されて文字も入力できるのですが、ボタン「投稿」を押すと、
画面にスクリプト文字が表示されてしまい、FM上もデータ更新されません。
①ファイル「postform.html」
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>ミニブログ</h1>
<form action="post.php" method="post">
<textarea name="contents" cols="35" rows="4" maxlength="140"></textarea>
<input type="submit" value="投稿">
</form>
</body>
</html>
②ファイル「server.php」
<?php
$fm = newFileMaker('miniblog' , 'localhost' , 'php' , 'php');
?>
③ファイル「post.php」
<?php
require_once('FileMaker.php');
require_once('server.php');
$contents = $_POST['contents'];
$add =& $fm->newAddcommand('post_master');
$add->setField('contents',$contents);
$result= $add->execute();
よろしくお願いします。
AdminConsoleでPHPを有効にしてますか?
しかし[画面にスクリプト文字が表示され]ということは、APIでなくPHP自体が無効になってるわけですが、Macの場合ファイルに実行フラグつけたりしないといけないのかな?
FileMaker Serverをインストールするときにphpを有効にするステップがあったと思いますが、昔のことなので忘れました。
場合によっては、ここで撥ねられることもあったなー。
藤さんのおっしゃる通り、AdminConsoleでphpを有効にすれば大丈夫だと思います。
確認用に以下の中身でphpinfo.phpというファイルをhttp rootに置いとくと便利ですよ。
<?php
phpinfo();
?>
Offline
先にMAMPをインストールしてるんで、「phpを有効にするステップ」のときにFMSと同時にインストールするPHPを使用する設定にしなかったんじゃないかな。
最初からFMSだけインストールし直したほうが早いかも。
藤 稔さん yayaさん
お返事をいただきありがとうございます。
>AdminConsoleでPHPを有効にしてますか?
→ しています。
>FileMaker Serverをインストールするときにphpを有効にするステップがあったと思いますが、
→ ありました。有効にしています。
>確認用に以下の中身でphpinfo.phpというファイルをhttp rootに置いとくと便利ですよ。
→http://localhost/phpinfo.php これを実行すると、青い、紫のPHPの画面が出ました。
>最初からFMSだけインストールし直したほうが早いかも。
→ 再インストールということでしょうか?
試してみます。
ありがとうございます。
再インストールしましたが、ダメでした。。
phpinfo.phpでインフォメーションテーブルが出てるということは、phpは動作しています。
なのに、post.phpはスクリプトが出てくるというのは考えられないです。
お書きになっている内容なら白紙ページか、エラーメッセージが出るはずですが。
AdminConsoleのアクティビティでminiblog.fmp12のPHPに●は付いていますか?
Offline
phpが動いている前提ですが、動作チェックなら newAddcommand よりも newFindCommand の方がファイル1つで済むので簡単です。
また結果に対してエラーチェックすると原因がわかることがあります。
if (FileMaker::isError($result)) {
echo $result->getCode(), "<br>";
echo $result->getMessage();
} else {
echo "OK";
}
Offline
yayaさん
ご連絡をいただきありがとうございます。
>AdminConsoleのアクティビティでminiblog.fmp12のPHPに●は付いていますか?
→ 大丈夫です。
>if (FileMaker::isError($result)) {
> echo $result->getCode(), "<br>";
> echo $result->getMessage();
>} else {
> echo "OK";
>}
→ これは、このまま書いて、URLに貼り付けて実行させればいいのでしょうか?
PHPは勉強を始めているところでよく理解できていないのです。
よろしくお願いします。
やはり、文字しか出てこないです。。
>→http://localhost/phpinfo.php これを実行すると、青い、紫のPHPの画面が出ました。
読み間違えたかな? phpinfoで画像検索してください。こういう画面になってますか?
>→ これは、このまま書いて、URLに貼り付けて実行させればいいのでしょうか?
post.phpの末尾に追加して下さい。FileMaker.phpのエラーメッセージが出ます。
あと post.phpの先頭の"<?php"の次に
ini_set("display_errors", 1);
を追加して下さい。これでphpのエラーメッセージが出るはず
Offline
>読み間違えたかな? phpinfoで画像検索してください。こういう画面になってますか?
→ なっています。
>post.phpの末尾に追加して下さい。FileMaker.phpのエラーメッセージが出ます。
>あと post.phpの先頭の"<?php"の次に
>ini_set("display_errors", 1);
>を追加して下さい。これでphpのエラーメッセージが出るはず
→ ご指導ありがとうございます。
実行してみましたが、やはり文字しか出てきません。。
logsフォルダーにあるファイルを見ると以下の記述がありました。
local:443:0 server certificate does NOT include an ID which matches the server name
これは、どういう意味なのでしょうか?
「http://localhost/post.php」
これで、実行すると、以下のエラーがでました。
Fatal error: Call to undefined function newFileMaker() in /Library/FileMaker Server/HTTPServer/htdocs/server.php on line 2
どのように理解すればいいのでしょうか?
newの後にスペースが抜けている。
scripterさん
アドバイスありがとうございます。
以下のように修正して実行しましたが、
やはり文字しか出てきませんでした。。
ただ、
「http://localhost/post.php」で実行すると
-----------
localhost ページは機能していません
localhost では現在このリクエストを処理できません。
HTTP ERROR 500
------------
このようなエラーがブラウザに出てきました。
■post.php
<?php
ini_set("display_errors", 1);
require_once('FileMaker.php');
require_once('server.php');
$contents = $_POST['contents'];
$add =& $fm->new Addcommand('post_master');
$add->setField('contents',$contents);
$result= $add->execute();
if (FileMaker::isError($result)) {
echo $result->getCode(), "<br>";
echo $result->getMessage();
} else {
echo "OK";
}
server.php にスペースが足りず
(誤)$fm = newFileMaker('miniblog' , 'localhost' , 'php' , 'php');
(正)$fm = new FileMaker('miniblog' , 'localhost' , 'php' , 'php');
post.php のスペースが余分
(誤)$add =& $fm->new Addcommand('post_master');
(正)$add =& $fm->newAddcommand('post_master');
です。
post.phpを実行するとpost_masterレイアウトでデータが空のレコードが作られます。
FileMakerのフィールド定義で空欄不可にしておくと「Field requires a valid value」というエラーが返って来ますね。
手元で試す限りでは何も問題ないけどなー。
Offline
ありがとうございます。
お返事が遅れてすみません。
試させていただきます。
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 563.63 KiB (Peak: 584.53 KiB) ]