🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

2587閲覧

xfreeでデータベースを用いたポートフォリオをデプロイしたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/01/18 04:15

編集2021/01/18 04:52

前提・実現したいこと

xfreeでデータベースを用いたポートフォリオをデプロイしたいです。

発生している問題・エラーメッセージ

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/utan/utan.php.xdomain.jp/public_html/mini_bbs/join/index.php:5) in /home/utan/utan.php.xdomain.jp/public_html/mini_bbs/join/index.php on line 6 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/utan/utan.php.xdomain.jp/public_html/mini_bbs/join/index.php:5) in /home/utan/utan.php.xdomain.jp/public_html/mini_bbs/join/index.php on line 6 データベース接続エラー:SQLSTATE[28000] [1045] Access denied for user 'utan_minibbs'@'localhost' (using password: YES)

該当のソースコード

<?php try{ $db = new PDO('mysql:dbname=mini_bbs;host=127.0.0.1;charset=utf8','root','' ); }catch(PDOException $e){ print('データベース接続エラー:'.$e->getMessage()); } ?>
<?php session_start(); require('../dbconenect.php'); if(!empty($_POST)){ //エラー判定 if($_POST['name'] === ''){ $errer['name']='blank'; } if($_POST['email'] === ''){ $errer['email']='blank'; } if(strlen($_POST['password']) <4 ){ $errer['password']='length'; } if($_POST['password'] === ''){ $errer['password']='blank'; } //画像拡張子判定 $fileName = $_FILES['image']['name']; if(!empty($fileName)){ $ext = substr($fileName, -3); if($ext != 'jpg' && $ext != 'png' && $ext != 'gif'){ $errer['image'] = 'type'; } } //アカウント重複防止 if(empty($error)){ $member = $db->prepare('SELECT COUNT(*) AS cnt FROM members WHERE email=?'); $member->execute(array($_POST['email'])); $recode = $member->fetch(); //$recodeは0,1を返す if($recode['cnt'] > 0){ $errer['email'] = 'duplicate'; } } if(empty($errer)){ //画像保存//現在時刻を付加して名前がかぶらないようにする $image = date('YmdHis').$_FILES['image']['name']; move_uploaded_file($_FILES['image']['tmp_name'],'../member_picture/'.$image); $_SESSION['join'] = $_POST; $_SESSION['join']['image'] = $image; header('Location:check.php'); exit(); } } //rewriteがurlで渡されたらフォームに入力しておく if($_REQUEST['action'] == 'rewrite'){ $_POST = $_SESSION['join']; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>会員登録</title> <link rel="stylesheet" href="../style.css" /> </head> <body> <div id="wrap"> <div id="head"> <h1>会員登録</h1> </div> <div id="content"> <p>次のフォームに必要事項をご記入ください。</p> <form action="" method="post" enctype="multipart/form-data"> <dl> <dt>ニックネーム<span class="required">必須</span></dt> <dd> <input type="text" name="name" size="35" maxlength="255" value="<?php print(htmlspecialchars($_POST['name'],ENT_QUOTES)); ?>" /> </dd> <?php if ($errer['name'] === 'blank'): ?> <p class="error">*ニックネームを入力してください。</p> <?php endif;?> <dt>メールアドレス<span class="required">必須</span></dt> <dd> <input type="text" name="email" size="35" maxlength="255" value="<?php print(htmlspecialchars($_POST['email'],ENT_QUOTES)); ?>" /> <?php if ($errer['email'] === 'blank'): ?> <p class="error">*メールアドレスを入力してください。</p> <?php endif;?> <?php if ($errer['email'] === 'duplicate'): ?> <p class="error">*メールアドレスはすでに登録されています。</p> <?php endif;?> <dt>パスワード<span class="required">必須</span></dt> <dd> <input type="password" name="password" size="10" maxlength="20" value="<?php print(htmlspecialchars($_POST['password'],ENT_QUOTES)); ?>" /> </dd> <?php if ($errer['password'] === 'blank'): ?> <p class="error">*パスワードを入力してください。</p> <?php endif;?> <?php if ($errer['password'] === 'length'): ?> <p class="error">*パスワードが短すぎます。</p> <?php endif;?> <dt>写真など</dt> <dd> <input type="file" name="image" size="35" value="test" /> <?php if($errer['image'] === 'type'):?> <p class="error">画像のみアップロードできます</p> <?php endif; ?> <?php if(!empty($errer)): ?> <p class="error">画像を再度アップロードしてください</p> <?php endif;?> </dd> </dl> <div><input type="submit" value="入力内容を確認する" /></div> </form> </div> </body> </html>

試したこと

こちらを試してみたが、PHPの知識が浅く解決できませんでした。
https://secure.xfree.ne.jp/bbs/detail.cgi?td=442

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/01/18 04:17

session_start() にまつわるエラーメッセージなのに、含んでいないソースコードの一部だけ見せられてもなんとも言えません。
phper.k

2021/01/18 04:18

エラメッセージに書かれている通りだと思いますが、エラーの意味がわからないのですか? それともエラーの意味はわかるけど、何を修正すればいいのかわからないのですか?
退会済みユーザー

退会済みユーザー

2021/01/18 04:25

エラーの意味は分かるのですが解決方法が分かりません。 ローカル環境XAMPPでは正常に動きます。
guest

回答1

0

ベストアンサー

広告の表示について|無料レンタルサーバー【エックスフリー】

広告挿入のために、自分の書いたコードによる出力の前に何らかのコンテンツがxfree側によっておこなわれているのではないかと察します。
(検証するために、簡単なphpファイルを置いて、webブラウザでhtmlソースをチェックして、広告表示のコンテンツが差し込まれていないかを確認すればいい。)
そのために、なんのコンテンツの出力もないときにしか使えないsession_start()が潰されて使えないっていう。

解決方法としてはsession_start()を使える別のサーバーを使うか、
session_start()を使わずに済むやり方に改めるかです。

投稿2021/01/18 04:30

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/01/18 04:39

var_dump(session_start());で確認したところ、bool(false)となり使えていないことが分かりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問