他の関数は取得できているが一部DBがらみの関数が実行後の表示が出来ていない
PHPでサイトを作っています。
追々tinywebエディタを入れてWEB上から更新できるようにしたいと思っていますのでDBからやり取りをする関数を模索しているのですが、ローカル◎ 本番× という状況になりました。
追記12/20 1:33
xampのローカルじゃなければのところで躓いているのかとも思いました。
https://teratail.com/questions/37010
こちらの質問に似た事をしようとしてるので、参考にしてできるか試してみようと思います。
エラーは出ず出力されていない。
DBに保存したページURLと現在のurlが一致したら表示という条件分岐を複雑にしないようにしました。
PHPの勉強で作っています。下記と同じ処理をしてファイルをincludeで読み込むという処理の関数も有り、どちらも実行ができていないのか?表示されません。
どなたかご教授お願いいたします。
表示先ページのファイル記述
以下のみ書いてローカルでは実行されています。
PHP
1<?php 2include_once 'function.php'; 3head(); 4titlechange(); 5title(); 6pages(); 7footer();
該当のソースコード
PHP
1function titlechange(){ 2 3 if($_SERVER['SERVER_NAME'] === 'localhost'){ 4 $huser = 'root'; 5 $hpass = ''; 6 7 try { 8 $pdo = new PDO('mysql:host=localhost;dbname=imxyz;charset=utf8',$huser,$hpass); 9 $dsn = $pdo->query('SELECT * FROM `page` LIMIT 0,30'); 10 $dsn->execute(); 11 $all = $dsn->fetchALL(); 12 13 foreach ($all as $key) { 14 // code... 15 $row = $key; 16 if($_SERVER['REQUEST_URI'] === '/'.$row['pageurl']){ 17 echo $row['titlename']; 18 } 19 } 20 if($_SERVER['REQUEST_URI'] === '/'){ 21 echo 'サイトネーム'; 22 } 23 $dsn = null; 24 $pdo = null; 25 26 } catch (PDOException $e) { 27 // エラーメッセージを表示させる 28 echo 'データベースにアクセスできません!' . $e->getMessage(); 29 30 // 強制終了 31 exit; 32 } 33 34 } 35
試したこと
エラーが出ないのでエラー表示の関数等試しましたがどれも出ませんでした。
補足情報(FW/ツールのバージョンなど)
PHP7.3(ローカルはxampp,本番はロリポップサーバー)
修正:12/20:xamp → xampp
mysql(バージョンは本番に合わせています。)
###修正分追記 12/20
php
1function titlechange(){ 2 echo $_SERVER['SERVER_NAME']; 3 if($_SERVER['SERVER_NAME'] === 'https://imaimayu.xyz'){ 4 5 try { 6 $huser = 'username'; 7 $hpass = 'pass'; 8 $pdo = new PDO('mysql:host=◯lolipop.lan;dbname=◯-immain;charset=utf8',$huser,$hpass); 9 $dsn = $pdo->query('SELECT * FROM `page` LIMIT 0,30'); 10 $dsn->execute(); 11 $all = $dsn->fetchALL(); 12 13 foreach ($all as $key) { 14 // code... 15 $row = $key; 16 if($_SERVER['REQUEST_URI'] === 'https://imaimayu.xyz/'.$row['pageurl']){ 17 echo $row['titlename']; 18 } 19 } 20 if($_SERVER['REQUEST_URI'] === 'https://imaimayu.xyz/'){ 21 echo 'IMAI MAYU'; 22 } 23 $dsn = null; 24 $pdo = null; 25 26 } catch (PDOException $e) { 27 // エラーメッセージを表示させる 28 echo 'データベースにアクセスできません!' . $e->getMessage(); 29 30 // 強制終了 31 exit; 32 } 33 34 35 }else{ 36 try { 37 $huser = 'root'; 38 $hpass = ''; 39 $pdo = new PDO('mysql:host=localhost;dbname=imxyz;charset=utf8',$huser,$hpass); 40 $dsn = $pdo->query('SELECT * FROM `page` LIMIT 0,30'); 41 $dsn->execute(); 42 $all = $dsn->fetchALL(); 43 44 foreach ($all as $key) { 45 // code... 46 $row = $key; 47 if($_SERVER['REQUEST_URI'] === '/02imai_master/'.$row['pageurl']){ 48 echo $row['titlename']; 49 } 50 } 51 if($_SERVER['REQUEST_URI'] === '/02imai_master/'){ 52 echo 'IMAI MAYU'; 53 } 54 $dsn = null; 55 $pdo = null; 56 57 } catch (PDOException $e) { 58 // エラーメッセージを表示させる 59 echo 'データベースにアクセスできません!' . $e->getMessage(); 60 61 // 強制終了 62 exit; 63 } 64 65 66 67 } 68 }
回答2件
あなたの回答
tips
プレビュー