-1

これは、データベースを通過しないように、フロントテキストのみを使用するように取り組んでいる方法です。

致命的なエラー: 30 行目の /home/jesperbo/public_html/blabla.dk/admin_forside.php の未定義メソッド mebe :: admin_tekst () の呼び出し

function admin_tekst()
     {
             if ($stmt = $this->mysqli->prepare('SELECT `tekst` FROM `forside_tekst`'))
             { 
                 $stmt->execute();
                 $stmt->store_result();

                 $stmt->bind_result($tekst);

                 while ($stmt->fetch()) {
                 ?>
                 <form action="#" method="post">
                     <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"><?php echo $tekst;?></textarea>
                     <input type="submit" name="opret" value="Opret Blog" class="new">
                 </form>
                 <?php
                 }
                 $stmt->close();

             } else {
                 echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
             }    

     }

私がそれを取得すると、次のようになります。

<?php

                     $admin_tekst = $mebe->admin_tekst();

                     if(isset($_POST["opret"]))
                     {
                         $updater_forside = $mebe->updater_forside();
                     }

                 ?>

アップデーターは今のところ問題なく完全に動作します。

問題は admin_tekst() です

ページに情報を取得すると:

session_start();
 require_once("indhold/inc/fun_db.php");
 $mebe = new mebe;
 $db = $mebe->db_c();

だからここに私の関数ファイルの始まりのようです:

if(IN_DEBUG_MODE){
     ini_set("display_startup_errors", "on");
     ini_set("display_errors", "on");
       ini_set("html_errors", "false");
     error_reporting(-1); // -1 viser alle slags fejl beskeder
     ini_set("ignore_repeated_errors", 0);
 }
 else{
     error_reporting(0);
 }

 class mebe
 {

 private $mysqli;
     function db_c()
     {
         $mysqli = new mysqli('localhost', '..', '..', '..');

         if ($mysqli->connect_errno) {
             die('Fejl : ' . $mysqli->connect_errno);
         }
         mysqli_set_charset($mysqli, "utf8");
         $this->mysqli = $mysqli;
     }


     function admin_tekst()
     {
             if ($stmt = $this->mysqli->prepare('SELECT `tekst` FROM `forside_tekst`'))
             { 
                 $stmt->execute();
                 $stmt->store_result();

                 $stmt->bind_result($tekst);

                 while ($stmt->fetch()) {
                 ?>
                 <form action="#" method="post">
                     <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"><?php echo $tekst;?></textarea>
                     <input type="submit" name="opret" value="Opret Blog" class="new">
                 </form>
                 <?php
                 }
                 $stmt->close();

             } else {
                 echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
             }    

     }


     }

 }

他のすべての機能はうまく機能します

function updater_forside()
     {
         if ($stmt = $this->mysqli->prepare('UPDATE `forside_tekst` SET `tekst`=? WHERE `id`=?'))
         { 
             $stmt->bind_param('si', $tekst, $id);

             $tekst = $_POST["tekst"]; 
             $id = 1;

             $stmt->execute();

             $stmt->close();

         }
         else
         {
             echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
         }
     }

また、admin_forside.php を取り込み、問題なく動作します。まったく問題ありません。

4

1 に答える 1

0

次のように、クラスmebe内で関数を公開してみてください。

public function admin_tekst()

あなたのコードで:

 class mebe
 {

     private $mysqli;

     function db_c()
     {
     ...
     }


     public function admin_tekst()
     { ...
于 2013-04-09T16:35:59.743 に答える