• 締切済み

サーバーにアップロードしたら動きません。

はじめまして。今プログラミングを学習しています。 Form欄から記入した名前、年齢をMysqlのデータベースに格納するプログラミングを作っています。ローカルにインストールしているapacheでは上手く動作するのですが現在レンタルしている(php動作可)サーバーにアップロードすると動きません。その時のエラーでは500 Internal Server Errorかアクセスの許可がありません。のどちらかです。ファイルへのアクセス許可を変えるとこの2つの内のどちらかになります。どのようにすればサーバー上でも動くのでしょうか? プログラムの簡単な説明は Form.htmlでpostされたデータを格納したら check.phpでデータを挿入しましたと表示される 物です。

みんなの回答

回答No.3

《500 Internal Server Error》ということは、CGI認識されている可能性があると言う事です。 ひょっとして、レンタルサーバのPHPはCGI版で、あなたのローカルのPHPはモジュール版なんじゃないですか? ファイルの先頭に、 #!/usr/local/bin/php のような呪文が必要かもしれません。(サーバの設定により不必要な場合もアリ) レンタルサーバに確認されたらと思います。 この辺参考に。 http://support.sakura.ad.jp/support/web/manual/trouble/web500.html http://www27.tok2.com/home/wanchan/500.htm

  • f_motion
  • ベストアンサー率53% (7/13)
回答No.2

ローカルで動いているなら、ソースは大丈夫でしょう、 後は、他のphpファイルが動くなら、 .htaccess設置していたら、それが間違っているとか 設定関係だと思いますがね。

ness1111
質問者

お礼

はい。まだ確かめてませんが確認してみます。これじゃまだあまりにも原因となりそうな要因が多すぎて特定も出来そうにないですね。1つ1つ可能性を潰して見ます。ありがとうございました。

  • f_motion
  • ベストアンサー率53% (7/13)
回答No.1

LINUXサーバだと思いますので、 check.phpのパーミッションを 775か777辺りで動くと思いますが、 サーバ会社の説明にあると思います。

ness1111
質問者

補足

それでもダメです。ソースは <?php require_once("DB.php"); //投稿のため伏せてあります。 $dbUser = ""; // ユーザー名 $dbPass = ""; // パスワード $dbHost = ""; // ホスト名 $dbName = ""; // データベース名 $dbType = ""; // データベースの種類 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; // データベースに接続 $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)){ die($conn->getMessage()); } // POSTされたデータを受け取り、エスケープします。 $last_name = addslashes($_POST['last_name']); $first_name = addslashes($_POST['first_name']); $age = addslashes($_POST['age']); $sql = <<<EOS INSERT INTO member ( last_name, first_name, age ) VALUES ( '$last_name', '$first_name', $age ) EOS; if(preg_match("/Windows/", $_ENV["OS"])){ $sql = mb_convert_encoding( $sql, "SJIS", "EUC-JP"); } // SQL文を発行 $result = $conn->query($sql); if (DB::isError($result)) { die ($result->getMessage()); } $count = $conn->affectedRows(); print "データを" . $count . "件、挿入しました。"; // データベースから切断します。 $conn->disconnect(); ?> です。コードに間違いがあるんでしょうか? サーバでの設置場所は www---form.html(777)      check.php(777) としてます。

関連するQ&A