本文整理汇总了PHP中P2Util::pushInfoHtml方法的典型用法代码示例。如果您正苦于以下问题:PHP P2Util::pushInfoHtml方法的具体用法?PHP P2Util::pushInfoHtml怎么用?PHP P2Util::pushInfoHtml使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类P2Util
的用法示例。
在下文中一共展示了P2Util::pushInfoHtml方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: wordForMatch
/**
* フォームから送られてきたワードをマッチ関数に適合させる
*
* @static
* @access public
* @return string $word_fm 適合パターン。SJISで返す。
*/
function wordForMatch($word, $method = 'regex')
{
$word_fm = $word;
// 「そのまま」でなければ、全角空白を半角空白に矯正
if ($method != 'just') {
$word_fm = mb_convert_kana($word_fm, 's');
}
$word_fm = trim($word_fm);
$word_fm = htmlspecialchars($word_fm, ENT_NOQUOTES);
if (in_array($method, array('and', 'or', 'just'))) {
// preg_quote()で2バイト目が0x5B("[")の"ー"なども変換されてしまうので
// UTF-8にしてから正規表現の特殊文字をエスケープ
$word_fm = mb_convert_encoding($word_fm, 'UTF-8', 'SJIS-win');
if (P2_MBREGEX_AVAILABLE == 1) {
$word_fm = preg_quote($word_fm);
} else {
$word_fm = preg_quote($word_fm, '/');
}
$word_fm = mb_convert_encoding($word_fm, 'SJIS-win', 'UTF-8');
// 他、regex(正規表現)なら
} else {
$word_fm = str_replace('/', '\\/', $word_fm);
$tmp_pattern = '/' . mb_convert_encoding($word_fm, 'UTF-8', 'SJIS-win') . '/u';
if (false === @preg_match($tmp_pattern, '.')) {
P2Util::pushInfoHtml(sprintf('p2 warning: フィルタ語句の正規表\現に誤りがあります "%s"', hs($word_fm)));
$word_fm = '';
}
if (P2_MBREGEX_AVAILABLE == 0) {
$word_fm = str_replace('/', '\\/', $word_fm);
}
// 末尾のワイルドカードは除去してしまう
$word_fm = rtrim($word_fm, '.+*');
}
return $word_fm;
}
示例2: deleMsg
/**
* チェックした書き込み記事を削除する
*
* @access public
* @return boolean
*/
function deleMsg($checked_hists)
{
global $_conf;
if (!($reslines = file($_conf['p2_res_hist_dat']))) {
p2die(sprintf('%s を開けませんでした', $_conf['p2_res_hist_dat']));
return false;
}
$reslines = array_map('rtrim', $reslines);
// ファイルの下に記録されているものが新しいので逆順にする
$reslines = array_reverse($reslines);
$neolines = array();
// チェックして整えて
if ($reslines) {
$rmnums = _getRmNums($checked_hists, $reslines);
$neolines = _rmLine($rmnums, $reslines);
P2Util::pushInfoHtml("<p>p2 info: " . count($rmnums) . "件のレス記事を削除しました</p>");
}
if (is_array($neolines)) {
// 行順を戻す
$neolines = array_reverse($neolines);
$cont = "";
if ($neolines) {
$cont = implode("\n", $neolines) . "\n";
}
// 書き込み処理
if (false === FileCtl::filePutRename($_conf['p2_res_hist_dat'], $cont)) {
$errmsg = sprintf('p2 error: %s(), FileCtl::filePutRename() failed.', __FUNCTION__);
trigger_error($errmsg, E_USER_WARNING);
return false;
}
}
return true;
}
示例3: fetchSubjectTxt
/**
* subject.txtの並列ダウンロードを実行する
*
* @param string $mode
* @param array $_conf
* @return bool
*/
public static function fetchSubjectTxt($mode, array $_conf)
{
// コマンド生成
$args = array(escapeshellarg($_conf['expack.php_cli_path']));
if ($_conf['expack.dl_pecl_http']) {
$args[] = '-d';
$args[] = 'extension=' . escapeshellarg('http.' . PHP_SHLIB_SUFFIX);
}
$args[] = escapeshellarg(P2_CLI_DIR . DIRECTORY_SEPARATOR . 'fetch-subject-txt.php');
switch ($mode) {
case 'fav':
case 'recent':
case 'res_hist':
case 'merge_favita':
$args[] = sprintf('--mode=%s', $mode);
break;
default:
return false;
}
if ($_conf['expack.misc.multi_favs']) {
switch ($mode) {
case 'fav':
$args[] = sprintf('--set=%d', $_conf['m_favlist_set']);
break;
case 'merge_favita':
$args[] = sprintf('--set=%d', $_conf['m_favita_set']);
break;
}
}
// 標準エラー出力を標準出力にリダイレクト
$args[] = '2>&1';
$command = implode(' ', $args);
//P2Util::pushInfoHtml('<p>' . htmlspecialchars($command, ENT_QUOTES) . '</p>');
// 実行
$pipe = popen($command, 'r');
if (!is_resource($pipe)) {
p2die('コマンドを実行できませんでした。', $command);
}
$output = '';
while (!feof($pipe)) {
$output .= fgets($pipe);
}
$status = pclose($pipe);
if ($status != 0) {
P2Util::pushInfoHtml(sprintf('<p>%s(): ERROR(%d)</p>', __METHOD__, $status));
}
if ($output !== '') {
if ($status == 2) {
P2Util::pushInfoHtml($output);
} else {
P2Util::pushInfoHtml('<p>' . nl2br(htmlspecialchars($output, ENT_QUOTES)) . '</p>');
}
}
return $status == 0;
}
示例4: _read_filter_setup
function _read_filter_setup()
{
$host = $_GET['host'];
$bbs = $_GET['bbs'];
$key = $_GET['key'];
$resnum = (int) $_GET['resnum'];
$field = $_GET['field'];
$aThread = new ThreadRead();
$aThread->setThreadPathInfo($host, $bbs, $key);
$aThread->readDat($aThread->keydat);
$i = $resnum - 1;
if (!($i >= 0 && $i < count($aThread->datlines) && isset($_GET['rf']) && is_array($_GET['rf']))) {
P2Util::pushInfoHtml('<p>フィルタリングの指定が変です。</p>');
unset($_GET['rf'], $_REQUEST['rf']);
return;
}
$ares = $aThread->datlines[$i];
$resar = $aThread->explodeDatLine($ares);
$name = $resar[0];
$mail = $resar[1];
$date_id = $resar[2];
$msg = $resar[3];
$params = $_GET['rf'];
$include = ResFilter::INCLUDE_NONE;
$fields = explode(':', $field);
$field = array_shift($fields);
if (in_array('refs', $fields)) {
$include |= ResFilter::INCLUDE_REFERENCES;
}
if (in_array('refed', $fields)) {
$include |= ResFilter::INCLUDE_REFERENCED;
}
$params['field'] = $field;
$params['include'] = $include;
$resFilter = ResFilter::configure($params);
$target = $resFilter->getTarget($ares, $resnum, $name, $mail, $date_id, $msg);
if ($field == 'date') {
$date_part = explode(' ', trim($target));
$word = $date_part[0];
} else {
$word = $target;
}
$params['word'] = $word;
$_REQUEST['rf'] = $params;
}
示例5: deleMsg
/**
* チェックした書き込み記事を削除する
*/
function deleMsg($checked_hists)
{
global $_conf;
$lock = new P2Lock($_conf['res_hist_dat'], false);
// 読み込んで
$reslines = FileCtl::file_read_lines($_conf['res_hist_dat'], FILE_IGNORE_NEW_LINES);
if ($reslines === false) {
p2die("{$_conf['res_hist_dat']} を開けませんでした");
}
// ファイルの下に記録されているものが新しいので逆順にする
$reslines = array_reverse($reslines);
$neolines = array();
// チェックして整えて
if ($reslines) {
$n = 1;
foreach ($reslines as $ares) {
$rar = explode("<>", $ares);
// 番号と日付が一致するかをチェックする
if (checkMsgID($checked_hists, $n, $rar[2])) {
$rmnums[] = $n;
// 削除する番号を登録
}
$n++;
}
$neolines = rmLine($rmnums, $reslines);
P2Util::pushInfoHtml('<p>p2 info: ' . count($rmnums) . '件のレス記事を削除しました</p>');
}
if (is_array($neolines)) {
// 行順を戻す
$neolines = array_reverse($neolines);
$cont = "";
if ($neolines) {
$cont = implode("\n", $neolines) . "\n";
}
// 書き込む
if (FileCtl::file_write_contents($_conf['res_hist_dat'], $cont) === false) {
p2die('cannot write file.');
}
}
}
示例6: makeBrdFile
/**
* brdファイルを生成する
*
* @access public
* @return string|false 成功したら生成したbrdファイルのパスを返す
*/
function makeBrdFile($cachefile)
{
global $_conf;
$cont = '';
$data = file($cachefile);
$this->setBrdMatch($cachefile);
// パターンマッチ形式を登録
$this->setBrdList($data);
// カテゴリーと板をセット
if ($this->categories) {
foreach ($this->categories as $cate) {
if ($cate->num > 0) {
$cont .= $cate->name . "\t0\n";
foreach ($cate->menuitas as $mita) {
$cont .= "\t{$mita->host}\t{$mita->bbs}\t{$mita->itaj}\n";
}
}
}
}
if (!$cont) {
// 2008/07/14 なぜここでこんな条件が必要だったのか不明。コメントアウトしてみる。
//if (strlen($GLOBALS['word']) > 0) {
P2Util::pushInfoHtml(sprintf("<p>p2 error: %s から板メニューを生成することはできませんでした。</p>\n", hs($cachefile)));
//}
unlink($cachefile);
return false;
}
$p2brdfile = BrdCtl::getP2BrdFile($cachefile);
if (false === FileCtl::make_datafile($p2brdfile, $_conf['p2_perm'])) {
return false;
}
if (false === FileCtl::filePutRename($p2brdfile, $cont)) {
die(sprintf('p2 error: %s を更新できませんでした', hs($p2brdfile)));
return false;
}
return $p2brdfile;
}
示例7: updateFavSetList
/**
* お気に入りセットリストを更新する
*
* @return boolean 更新に成功したらTRUE, 失敗したらFALSE
*/
function updateFavSetList()
{
global $_conf;
if (file_exists($_conf['expack.misc.favset_file'])) {
$setlist_titles = FavSetManager::getFavSetTitles();
} else {
FileCtl::make_datafile($_conf['expack.misc.favset_file']);
}
if (empty($setlist_titles)) {
$setlist_titles = array();
}
$setlist_names = array('m_favlist_set', 'm_favita_set', 'm_rss_set');
foreach ($setlist_names as $setlist_name) {
if (isset($_POST["{$setlist_name}_titles"]) && is_array($_POST["{$setlist_name}_titles"])) {
$setlist_titles[$setlist_name] = array();
for ($i = 0; $i <= $_conf['expack.misc.favset_num']; $i++) {
if (!isset($_POST["{$setlist_name}_titles"][$i])) {
$setlist_titles[$setlist_name][$i] = '';
continue;
}
$newname = trim($_POST["{$setlist_name}_titles"][$i]);
$newname = preg_replace('/\\r\\n\\t/', ' ', $newname);
$newname = htmlspecialchars($newname, ENT_QUOTES);
$setlist_titles[$setlist_name][$i] = $newname;
}
}
}
$newdata = serialize($setlist_titles);
if (FileCtl::file_write_contents($_conf['expack.misc.favset_file'], $newdata) === FALSE) {
P2Util::pushInfoHtml("<p>p2 error: {$_conf['expack.misc.favset_file']} にお気に入りセット設定を書き込めませんでした。");
return FALSE;
}
return TRUE;
}
示例8:
<?php
/**
* rep2 - タイトルページ
*/
require_once __DIR__ . '/../init.php';
$_login->authorize();
// ユーザ認証
//=========================================================
// 変数
//=========================================================
if (!empty($GLOBALS['pref_dir_realpath_failed_msg'])) {
P2Util::pushInfoHtml('<p>' . $GLOBALS['pref_dir_realpath_failed_msg'] . '</p>');
}
$p2web_url_r = P2Util::throughIme($_conf['p2web_url']);
$expack_url_r = P2Util::throughIme($_conf['expack.web_url']);
$expack_dl_url_r = P2Util::throughIme($_conf['expack.download_url']);
$expack_hist_url_r = P2Util::throughIme($_conf['expack.history_url']);
// {{{ データ保存ディレクトリのパーミッションの注意を喚起する
P2Util::checkDirWritable($_conf['dat_dir']);
$checked_dirs[] = $_conf['dat_dir'];
// チェック済みのディレクトリを格納する配列に
// まだチェックしていなければ
if (!in_array($_conf['idx_dir'], $checked_dirs)) {
P2Util::checkDirWritable($_conf['idx_dir']);
$checked_dirs[] = $_conf['idx_dir'];
}
if (!in_array($_conf['pref_dir'], $checked_dirs)) {
P2Util::checkDirWritable($_conf['pref_dir']);
$checked_dirs[] = $_conf['pref_dir'];
}
示例9:
$setter->whereAddQuoted('mime', '=', $finder->mime);
if ($setter->update()) {
$code = 1;
} else {
$code = 0;
}
}
if ($remove) {
$orig_info_msg_ht = P2Util::getInfoHtml();
$removed_files = IC2_DatabaseManager::remove(array($finder->id), $rank < 0);
if ($code != 0 && !P2Util::hasInfoHtml()) {
$code = 1;
} else {
$code = 0;
}
P2Util::pushInfoHtml($orig_info_msg_ht);
}
}
echo $code;
exit;
// }}}
/*
* Local Variables:
* mode: php
* coding: cp932
* tab-width: 4
* c-basic-offset: 4
* indent-tabs-mode: nil
* End:
*/
// vim: set syn=php fenc=cp932 ai et ts=4 sw=4 sts=4 fdm=marker:
示例10: preg_replace
$id_txt = preg_replace('/^.*ID: ?([0-9A-Za-z\\/.+?]+)([.,]|†)?.*$/', 'ID:$1', $resar[2]);
$id_ht = "<input type=\"text\" name=\"id_txt\" value=\"{$id_txt}\"><br>";
} else {
$date_txt = $resar[2];
}
$msg_txt = trim(strip_tags($resar[3], '<br>'));
if ($quote) {
$msg_txt = ">>{$resid}\r\n> " . preg_replace('/ *<br[^>]*> */i', "\n> ", $msg_txt);
} else {
$msg_txt = preg_replace('/ *<br[^>]*> */i', "\n", $msg_txt);
}
} else {
P2Util::pushInfoHtml('<p>p2 error: レス番号の指定が変です。</p>');
}
} else {
P2Util::pushInfoHtml('<p>p2 error: スレッドの指定が変です。</p>');
}
$msg_len = mb_strlen($msg_txt);
$len = $GLOBALS['_conf']['mobile.copy_divide_len'] ? $GLOBALS['_conf']['mobile.copy_divide_len'] : 10000;
$msg_txts = array();
for ($i = 0; $i < $msg_len; $i += $len) {
$msg_txts[] = mb_substr($msg_txt, $i, $len);
}
//=====================================================
// コピー用フォームを表示
//=====================================================
$action_ht = htmlspecialchars($_SERVER['SCRIPT_NAME'] . '?host=' . $_GET['host'] . '&bbs=' . $_GET['bbs'] . '&key=' . $_GET['key'] . '©=' . $_GET['copy'], ENT_QUOTES);
// willcom はtextareaのサイズが小さいと使いにくいらしい
/*
JavaScriptにしてしまった方がいいかも?
javascript:(function(){for (var j=0;j<document.forms.length;j++){for (var i=0;i<document.forms[j].elements.length;i++) {k=document.forms[j].elements[i];if(k.type=="textarea"){k.rows=10;k.cols=34;}}}})();
示例11:
} else {
P2Util::pushInfoHtml('<p>エラー: URLに連番のプレースホルダ(<samp>%s</samp>)またはパターン(<samp>[from-to]</samp>)が含まれていないか、両方が含まれています。</p>');
$execDL = false;
$isError = true;
}
// 範囲を検証
if (isset($serial) && $serial['from'] >= $serial['to']) {
P2Util::pushInfoHtml('<p>エラー: 連番の終りの番号は始まりの番号より大きくないといけません。</p>');
$execDL = false;
$isError = true;
$serial = null;
}
// 連番なし
} else {
if (strpos($params['uri'], '%s') !== false || preg_match($serial_pattern, $params['uri'], $from_to)) {
P2Util::pushInfoHtml('<p>エラー: 連番にチェックが入っていませんが、URLに連番ダウンロード用の文字列が含まれています。</p>');
$execDL = false;
$isError = true;
}
$qfe['from']->updateAttributes('disabled="disabled"');
$qfe['to']->updateAttributes('disabled="disabled"');
$qfe['padding']->updateAttributes('disabled="disabled"');
$serial = null;
}
} else {
$qfe['from']->updateAttributes('disabled="disabled"');
$qfe['to']->updateAttributes('disabled="disabled"');
$qfe['padding']->updateAttributes('disabled="disabled"');
}
// }}}
// {{{ generate
示例12: downloadSettingTxt
/**
* SETTING.TXT をダウンロードして、パースして、キャッシュする
*
* @access public
* @return true|null|false 成功|更新なし(キャッシュ)|失敗
*/
function downloadSettingTxt()
{
global $_conf;
$perm = $_conf['dl_perm'] ? $_conf['dl_perm'] : 0606;
FileCtl::mkdirFor($this->setting_txt);
// 板ディレクトリが無ければ作る
$modified = null;
if (file_exists($this->setting_srd) && file_exists($this->setting_txt)) {
// 更新しない場合は、その場で抜けてしまう
if (!empty($_GET['norefresh']) || isset($_REQUEST['word'])) {
return null;
// キャッシュが新しい場合も抜ける
} elseif ($this->isSettingSrdCacheFresh()) {
return null;
}
$modified = gmdate('D, d M Y H:i:s', filemtime($this->setting_txt)) . ' GMT';
}
// DL
/*
// PHP5
if (!class_exists('HTTP_Request', false)) {
require 'HTTP/Request.php';
}
*/
require_once 'HTTP/Request.php';
$params = array();
$params['timeout'] = $_conf['fsockopen_time_limit'];
if ($_conf['proxy_use']) {
$params['proxy_host'] = $_conf['proxy_host'];
$params['proxy_port'] = $_conf['proxy_port'];
}
$req = new HTTP_Request($this->url, $params);
$modified && $req->addHeader('If-Modified-Since', $modified);
$req->addHeader('User-Agent', 'Monazilla/1.00 (' . $_conf['p2uaname'] . '/' . $_conf['p2version'] . ')');
$response = $req->sendRequest();
$error_msg = null;
if (PEAR::isError($response)) {
$error_msg = $response->getMessage();
} else {
$code = $req->getResponseCode();
if ($code == 302) {
// ホストの移転を追跡
require_once P2_LIB_DIR . '/BbsMap.php';
$new_host = BbsMap::getCurrentHost($this->host, $this->bbs);
if ($new_host != $this->host) {
$aNewSettingTxt = new SettingTxt($new_host, $this->bbs);
return $aNewSettingTxt->downloadSettingTxt();
}
}
if (!($code == 200 || $code == 206 || $code == 304)) {
//var_dump($req->getResponseHeader());
$error_msg = $code;
}
}
// DLエラー
if (strlen($error_msg)) {
P2Util::pushInfoHtml(sprintf('<div>Error: %s<br>p2 info - %s に接続できませんでした。</div>', hs($error_msg), P2View::tagA(P2Util::throughIme($this->url), hs($this->url), array('target' => $_conf['ext_win_target']))));
touch($this->setting_txt);
// DL失敗した場合(404)も touch する
touch($this->setting_srd);
return false;
}
$body = $req->getResponseBody();
// DL成功して かつ 更新されていたら保存
if ($body && $code != 304) {
// したらば or be.2ch.net ならEUCをSJISに変換
if (P2Util::isHostJbbsShitaraba($this->host) || P2Util::isHostBe2chNet($this->host)) {
$body = mb_convert_encoding($body, 'SJIS-win', 'eucJP-win');
}
if (false === FileCtl::filePutRename($this->setting_txt, $body)) {
die('Error: cannot write file');
}
chmod($this->setting_txt, $perm);
// パースして
if (!$this->setSettingArrayFromSettingTxt()) {
return false;
}
// srd保存する
if (!$this->saveSettingSrd($this->setting_array)) {
return false;
}
} else {
// touchすることで更新インターバルが効くので、しばらく再チェックされなくなる
touch($this->setting_txt);
// 同時にキャッシュもtouchしないと、setting_txtとsetting_srdで更新時間がずれて、
// 毎回ここまで処理が来る(サーバへのヘッダリクエストが飛ぶ)場合がある。
touch($this->setting_srd);
}
return true;
}
示例13: elseif
$a_mode .= '<title>' . $a_tt . '</title>';
}
$newdata .= $a_mode . $a_word . "\t" . $a_time . "\t" . $a_hits . "\n";
}
if (FileCtl::file_write_contents($path, $newdata) !== FALSE) {
P2Util::pushInfoHtml('<p>○設定を更新保存しました</p>');
} else {
P2Util::pushInfoHtml('<p>×設定を更新保存できませんでした</p>');
}
// }}}
// {{{ ■デフォルトに戻すボタンが押されていたら
} elseif (!empty($_POST['submit_default'])) {
if (@unlink($path)) {
P2Util::pushInfoHtml('<p>○リストを空にしました</p>');
} else {
P2Util::pushInfoHtml('<p>×リストを空にできませんでした</p>');
}
}
// }}}
// {{{ リスト読み込み
$formdata = array();
if ($lines = FileCtl::file_read_lines($path, FILE_IGNORE_NEW_LINES)) {
$i = 0;
foreach ($lines as $l) {
$lar = explode("\t", $l);
if (strlen($lar[0]) == 0) {
continue;
}
$ar = array('cond' => $lar[0], 'word' => $lar[0], 'ht' => isset($lar[1]) ? $lar[1] : '--', 'hn' => isset($lar[2]) ? (int) $lar[2] : 0, 're' => '', 'ic' => '', 'bbs' => '', 'tt' => '');
// 板縛り
if (preg_match('!<bbs>(.+?)</bbs>!', $ar['word'], $matches)) {
示例14: setFavItaByList
/**
* カンマ区切り+@区切りのリストからお気に板をセットする
*
* @param string $list
* @param int|null $setnum
* @return bool
*/
function setFavItaByList($list, $setnum = null)
{
global $_conf;
// 記録データ設定
$rec_lines = array();
foreach (explode(',', $list) as $aList) {
list($host, $bbs, $itaj_en) = explode('@', $aList);
$rec_lines[] = "\t{$host}\t{$bbs}\t" . UrlSafeBase64::decode($itaj_en);
}
$script = <<<EOJS
<script type="text/javascript">
//<![CDATA[
if (parent.menu) {
parent.menu.location.href = '{$_conf['menu_php']}?nr=1';
}
//]]>
</script>
EOJS;
P2Util::pushInfoHtml($script);
$cont = '';
if (!empty($rec_lines)) {
foreach ($rec_lines as $l) {
$cont .= $l . "\n";
}
}
// 書き込む
if (FileCtl::file_write_contents(setFavItaGetBrdPath($setnum), $cont) === false) {
p2die('cannot write file.');
}
return true;
}
示例15: printLoginFirst
//.........这里部分代码省略.........
}
if (file_exists($_conf['auth_user_file'])) {
$submit_ht = '<input type="submit" name="submit_member" value="ユーザログイン">';
} else {
$submit_ht = '<input type="submit" name="submit_new" value="新規登録">';
}
if ($_conf['ktai']) {
//$k_roman_input_at = ' istyle="3" format="*m" mode="alphabet"';
$k_roman_input_at = ' istyle="3" format="*x" mode="alphabet"';
$k_input_size_at = '';
} else {
$k_roman_input_at = '';
$k_input_size_at = ' size="32"';
}
$login_form_ht = <<<EOP
{$docomo_auth_ht}
<form id="login" method="POST" action="{$hd['REQUEST_URI']}" target="_self"{$utn}>
{$_conf['k_input_ht']}
{$p_str['user']}: <input type="text" name="form_login_id" value="{$hd['form_login_id']}"{$k_roman_input_at}{$k_input_size_at}><br>
{$p_str['password']}: <input type="{$type}" name="form_login_pass" value="{$hd['form_login_pass']}"{$k_roman_input_at}><br>
{$auth_sub_input_ht}
<br>
{$submit_ht}
</form>
EOP;
// }}}
//=================================================================
// 新規ユーザ登録処理
//=================================================================
if (!file_exists($_conf['auth_user_file']) && !$_login_failed_flag and !empty($_POST['submit_new']) && !empty($_POST['form_login_id']) && !empty($_POST['form_login_pass'])) {
// {{{ 入力エラーをチェック、判定
if (!preg_match('/^[0-9A-Za-z_]+$/', $_POST['form_login_id']) || !preg_match('/^[0-9A-Za-z_]+$/', $_POST['form_login_pass'])) {
P2Util::pushInfoHtml("<p class=\"info-msg\">rep2 error: 「{$p_str['user']}」名と「{$p_str['password']}」は半角英数字で入力して下さい。</p>");
$show_login_form_flag = true;
// }}}
// {{{ 登録処理
} else {
$_login->makeUser($_POST['form_login_id'], $_POST['form_login_pass']);
// 新規登録成功
$hd['form_login_id'] = htmlspecialchars($_POST['form_login_id'], ENT_QUOTES);
$body_ht .= "<p class=\"info-msg\">○ 認証{$p_str['user']}「{$hd['form_login_id']}」を登録しました</p>";
$body_ht .= "<p><a href=\"{$myname}?form_login_id={$hd['form_login_id']}{$_conf['k_at_a']}\">rep2 start</a></p>";
$_login->setUser($_POST['form_login_id']);
$_login->pass_x = sha1($_POST['form_login_pass']);
// セッションが利用されているなら、セッションを更新
if (isset($_p2session)) {
// ユーザ名とパスXを更新
$_SESSION['login_user'] = $_login->user_u;
$_SESSION['login_pass_x'] = $_login->pass_x;
}
// 要求があれば、補助認証を登録
$_login->registCookie();
$_login->registKtaiId();
}
// }}}
// {{{ ログインエラーがある
} else {
if (isset($_POST['form_login_id']) || isset($_POST['form_login_pass'])) {
$info_msg_ht = '<p class="info-msg">';
if (!$_POST['form_login_id']) {
$info_msg_ht .= "rep2 error: 「{$p_str['user']}」が入力されていません。<br>";
}
if (!$_POST['form_login_pass']) {
$info_msg_ht .= "rep2 error: 「{$p_str['password']}」が入力されていません。";
}