• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「導入効果バツグン! PHP5.0+MySQL5.0で構築する最速Webシステム」)

導入効果バツグン!PHP5.0+MySQL5.0で構築する最速Webシステム

このQ&Aのポイント
  • 「フォトライブラリ」サンプルプログラムをregister_globals = onさせずに動かしてみたいのですが、うまく動作することが出来ません。
  • 現在、「写真のメンテナンス」と「カテゴリのメンテナンス」ページにおいて、password入力後、ログインボタンをクリックすると、それぞれ、photolib/adminlogin.php?id=1、photolib/adminlogin.php?id=2 へと遷移しますが、画面は真っ白で、そこから先へ進めない状態となっています。
  • フォームの値を受け取るための変更として、adminlogin.phpの$passwordを$_POST[password]へと変更しましたが、その他、何をどう変更すればよいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

処理している部分を、PHPの文法・形式が正しいかを全て見直されるのがいいと思います。 PHPでエラーになるとブラウザからは空白ページになることが多いから、PHPソースで確認するのが確実です。

re999
質問者

お礼

ご回答ありがとうございます。 アドバイスの通り、 一つ一つデバッグし倒していったら、 なんとか動くようになりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHP ログインシステムについて

    お世話になります 現在ローカルで下記PHPのテストを行っています PHP初心者の為、セキュリティ面並びに不具合が心配で書き込みさせて頂きました 恐れ入りますがおかしな点がないかチェックして頂けませんでしょうか 宜しくお願いいたします データベースのバージョンはMySQL 5.5です ***************************************** <?php session_start(); $error_message = ""; if (isset($_POST["login"])) { $id = htmlspecialchars($_POST['id']); $password = htmlspecialchars(base64_encode(pack('H*', sha1($_POST['password'])))); $_SESSION['id'] = $_POST['id']; $_SESSION['password'] = $_POST['password']; $db = mysql_connect("***","***","***"); if (!$db) { die('接続失敗です。'.mysql_error()); } mysql_set_charset("utf8"); $db_selected = mysql_select_db("***", $db); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } $result = mysql_query("SELECT * FROM ***"); if (!$result) { die('クエリーが失敗しました。'.mysql_error()); } function x($result) { return mysql_real_escape_string($result); } while ($row = mysql_fetch_assoc($result)) { if($id == $row['id'] && $password == $row['password']){ header("Location:./instance.php"); } } $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } session_destroy(); $error_message = "ユーザ名もしくはパスワードが違っています。"; } ?> <html> <head><title>ログイン</title> <meta http-equiv=Content-Type content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="style.css" media="screen" /> </head> <body> <?php if ($error_message) { print '<font color="red">'.$error_message.'</font>'; } ?> <form action="login.php" method="post"> ID:<input type="text" name="id"><br /> PASS:<input type="password" name="password"><br /> <input type="submit" name=login value="認証"> </form> </body> </html>

    • 締切済み
    • PHP
  • PHPとMySQLを使ったフォームを作っていますが、うまくできないこと

    PHPとMySQLを使ったフォームを作っていますが、うまくできないことがあり書き込みさせていただきます。 わかる方、ご助力願えれば幸いです。 フォームから、送信されたデータを受け取って、MySQLに登録する際に、フォーム内に空欄があると、うまくMySQLのデータベースに追加ができなかったり、変更ができなかったりします。 コードを簡単に書くと… <?php //フォームからデータを取得 $name = $_POST['name']; $address = $_POST['address']; $age = $_POST['age']; //データベース接続処理 $db = mysql_connect("localhost","user","password"); mysql_select_db("db_name",$db); $rs = mysql_query("select * from tablename order by my_id desc",$db); //データベースへの登録 $rs = mysql_query("INSERT INTO tablename(name,address,age)VALUES('$name','$address','$age')",$db); ?> このような感じになります。 フォームには、名前、住所、年齢を入力しているわけですが、年齢が必須でないため、空欄として送られてくることもあります。 年齢に数値が入っている場合は、うまく登録されますが、空欄であった場合、特にエラーが出るわけでもなく、単に「登録されない」という状況がおきます。 データベースのテーブルのフィールドでは、ageは int(11)でNULLはYes、defaultはNULLになっております。 自分なりに調べてみたつもりですが、知りたい情報に出合うことができませんでした。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • register_globalや$$という変数について・・・

    PHPの勉強を始めて2週間足らずの初学者です。 質問させていただきます。 環境はwindowsXP+xampp+PHP5.2です。 現在、やや古めのPHP書籍のサンプルを試しています。 register_globals=Onの状態では、問題なく動作しました。 しかし、Offにすると反応しない部分があります。 test.phpにてsupport.phpをincludeしているのですが、 以下の箇所をそれぞれregister_globals=Off用に書き換える知恵が ありません。ほんの一部のみの抜粋にて恐縮ですがご査収願います。 ---「test.phpの一部」----------------------------------------- echo '<INPUT TYPE="radio" NAME="',$name,'"VALUE="',$kaitoubango,'">',"$val\n<br />";} ---「support.phpの一部」-------------------------------------- $kaitoubango++; $name = $kaitoubango; $val = $$name; -------------------------------------------------------------- 繰り返しになりますが、register_globals=Onの状態では、問題なく動作しましたが、Offでこの状態でフォームアクションしても$val = $$name;に値がありません。 「support.php」の$$nameを$_POST['name']に変更すれば、可能かと思いましたが、ダメでした。 なお、部分的な質問になりますが、 (1)「test.php」のNAME="',$name,'"VALUE="',$kaitoubango,'"ですが、 何故、NAME="$name" VALUE="$kaitoubango"でないのでしょうか? 「',」は何を意味しているのでしょうか? (2)「support.php」の$$nameという変数ですが、$が2つ連続した変数は今のところ、初めて見ました。これはどういう意味なのでしょうか? お詳しい方がおられましたら、何卒アドバイスのを頂戴できればと思います。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpのregister_globalsについて

    xamppのPHP5.6.3で、register_globalsを有効にする方法がありましたらご教授ください。 なぜ、有効にする必要があるかと言いますと 参考にしている書籍(少々古いのですが)の環境はPHP4.3.11で、register_globalsを有効にしたサンプルがあるためです。 下記のような有効/無効にした例があります。 現在の私の環境では、2は表示されますが1はエラーとなります。 <? // login.php ?> <html> <body> 1:<?= $login ?><br> 2:<?= $_GET['login'] ?><br> <form action="login.php" method="get"> <input type"hidden" name="login" value="ログインします"> <input type="submit"> </form> </body> </html> 色々と調べてはみたのですが・・・ htdocs内に.htaccessで php_flag register_globals on にする方法を試してみましが、1はエラーで表示されます。 やり方が悪いのか、根本的に別の問題かわからず困っております。 xamppの古いバージョンを入れ直さずに動作確認できる方法がありましたら、よろしくご教授のほど、お願いします。

    • ベストアンサー
    • PHP
  • 【PHPとMySQLで登録・ログインフォームを作りたい】

    【PHPとMySQLで登録・ログインフォームを作りたい】 お世話になっております。 この度、大学の研究室のIP管理をすることになり、ホスト名を登録するフォームを作ろうと思っています。 そこで勉強も兼ねてPHPとMySQLを使って登録フォームとログインフォームを作りたいのですが中々参考になるサイトが見つからないのでよろしければサンプルや解説などがあるサイトを教えていただけると嬉しいです。 流れとしては 登録フォームでIDとパスワードを設定 ↓ ログインフォームでログイン ↓ 管理画面でホスト名を設定 で考えております。 登録フォームの作り方(PHPのフォームで文字を受け取りSQLに格納)の方法が分かれば管理画面もすぐ作れるかなと考えております。 参考になるサイトや解説サイト、サンプルサイトがあれば教えてください。お願いします。 フォームからの文字の受け取り方、SQLの格納の仕方など些細なことでもかまいません。お願いします。

    • ベストアンサー
    • PHP
  • 検索フォームからPHPに変数が渡せない際のSQL文の記述方法

    フォームから検索して結果リストを出力する、のような仕組みで、 ■フォーム <form method="post" action="result.php" name="query"> <input size="25" type="text" name="booktitle"> を含む</td> ■PHP内のSQL $sql = "SELECT * FROM MYDB WHERE BOOK LIKE '%$booktitle%') "; としても、変数「booktitle」が渡せません。 調べてみると「register_globals」の設定でFAQ化していることは なんとなく理解できました。register_globalsをONにすることは できないのですが、この場合SQL側の「'%$booktitle%'」の部分には なんと記述したらよいでしょうか?

    • ベストアンサー
    • PHP
  • if($mode == "insert"){ の書き方についてアドバイスをお願いします。

    FC4、php5とmysql4.1.20を入れて学習しています。 入力フォームに <form action="insert.php?mode=insert" method="POST"......と書き、 データ受取phpスクリプトに <? if($mode == "insert"){ $conn = mysql_connect("localhost","root","pass"); mysql_select_db("testDB","$conn"); $sql = "INSERT INTO SHOHIN (tanka,suu) values ('$tanka','$suu')"; ........... と書いたサンプルがあります。 ところが、入力フォームにデータをいれ、登録ボタンを押すと urlが、 http://localhost/***/insert.phpから http://localhost/***/insert.php?mode=insert に変わりますが、入力欄が白紙に戻ってデータ登録が出来ません。(そもそも、DBに接続が出来ません。) php.iniの register_globals = On にしても、状況は同じです。 コマンドライン上では、同じユーザ名パスワードでmysqlに順調に接続できデータ登録も出来ます。 試みに、php.iniの register_globals = Offで if($mode == "insert"){ を、if($_POST['$mode == insert']){ と変えてみましたが、解決出来ません。この書き方が拙いのでしょうか? 何かアドバイスを頂ければ有り難いです。よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP+MYSQLについて

    PHP+MYSQLについて 速効!図解プログラミング PHP+MYSQLと言うの本の中で紹介されています。PHPとMysqlで作る会員管理システムについてこの本を元にして構成を変更したく考えています。下記の内容を実現するにはどの様な変更するとうまくいくのでしょうか? 画面遷移を トップページ ⇒ 登録画面(全項目登録) ⇒ 確認画面 メール送信完了画面 メールhttp://~ ⇒ 登録完了 ⇒ ログイン を トップページ ⇒ 登録画面(メールのみの登録) ⇒ 確認画面 メール送信完了画面 メールhttp://~ ⇒ 本登録(全項目登録) ⇒ 登録録完了 ⇒ ログイン この本をお持ちの方、勉強された方どの様な作りにしたらよいと思いますか? ちなみにこの本のサンプルはhttp://book.mycom.co.jp/suport のSection72-81です。 皆様なにとぞお力をお貸しいただけます様によろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPの会員登録システムのエラーについて

    現在よくわるPHPの教科書という本を参考に、会員登録システムをつくっています。 しかし、本に書いてある内容をそのまま書いて実行してみてもエラーがでてきます。 そこでいろいろとネットで調べてみて以下のようなコードになりました。 <?php //$error = array('name'=>'', 'email'=>'', 'password'=>''); session_start(); if (!empty($_POST)) { if ($_POST['name'] === '') { $error['name'] = 'blank'; } if ($_POST['email'] === '') { $error['email'] = 'blank'; } if (strlen($_POST['password']) < 4) { $error['password'] = 'length'; } if ($_POST['password'] === '') { $error['password'] = 'blank'; } if (empty($error)) { $_SESSION['join'] = $_POST; header('Location: http:./check.php'); exit(); } } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>会員登録</title> </head> <body> <form action="" method="POST"> ユーザーID<input type="text" name="name" value="<?php print isset($_POST['name']) ? htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'):"";?>" /> <?php if ($error['name'] === 'blank') { ?> <p class="error">*ユーザーIDを入力してください</p> <?php } ?> メールアドレス<input type="text" name="email" value="<?php print isset($_POST['email']) ? htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'):"";?>" /> <br> <?php if ($error['email'] === 'blank') { ?> <p class="error">*メールアドレスを入力してください</p> <?php } ?> パスワード<input type="password" name="password"> <br> <?php if ($error['password'] === 'blank') { ?> <p class="error">*パスワードを入力してください</p> <?php } ?> <?php if ($error['password'] === 'length') { ?> <p class="error">*パスワードは4文字以上で入力してください</p> <?php } ?> <input type="submit" value="登録"> </form> </body> </html> しかしこれでもエラーがでます。以下のエラー Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/****/www/join/index.php on line 39 Parse error: syntax error, unexpected ':' in /home/kazu94/www/join/index.php on line 39 誰かこのエラーの謎を解いてください お願いします(泣)

    • 締切済み
    • PHP
  • PHPフォームからのMYSQL保存がマッチしない

    いつもお世話になります。 類似する質問も見つけられず、いろいろ試して悩んだ挙句、アプローチを変えてもう一度投稿することにしました。 発端は、下記のページです。 http://okwave.jp/qa/q8604578.html 問題は、phpmyadminからカラムまたはフィールドに入力したものは重複していればエラー表示されるのですが、PHPのフォームからMYSQLのデータベースに保存したもの(phpmyadmin上ではちゃんと登録されている)は重複とみなされず、エラーとして検出されません。 phpフォームからMYSQLのデータベースを呼び出してカラムまたはフィールド上に同じものがなければ保存、そうでなければエラー表示、といった形で重複させないプログラムを作成するつもりでした。 上記のページでご返信いただいたように、重複させないカラムにユニーク設定してみたのですが、問題は解決されませんでした。 文字コードが違うからと思ったのですが、MYSQL、PHPどちらもUTF-8で統一させています。 フォームからMYSQLへの保存時に問題があるのでは?と思うのですが、どのような形で修正すればうまくいくのか、わかりません。 どうか、知識の足りない私にご教授いただけないでしょうか? PHPの設定とMYSQLへの登録のプログラムは下記の通りです。 PHP・・・5.4.19 XAMPP・・・1.8.2 phpmyadmin・・・4.0.4.1 データベース文字コード(UTF-8) phpの文字コード(php.iniのdefault_characterをUTF-8に設定) <?php //データベースの接続設定 $DB_HOST = "localhost"; $DB_NAME = "○○"; $DB_USER = "○○"; $DB_PASS = "○○"; //データベースに接続する $conn = mysql_connect($DB_HOST,$DB_USER,$DB_PASS) or die("接続エラー"); mysql_select_db($DB_NAME) or die("接続エラー");        //データベース登録前にメール送信する $userID = $_POST['userID']; $password = $_POST['password']; $name = $_POST['name']; $mail1 = $_POST['mail1']; $userID = htmlspecialchars($userID); $password = htmlspecialchars($password); $name = htmlspecialchars($name); $mail1 = htmlspecialchars($mail1); $mail_sub = '登録を受け付けました。'; $mail_body = 'ご登録、誠にありがとうございました。'; $mail_body = html_entity_decode($mail_body,ENT_QUOTES,"UTF-8"); $mail_head = 'From:blowin@horae.dti.ne.jp'; mb_language('Japanese'); mb_internal_encoding("UTF-8"); mb_send_mail($mail1, $mail_sub, $mail_body,$mail_head); ?> <?php //デフォルトのタイムゾーンを日本に設定 date_default_timezone_set("Japan"); //フォーム情報をすべて受信 extract($_POST); //そのまま代入する形ではエラーが起きるため、isset関数を使ってエラー回避する if(isset($_POST['$userID'])){ $userID = cnv_dbstr($_POST['$userID']); } if(isset($_POST['$password'])){ $password = cnv_dbstr($_POST['$password']); } if(isset($_POST['$name'])){ $name = cnv_dbstr($_POST['$name']); } if(isset($_POST['$mail1'])){ $mail1 = cnv_dbstr($_POST['$mail1']); } //データを追加する $sql = "INSERT IGNORE INTO touroku(userID,password,name,email,date)"; $sql .= "VALUES( " ; $sql .= " ' " .$userID. " ', " ; $sql .= " ' " .$password. " ', " ; $sql .= " ' " .$name. " ', " ; $sql .= " ' " .$mail1. " ', " ; $sql .= " ' " .date("Y/m/d H:i:s") . " ' " ; $sql .= " ) " ; $res = mysql_query($sql,$conn) or die("データ追加エラー"); //SQLコマンド用の文字列に変換する関数 function cnv_dbstr($string){ //タグを無効にする $string = htmlspecialchars($string); //magic_quotes_gpcがOnの場合はエスケープを解除する if(get_magic_quotes_gpc()){ $string = stripslashes($string); } //SQLコマンド用の文字列にエスケープする $string = mysql_real_escape_string($string); return $string; } header('location:./testkanryou.php'); exit; ?> 大変申し訳ありませんが、どうか、よろしくお願い申し上げます。

    • 締切済み
    • PHP