• 締切済み

Cannot redeclare/ Xoops legacy  

こんにちは。お時間のある方、宜しければお助けください。 Xoops cube legacy 2.0.1を利用しており、追加モジュール NewBB 2.0 をインストールしました。しかし、管理しようとすると Fatal error: Cannot redeclare newbb_getunamefromid()  と出てきてしまい、その先に進めません。 function newbb_getUnameFromId( $userid, $usereal = 0 ) { $userid = intval($userid); $usereal = intval($usereal); if ($userid > 0) { $member_handler =& xoops_gethandler('member'); $user =& $member_handler->getUser($userid); if (is_object($user)) { $ts =& MyTextSanitizer::getInstance(); if ( $usereal && $user->getVar('name') ) { return $ts->htmlSpecialChars($user->getVar('name')); } else { return $ts->htmlSpecialChars($user->getVar('uname')); } } } return $GLOBALS['xoopsConfig']['anonymous']; } に二重定義(?)があるようなのですが、どこを変えるべきでしょうか?

  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

そのエラーでいう二重定義とは、「newbb_getunamefromid」関数が、2回定義されている、ということです。 スクリプト中に2回以上、 function newbb_getunamefromid(){ //内容 } といったように関数の定義が行われているのではないでしょうか。 Xoopsを使ったことがないのですが、NewBB2.0のインストール方法を間違えていたり、インストールするより以前に、NewBB2.0を別の方法にて呼び出すようにスクリプトの修正を行っていたり、Xoops cube legacy 2.0.1がデフォルトでNewBB2.0を呼び出すようになっていたりなっていませんか?

yappaiides
質問者

お礼

アドバイスして下さり大変ありがとう御座いましたm(_ _)m 更に調べてみたところ、他に同様のエラーがでる方がいるようで、 解決方法がないという事でした。残念ですが、諦めることにいたします。

関連するQ&A

  • スクリプトの書き方その2

    すみません、毎度お世話になります。 超初心者(ただ中身を整理するだけ)のスキルです。 Xoopsの Xoopsmailer.phpというスクリプトの中に、 次のような記載があります。 function setToGroups($group)内のコード: 1)$member_handler =& xoops_gethandler('member'); 2)$groups=&$member_handler->getUsersByGroup($group->getVar('groupid'),true); 1の =&の両側にはスペースがあるのですが、2のそれにはありません。 2も1と同様に、$groups =& $member_handler............ では駄目でしょうか? そもそも、「=&」と「->」は何と読み、それぞれ どういう意味があるのでしょうか? 本当にわからないので、どうか教えて下さい。お願いします。

    • ベストアンサー
    • PHP
  • データの取得方法

    失礼いたします。 SQL文でDBからデータを取得して、それを 表示したいのですがうまくいきません。 どこを間違っているか、どうしたらいいか コメントお願いします。 //他のページからIDを取得 <?php $aid=htmlspecialchars($_GET["id"]); ?> //SQL <?php $sql = "SELECT A.USERID,A.NAME,B.BIL_ID,B.B.BIL_NAME FROM USER A,BIL B WHERE A.BIL_ID=B.BIL_ID AND USER_ID=".intval($_GET["aid"]); !$an = mysql_query($sql,$db) $user = mysql_fetch_row($an); mysql_free_result($an); ?> //データの表示 //SQLで実行した'BIL_ID'を表示したい。 <TD><INPUT type="text" name="bid" value="<?php print(intval($_GET["$user[2]"])) ?>"></TD>

    • ベストアンサー
    • PHP
  • Ruby on Rails: メソッドの定義で「self.」をつけるケースについて

    メソッドの名前に「self.」をつけるケースというは、 どういうことがあてはまるのでしょうか. 具体的には、以下のようなname_displayメソッドを作ったのですが、 「self.」をつけないと、undifined methodエラーになってしまいます. 偶然、self.をつけたら動いたので、そういうものかとわかりました. ただ、理由がわかりません. ご存知の方、お教えください. Userモデル id,username class User < ActiveRecord::Base def self.name_display(userid) begin @username = User.find(userid) return @username.username rescue return '削除ユーザ' end end end

  • 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
  • VBAのループの作成方法

    質問があります。 <ソース> With Worksheets(Sheet_No)  For x = 1 To 100   F = 0 For y = 1 To 200    Check = StrComp(Trim(Nyukan_name(x)), Trim(Userid_name(y)), vbTextCompare)    If Check = 0 Then    Outdata_ok(????) = Userid_name(y) & " | " & User_id(y) ???? = ???? + 1 F = 1 End If Next y If F <> 1 Then Outdata_ng(??) = Nyukan_name(x) ?? = ?? + 1 End If Next x End With 上記で配列のデータを配列に入れたいのですが、ループ処理がうまくいきません。(????と??の場所)Err内容:インデックスがありません。 変数の宣言も不明なのですが、Userid_name(y) と Nyukan_name(x)の値を1から順番にOutdata_ok(????) と Outdata_ng(??) に入れたいのですが、どのようにするのでしょうか? <サンプル> Nyukan_name(x) Userid_name(y) 1 1   aaaa 2 2 bbbb 3 1 cccc 4 3 dddd 上記のようにあった場合、Outdata_ok(????) にはNyukan_name(x)にある1でヒットしたものはすべて格納 Nyukan_name(x)にある4でUserid_name(y)に無いものはOutdata_ng(??)に格納

  • テキストに格納しているデータの編集

    昨日同じ質問のしたのですが、説明不足だったので書き直ししました。 大学でPHPを勉強しています。ユーザー登録情報の編集のPHPプログラムです。フォームより、登録情報を編集し、テキストファイルに保存されます。 member.txt yama|1234|yamada|hanako|0123-56-5432 suzu|3412|suzuki|tsutomu|0982-38-1937 左から順にユーザー名、パスワード、苗字、名前、電話番号がユーザー一人に対し1行です。 test.php <? $userid=yama; if($userid=yama){ $listf=fopen("./member.txt","r"); $item=fgetcsv($listf,1024,"|"); while (!feof($listf)){ if($userid=$item[0]){ $Ofname=$item[2]; $Ogname=$item[3]; $Ophone=$item[4]; break; } $item=fgetcsv($listf,1024,"|"); } fclose($listf);} if($editPro=="on"){ $listf=fopen("./member.txt","r+"); rewind( $listf ); $data = fgetcsv($listf, 1024, "|"); while (!feof($listf)){ if ($userid==$data[0]){ $new_member="$userid" . "|". "$data[1]"."|". "$fname"."|" ."$gname"."|". "$phone\n"; fwrite($listf,$new_member); break; } $data = fgetcsv($listf, 1024, "|");} fclose($listf);} ?> (フォームの部分も添付をしたかったのですが、行数の関係で入りませんでした。) 上記のプログラムですと、目的のユーザの次のユーザー情報が上書きされてしまいます。編集ボタンをクリックした時に、編集情報を目的ユーザの行に上書きをしたいのですが、どうすればよいのしょうか。よろしくお願いします。

    • 締切済み
    • PHP
  • ユーザー定義関数の処理

    エラーメッセージに関する以下の関数はどのような処理をする関数ですか? 自分なりに解釈したものを//で書いています。 // エラーがセットされているときは、$errorsを返す // もしセッション変数にエラーがないときは、空の配列を返す function get_errors(){ // セッション変数にエラーがセットされているときは$errorsを以下のように定義する $errors = get_session('__errors'); if($errors === ''){ return array(); } // もしセッション変数にユーザー名($name)がセットされているなら、セッション情報を返す // セットされていないときは空文字を返す function get_session($name){ if(isset($_SESSION[$name]) === true){ return $_SESSION[$name]; }; return ''; } // $nameと$valueを受け取り、セッション情報(ユーザー名)を$valueと定義する function set_session($name, $value){ $_SESSION[$name] = $value; }

    • ベストアンサー
    • PHP
  • mysql_resultのエラー

    php5です。 以下のようなコードでMYSQLデータベースからユーザIDを取り出しています。 存在するユーザ名が$nameにセットされているときには何も問題は起きないのですが、存在しないユーザ名を$nameにセットするとブラウザにエラーが表示されます。 存在しないユーザ名が$nameにセットされたときにこのエラーを表示させないようにするにはどうすればよいでしょうか。 mysql_result関数のマニュアルは読んだのですがエラーハンドリングについてはよく理解できませんでした。 $nameには別のphpスクリプトのフォームで入力された値がセットされます。 表示されるエラー Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 24 in test.php on line xx phpスクリプトの問題部分(関数の一部) $idsql = "select user_id from usertable where username = '$name'"; $res = mysql_query($idsql, $link); $userid = mysql_result($res, 0); mysql_close($link); return $userid;

    • ベストアンサー
    • PHP
  • JAVAのComparableについて・・・

    compareto()を使って名前、身長、体重を「身長昇順」拡張for文でだしたいのですが・・・ (1)returnを使って何を返せばいいのか? (2)System.out.println()でなにをすればいいのか? (3)他の文で間違っているのか? この3点が分かりません。JAVAに詳しい方よろしくお願いします。。。 package class; public class NewClass { public static void main(String[] args) { NewClass2 A = new NewClass2("aaa", 160, 40); NewClass2 B = new NewClass2("bbb", 170, 60); NewClass2 C = new NewClass2("ccc", 150, 70); System.out.println("---Comparable---"); Set<Comparable> ts3 = new TreeSet<Comparable>(); ts3.add(A); ts3.add(B); ts3.add(C); for(Comparable cm : ts3) { System.out.println(?????????????); } package class; public class NewClass2 implements Comparable< NewClass2> { private String name; private int Weight; private int Height; public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getWeight() { return this.Weight; } public void setWeight(int Weight) { this.Weight = Weight; } public int getHeight() { return this.Height; } public void setHeight(int Height) { this.Height = Height; } public StudentBean(String name, int Height, int Weight) { this.name = name; this.Weight = Weight; this.Height = Height; } @Override public int compareTo(Object arg0) { StudentBean sb = (StudentBean)arg0;     String name1 = this.name; int Height1 = this.Height; int Weight1 = this.Weight;     int returnval = 0; if(Height1 > sb.getHeight()) { returnval = 1; } else if(Height1 < sb.getHeight()) { returnval = -1; } else returnval = 0; } return ???????; } 文は以上です 出力は aaa 160 40 ・ ・ ・ なかんじでお願いします。

  • JAVAのComparableについて・・・

    compareto()を使って名前、身長、体重を「身長昇順」拡張for文でだしたいのですが・・・ (1)returnを使って何を返せばいいのか? (2)System.out.println()でなにをすればいいのか? (3)他の文で間違っているのか? この3点が分かりません。JAVAに詳しい方よろしくお願いします。。。 package class; public class NewClass { public static void main(String[] args) { NewClass2 A = new NewClass2("aaa", 160, 40); NewClass2 B = new NewClass2("bbb", 170, 60); NewClass2 C = new NewClass2("ccc", 150, 70); System.out.println("---Comparable---"); Set<Comparable> ts3 = new TreeSet<Comparable>(); ts3.add(A); ts3.add(B); ts3.add(C); for(Comparable cm : ts3) { System.out.println(?????????????); } package class; public class NewClass2 implements Comparable< NewClass2> { private String name; private int Weight; private int Height; public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getWeight() { return this.Weight; } public void setWeight(int Weight) { this.Weight = Weight; } public int getHeight() { return this.Height; } public void setHeight(int Height) { this.Height = Height; } public StudentBean(String name, int Height, int Weight) { this.name = name; this.Weight = Weight; this.Height = Height; } @Override public int compareTo(Object arg0) { StudentBean sb = (StudentBean)arg0;     String name1 = this.name; int Height1 = this.Height; int Weight1 = this.Weight;     int returnval = 0; if(Height1 > sb.getHeight()) { returnval = 1; } else if(Height1 < sb.getHeight()) { returnval = -1; } else returnval = 0; } return ???????; } 文は以上です 出力は aaa 160 40 ・ ・ ・ なかんじでお願いします。

専門家に質問してみよう