• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPについて質問です。)

PHP超初心者の変数変更プログラムでWarningエラーが発生し、機能が制限される問題

tsaitoの回答

  • tsaito
  • ベストアンサー率68% (17/25)
回答No.2

$password_file = file("/conf/config.php"); ↓ $password_file = file("./conf/config.php"); /conf の前に . をつけたらどうでしょう?

関連するQ&A

  • phpをレンタルサーバにアップしてもうまくいかない

    Xamppのapacheを用いて localhostで次のプログラムを実行するとうまくいくのですが いざレンタルサーバにアップするとうまくいきません。 (whss.bizというphp,mysql対応サーバ) <?php if(isset($_POST['userid'])==True && isset($_POST['password'])==True) { $userid=$_POST['userid']; $password=$_POST['password']; $logFile=dirname(__FILE__).'/'.$userid.'.log'; if(file_exists($logFile)==False) { file_put_contents($logFile,$password); header("Location:backtotop.html"); } else { echo '<font color="red">このユーザーIDはすでに使われています。<br> 恐れ入りますが別のIDにして下さい。</font><br>'; } } ?> <html> <head> <title>新規登録画面</title> </head> <body> 新規ユーザー登録を行います。<br> 好きなユーザー名とパスワードをともに半角英数字で入力してください。<br> <form action="newuser.php" method="POST"> ユーザー名:<br> <input type="text" name="userid" size="25" /><br /> パスワード:<br> <input type="text" name="password" size="25"> <input type="submit" value="入力完了"> </form> </body> </html> これはユーザーIDとパスワードを登録するものなのですが、 Warning: file_put_contents(/home/brightsuger/public_html/brightsuger.log) [function.file-put-contents]: failed to open stream: Permission denied in /home/brightsuger/public_html/newuser.php on line 9 Warning: Cannot modify header information - headers already sent by (output started at /home/brightsuger/public_html/newuser.php:9) in /home/brightsuger/public_html/newuser.php on line 10 入力完了を押すと↑がでてきてしまいます。 1つ目のWarningにあるように サーバー上ではfile_put_contentsはできないのでしょうか? また、2つ目のWarningは意味がよくわかりません。

    • ベストアンサー
    • PHP
  • php $_SESSIONで値が消える。

    いつもお世話になり誠にありがとうございます。 標記の件。 インプット画面ー>確認画面ー>戻るー>インプット画面 インプット画面に戻った時、どうしても最初のインプット画面で打った内容が消えてしまいます。 プログラムを診て、誤りを指摘して頂けないでしょうか? どうぞよろしくお願い致します。           記 <?php session_start(); $mode = 'input'; if( isset($_POST['back']) && $_POST['back'] ){ //何もしない } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['email'] = $_POST['email']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_POST['send']) && $_POST['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['email'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!DOCTYPE html> <html lang="ja"> <head> </head> <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){ ?> <form method=post> お名前(ニックネーム)<br> <input type="text" name="name" value="<?php echo $_SESSION['name'] ?>"><br> Eメール<br> <input type="email" name="email" value="<?php echo $_SESSION['email'] ?>"><br> カテゴリー<br> <input type="text" name="category" value="<?php echo $_SESSION['category'] ?>"><br> 本文<br> <textarea style="font-size:1.5em;" cols="30" rows="80" name="message"><?php echo $_SESSION['message'] ?></textarea><br> <input type="submit" name="confirm" value="確認" /> </form> <?php }else if( $mode=='confirm'){ ?> <!--確認画面--> <form method="post"> <?php echo $_SESSION['name']?><br> <?php echo $_SESSION['email']?><br> <?php echo $_SESSION['category']?><br> <br> <?php echo nl2br($_SESSION['message'])?><br> <input type="submit" name="back" value="戻る"/> <input type="submit" name="send" value="送信"/> } </form> <?php } else { ?> <!--完了画面--> <?php } ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPのセッションについて

    PHPのセッションについて 現在ログインフォームを作成しているのですが、 ログインフォームからIDとパスワードを送信して、合っていれば セッションを発行してロケーションで飛ばそうと思っているのですが、 初回時にIDとパスワードを入力して送信しても、セッションが引き継がれず 2回目以降だとセッションが引き継がれる症状に悩んでおります。 どなたかご教授ください。 宜しくお願いいたします。 【login.php】-------------------------------- <?php session_name("stock"); session_start(); $error_flag = 0; if(isset($_POST["login"])){ $id = htmlentities($_POST["id"],ENT_COMPAT); $password = trim(htmlentities($_POST["password"],ENT_COMPAT)); if($login_id == $id && $login_pass == $password){ $_SESSION["id"] = $id; $_SESSION["password"] = $password; header("Location:stock.php"); exit; }else{ $error_flag = 1; } } echo <<<EOD <form method="post" action="login.php" id="login"> <input type="text" name="id" id="id" > <input type="password" name="password" id="password"> <input type="submit" name="login" value="ログイン" /> </form> EOD; 【stock.php】--------------------------------- <?php session_name("stock"); session_start(); echo $_SESSION["id"]; echo $_SESSION["password"]; ?>

    • ベストアンサー
    • PHP
  • phpがうまく動きません。

    phpで4択のクイズを作りたいのですが 正解のラジオボタンを選んでもカウントされないのと 答え合わせを押すと正解だった箇所を赤く表示したいのですがなんて書けばよいのか どこにそのコードを入れるのかよくわかりません <状態> ・5つのデータがmyadminに保存されています ・データベースの内容は表示されます。 ・答え合わせを押すと正解のラジオボタンを選んだ数が表示されるようにしたいです ・保存ボタンは閉じても答えを保存するためにあります ・q_noは8ケタ固定であり、左から5つ目までは固定であと3桁は999問入れられるよう設定してあります ・q_ansはデータベースに答えの値(1~4)が入れてあります ・データベース名はproblemです <省略> $res_set = mysql_query($sql); while ($row=mysql_fetch_array($res_set)){ ?> <form method="POST" action="H2102.php"> <?php echo $row['q_no'] . " "; ?> <br> <?php echo $row['q_text'] . " "; ?><br><br> <br> <?php echo "ア"; ?> <input type="radio" name="q_ans" value="1"> <?php echo $row['q_point1'] . " "; ?> <br><br><br> <?php echo "イ"; ?> <input type="radio" name="q_ans" value="2"> <?php echo $row['q_point2'] . " "; ?> <br> <br><br> <?php echo "ウ"; ?> <input type="radio" name="q_ans" value="3"> <?php echo $row['q_point3'] . " "; ?> <br><br><br> <?php echo "エ"; ?> <input type="radio" name="q_ans" value="4"> <?php echo $row['q_point4'] . " "; ?> <br><br><br> <br> <input type = "submit" name="save" value="保存"> <?php if(isset($_POST['save'])){ $_SESSION['save'] = $_POST['q_ans']; //保存すると選んだ回答を保存 } ?> <?php } ?> </form> <form method="POST" action="H2102.php"> <input type = "submit" name="ans" value="答え合わせ"> <?php //正解かどうかをチェック if(isset($_POST['ans'])){ $a = $_SESSION['a']; if($row['q_no'] == $_POST['q_no'] && $_POST['q_ans'] || $_SESSION['save'] == $row['q_ans'] ){ $_SESSION['a'] = $a + 1; //q_noが一致かつ保存した値または選んだ解答(値)が一致していれば1問につき1つカウントする $a = $_SESSION['a']; } echo $a; //カウントされているかをチェック } ?> <input type = "submit" name="del" value="カウント初期化"> <?php if(isset($_POST['del'])){ session_unset(); } ?> </form> <br> <?php } ?> 足りない情報があれば追記します

    • 締切済み
    • PHP
  • PHPでのCookie

    PHPでクッキーを使い、下記のような入力フォームを作りました。 form.phpで入力→form2.phpで正常出力出来るのですが、 form2.phpで一度更新しないと、結果が画面に表示されません。 これをform2.phpを開いた時点で表示されるようにするには、どのように書けばいいのでしょう。 後1つあります。form.phpで 「テスト&1」と書くと「テスト」としか表示されなく、&とそれ以降が記憶されません。 これはなぜでしょうか? お願いします。 【form.php】 <?PHP parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); ?> <html> <form method="post" action="form2.php"> <?PHP echo "名前1<input type=text name=name1 maxlength=16 size=12 value=$set_name1> <BR>ID<input type=text name=p1 maxlength=8 size=6 value=$set1><BR><BR>"; echo "名前2<input type=text name=name2 maxlength=16 size=12 value=$set_name2> <BR>ID<input type=text name=p2 maxlength=8 size=6 value=$set2>"; ?> <input type="submit" value="実行"> </form> </html> 【form2.php】 <?php if ($_POST) { $city1 = $_POST["p1"]; $city2 = $_POST["p2"]; $city_name1 = $_POST["name1"]; $city_name2 = $_POST["name2"]; setcookie ("city", "set1=$city1&set2=$city2",time()+3600*24*90); setcookie ("city_name", "set_name1=$city_name1&set_name2=$city_name2",time()+3600*24*90); } parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); echo $set_name1; echo $set1; echo $set_name2; echo $set2; ?>

    • ベストアンサー
    • PHP
  • 管理パスワードによる認証

    既存のファイルに管理者による認証を付加したいと思いますが、下記のコードではうまくいきません。アドバイス下さい。 <?php //パスワードの設定 $password = "admin"; //パスワードチェック passchk(); function passchk(){ global $password, $post; $p = $post['pass']; if ($p == $password) { echo "認証成功!"; // return; } else { echo<<<EOM <p>パスワードを確認して下さい。</p><br> <form action="login.php" method="post"> パスワード:<input type="password" name="pass" size="8"> <input type=submit value="ログイン" /> </form> EOM; exit; } } ?>

    • 締切済み
    • PHP
  • PHPに複数のパラメータを渡すには?

    こんばんわ。 PHPを入門書片手にいろいろ試しています。 phpでボタンを表示して、押されたら別のphpを呼び出したいと思っています。 そのphpにパラメータを二つ渡したいのですが、どのように記述すればよろしいのでしょうか? 抜粋すると以下のような感じなのですが、 $machi_id = "秋葉原" ; $mise_id = "ジャンク屋" ; echo "<form action=\"henkou.php\" method=\"post\" name =\"jusho_id\" >\n"; echo "<input type=\"submit\" name=\"jusho_id\" value=\"住所の変更\" >\n"; echo "</form>\n"; $machi_idと$mise_idをhenkou.phpに渡したいのです。 henkou.phpで$_GETでも$_POSTでもいいので何らかの方法で$machi_idと$mise_idを取得するにはどのようするばよろしいのでしょうか? 上記についてよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでのクッキー

    PHPでクッキーを使い、下記のような入力フォームを作りました。 form.phpで入力→form2.phpで正常出力出来るのですが、 直接form2.phpへ飛ぶと、クッキーの値がなくなってしまいます。 setcokkieが、何の値もないのを上書きしていることは理解できるのですが、これを上書きせず回避?する方法はありますでしょうか? よろしくお願いします。 【form.php】 <?PHP parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); ?> <html> <form method="post" action="form2.php"> <?PHP echo "名前1<input type=text name=name1 maxlength=16 size=12 value=$set_name1> <BR>ID<input type=text name=p1 maxlength=8 size=6 value=$set1><BR><BR>"; echo "名前2<input type=text name=name2 maxlength=16 size=12 value=$set_name2> <BR>ID<input type=text name=p2 maxlength=8 size=6 value=$set2>"; ?> <input type="submit" value="実行"> </form> </html> 【form2.php】 <?php $city1 = $_POST["p1"]; $city2 = $_POST["p2"]; $city_name1 = $_POST["name1"]; $city_name2 = $_POST["name2"]; setcookie ("city", "set1=$city1&set2=$city2",time()+3600*24*90); setcookie ("city_name", "set_name1=$city_name1&set_name2=$city_name2",time()+3600*24*90); parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); echo $set_name1; echo $set1; echo $set_name2; echo $set2; ?>

    • ベストアンサー
    • PHP
  • PHP+HTMLの確認画面から入力画面に戻る際のデータ保持について質問

    PHP+HTMLの確認画面から入力画面に戻る際のデータ保持について質問致します。 1.入力→2.確認→3.実行の3ページを作成しましたが、 2.確認で入力した値が間違っていた場合、1.入力に戻って訂正する仕様です 私は2.確認の戻るボタンにjavaのhistory.back();を使ったのですが ブラウザやOSにより、戻った際にデータが保持されていない場合があるとの事だったので 他の方法がないかご教授下さい。サンプルコードを書いて頂くと助かります。 以下、作成したコード 1.入力画面(mail.html) <html> <body> <form action="chk.php" method="post"> 件名:<br> <input type="text" name="subject" size="30" value=""><br> 送信者名:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> 本文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="確認する">&nbsp&nbsp<input type="reset" value="クリア"> </form> </body> </html> 2.確認画面(chk.php) <?php $name = $_POST["name"]; $message = $_POST["message"]; $subject = $_POST["subject"]; $mail = $_POST["mail"]; ?> <html> <body> <form action="send.php" method="post"> 件名:<?php echo $subject; ?><br> 送信者名:<?php echo $name; ?><br> メールアドレス:<?php echo $mail; ?><br> 本文:<?php echo $message; ?><br> <input type="submit" value="これでOK"> &nbsp&nbsp //下記の戻るボタンで戻るとデータ保持をするようにしたい。history.back以外で。 <input type="button" value="戻る" onclick="history.back();"> <input type="hidden" name="name" value="<?php echo $name; ?>"> <input type="hidden" name="message" value="<?php echo $message; ?>"> <input type="hidden" name="subject" value="<?php echo $subject; ?>"> <input type="hidden" name="mail" value="<?php echo $mail; ?>"> </form> </body> </html> 3.送信画面(send.php) <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("hoge@example.com", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <body> <p>メールが送信されました。</p> </body> </html> 初心者ですので、わかりやすい表記をお願い致します。

    • 締切済み
    • PHP
  • htmlとphpのデータ受け渡し???

    いつもお世話になり誠にありがとうございます。 標記の件。 まだ、ボク自身、解っていないようです。 htmlとphpのソースコードを提示します。 どうすればデータの受け渡しができるか? 添削してくださらないでしょうか? html <!--入力画面--> <form action = "./Blog.php" method = "get"> <label class="label" for="name">お名前(ニックネーム)</label> <center><input id="name" type="text" name="name"></center> <label class="label" for="e-mail">メール</label> <input id="e-mail" type="e-mail" name="e-mail"> <label class="label" for="category">カテゴリー</label> <input id="category" type="category" name="categoryl"> <label class="label" for="message">本文</label> <textarea name="area1" style="color:rgb(8, 8, 8); font-size:100%;" cols="50" rows="30"></textarea><br> <input type="submit" name="confiem" value="確認"> </form> CSS <meta charset="utf-8"> <?php session_start(); $mode = 'input'; if( isset($_POST['back']) && $_POST['back'] ){ //何もしない } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['e-mail'] = $_POST['e-mail']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_POST['send']) && $_POST['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['e-mail'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!--確認画面--> <?php if( $mode == 'input' ){ ?> お名前(ニックネーム)<?php echo $_POST['name'] ?><br> Eメール<?php echo $_POST['e-mail'] ?><br> カテゴリー<?php echo $_POST['category'] ?><br> 本文<br> <?php echo nl2br($_POST['message']) ?><br> <input type="submit" name="back" value="戻る" /> <input type="submit" name="send" value="送信" /> <?php } else { ?> <!--完了画面--> <?php } ?> 上記の通りです。 全然ダメだと思います。 添削のほど、宜しくお願い申し上げます。

    • ベストアンサー
    • PHP