• 18-10-2007, 17:46:48
    #1
    Üyeliği durduruldu
    Connection Problems adlı domaine smf forum sistemi kurdum sonra admin olarak aldığın insan benzeri varlık kurcalamış veritabanı hatası veriyo elimde hiç yedek yok nasıl düzeltebilirim
  • 18-10-2007, 17:49:44
    #2
    dbyimi sildin. geçmiş olsun hostcunda yedek iste yada yeniden yenisi kur

    başka türlü kurtarma yolu varmi bilmiyorum
  • 18-10-2007, 17:49:51
    #3
    ekteki dosyayı ftp ye at... sonra çalıştır...

    Sanırım veritbanı ismini filen değiştirmiş...

    Çünkü veritabanı ile bağlantı kurulamıyor...

    Edit: Dosya yüklerken hata verdiğinde ekleyemedim...

    onar.php diye kaydet aşağıdaki kodları...

    <?php
    /******************************************************************************
    * repair_settings.php                                                         *
    *******************************************************************************
    * SMF: Simple Machines Forum                                                  *
    * Open-Source Project Inspired by Zef Hemel (zef@zefhemel.com)                *
    * =========================================================================== *
    * Software Version:           SMF 1.1                                         *
    * Software by:                Simple Machines (Home of SMF: Free PHP and MySQL forum software) *
    * Copyright 2001-2005 by:     Lewis Media (Website Design and Web Development in Kitchener, Waterloo and Cambridge)         *
    * Support, News, Updates at:  Home of SMF: Free PHP and MySQL forum software                   *
    *******************************************************************************
    * This program is free software; you may redistribute it and/or modify it     *
    * under the terms of the provided license as published by Lewis Media.        *
    *                                                                             *
    * This program is distributed in the hope that it is and will be useful,      *
    * but WITHOUT ANY WARRANTIES; without even any implied warranty of            *
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                        *
    *                                                                             *
    * See the "license.txt" file for details of the Simple Machines license.      *
    * The latest version can always be found at Home of SMF: Free PHP and MySQL forum software.    *
    ******************************************************************************/
    // Initialize everything and load the language files.
    initialize_inputs();
    $txt['smf_repair_settings'] = 'SMF Site Onarım Araçları';
    $txt['no_value'] = '<i style="font-weight: normal; color: red;">Deger Bulunamadı</i>';
    $txt['default_value'] = 'Önerilen Deger';
    $txt['save_settings'] = 'Ayarları Kaydet';
    $txt['not_writable'] = 'Settings.php server\'a yazılamadı.Lütfen Dosya İzinlerinizi Kontrol Edin';
    $txt['recommend_blank'] = '<i>(blank)</i>';
    $txt['database_settings_hidden'] = 'Bazı ayarlar veritabanına kaydedilemedi. Lütfen veritabanınızı kontrol edin';
    $txt['critical_settings'] = 'Kritik Ayarlar';
    $txt['critical_settings_info'] = 'Asagıdaki Alanları Kontrol Edin ve Sitenizdeki Dosya ve Klasörlerin Konumuna Göre Yol verin. Eger Nasıl Yapıldıgını Bilmiyorsanız Smf Sitesine Basvurun';
    $txt['maintenance'] = 'Bakım Modu';
    $txt['maintenance0'] = 'Kapalı <em>(önerilen)</em>';
    $txt['maintenance1'] = 'Açık';
    $txt['maintenance2'] = 'Forum kullanıma kapalı <em>(Önerilmez!)</em>';
    $txt['language'] = 'Dil Dosyası';
    $txt['cookiename'] = 'Cookie Adı';
    $txt['queryless_urls'] = 'Sorgusuz URL';
    $txt['queryless_urls0'] = 'Kapalı (Önerilen)';
    $txt['queryless_urls1'] = 'Açık';
    $txt['enableCompressedOutput'] = 'Sıkıstırılmıs Çıktı';
    $txt['enableCompressedOutput0'] = 'Kapalı (Forumda hata alıyorsanız önenilir. Bu özelligi açabilmeniz için, sunucuzda zip/zlib kurulu olmalıdır.)';
    $txt['enableCompressedOutput1'] = 'Açık (Trafik (bandwidth) miktarınız düşükse önerilir.)';
    $txt['databaseSession_enable'] = 'Veritabanı bazlı oturum';
    $txt['databaseSession_enable0'] = 'Kapalı';
    $txt['databaseSession_enable1'] = 'Açık (Önerilen)';
    $txt['database_settings'] = 'MySQL Database Bilgileri';
    $txt['database_settings_info'] = 'MYSQL KULLANICI ADI,SERVER YOLU vs. ASAGIYA YAZIN';
    $txt['db_server'] = 'MySQL sunucu adı';
    $txt['db_name'] = 'MySQL veritabanı Adı';
    $txt['db_user'] = 'MySQL Kullanici Adı';
    $txt['db_passwd'] = 'MySQL Sifresi';
    $txt['db_prefix'] = 'MySQL Tabloları Öneki';
    $txt['db_persist'] = 'MySQL Baglantı Tipi';
    $txt['db_persist0'] = 'Standart (Önerilen)';
    $txt['db_persist1'] = 'Sürekli baglantı (Eger sorun yaşarsanız bunu kapatın. Daha çok tekil sunucular için önerilir.)';
    $txt['path_url_settings'] = 'Dosya ve Klasör Yolları';
    $txt['path_url_settings_info'] = 'Bu alana SMF forumunuzun dosya yollarını yazmalısınız<br /> Eger dosya yollarını bilmiyorsanız, Önerilen Degerlere tıklatın';
    $txt['boardurl'] = 'Forum URL';
    $txt['boarddir'] = 'Forum Dizini';
    $txt['sourcedir'] = 'Sources Dizini';
    $txt['attachmentUploadDir'] = 'Attachment Dizini';
    $txt['avatar_url'] = 'Avatar URL';
    $txt['avatar_directory'] = 'Avatar Dizini';
    $txt['smileys_url'] = 'Smileys URL';
    $txt['smileys_dir'] = 'Smileys Dizini';
    $txt['theme_url'] = 'Default Teması URL';
    $txt['images_url'] = 'Default Teması Resimleri URL';
    $txt['theme_dir'] = 'Default Tema Dizini';
    if (isset($_POST['submit']))
     set_settings();
    // Note that we're using the default URLs because we aren't even going to try to use Settings.php's settings.
    echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
     <head>
      <title>', $txt['smf_repair_settings'], '</title>
      <script language="JavaScript" type="text/javascript" src="Themes/default/script.js"></script>
      <style type="text/css">
       body
       {
        font-family: Verdana, sans-serif;
        background-color: #D4D4D4;
        margin: 0;
       }
       body, td
       {
        font-size: 10pt;
       }
       div#header
       {
        background-color: white;
        padding: 22px 4% 12px 4%;
        font-family: Georgia, serif;
        font-size: xx-large;
        border-bottom: 1px solid black;
        height: 40px;
       }
       div#content
       {
        padding: 20px 30px;
       }
       div.error_message
       {
        border: 2px dashed red;
        background-color: #E1E1E1;
        margin: 1ex 4ex;
        padding: 1.5ex;
       }
       div.panel
       {
        border: 1px solid gray;
        background-color: #F0F0F0;
        margin: 1ex 0;
        padding: 1.2ex;
       }
       div.panel h2
       {
        margin: 0;
        margin-bottom: 0.5ex;
        padding-bottom: 3px;
        border-bottom: 1px dashed black;
        font-size: 14pt;
        font-weight: normal;
       }
       div.panel h3
       {
        margin: 0;
        margin-bottom: 2ex;
        font-size: 10pt;
        font-weight: normal;
       }
       form
       {
        margin: 0;
       }
       td.textbox
       {
        padding-top: 2px;
        font-weight: bold;
        white-space: nowrap;
        padding-right: 2ex;
       }
      </style>
     </head>
     <body>
      <div id="header">
       <a href="Home of SMF: Free PHP and MySQL forum software" target="_blank">Simple Machines</a>
       <div title="Zanarkand">', $txt['smf_repair_settings'], '</div>
      </div>
      <div id="content">';
    show_settings();
    echo '
      </div>
     </body>
    </html>';
    function initialize_inputs()
    {
     // Turn off magic quotes runtime and enable error reporting.
     @set_magic_quotes_runtime(0);
     error_reporting(E_ALL);
     if (@ini_get('session.save_handler') == 'user')
      @ini_set('session.save_handler', 'files');
     @session_start();
     // Add slashes, as long as they aren't already being added.
     if (get_magic_quotes_gpc() == 0)
     {
      foreach ($_POST as $k => $v)
      {
       if (is_array($v))
        foreach ($v as $k2 => $v2)
         $_POST[$k][$k2] = addslashes($v2);
       else
        $_POST[$k] = addslashes($v);
      }
     }
     // This is really quite simple; if ?delete is on the URL, delete the installer...
     if (isset($_GET['delete']))
     {
      @unlink(__FILE__);
      // Now just redirect to a blank.gif...
      header('Location: http://' . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT']) . dirname($_SERVER['PHP_SELF']) . '/Themes/default/images/blank.gif');
      exit;
     }
    }
    function show_settings()
    {
     global $txt;
     // Check to make sure Settings.php exists!
     if (file_exists(dirname(__FILE__) . '/Settings.php'))
      $settingsArray = file(dirname(__FILE__) . '/Settings.php');
     else
      $settingsArray = array();
     if (count($settingsArray) == 1)
      $settingsArray = preg_split('~[\r\n]~', $settingsArray[0]);
     $settings = array();
     for ($i = 0, $n = count($settingsArray); $i < $n; $i++)
     {
      $settingsArray[$i] = rtrim($settingsArray[$i]);
      if (substr($settingsArray[$i], 0, 1) == '$')
      {
       preg_match('~^[$]([a-zA-Z_]+)\s*=\s*(["\'])?(.*?)(?:\\2)?;~', $settingsArray[$i], $match);
       if (isset($match[3]))
       {
        if ($match[3] == 'dirname(__FILE__)')
         $settings[$match[1]] = dirname(__FILE__);
        elseif ($match[3] == 'dirname(__FILE__) . \'/Sources\'')
         $settings[$match[1]] = dirname(__FILE__) . '/Sources';
        elseif ($match[3] == '$boarddir . \'/Sources\'')
         $settings[$match[1]] = $settings['boarddir'] . '/Sources';
        else
         $settings[$match[1]] = stripslashes($match[3]);
       }
      }
     }
     if (isset($settings['db_server']) && isset($settings['db_name']) && isset($settings['db_user']) && isset($settings['db_passwd']))
     {
      $attempt = @mysql_connect($settings['db_server'], $settings['db_user'], $settings['db_passwd']);
      if ($attempt != false)
       $attempt = @mysql_select_db($settings['db_name']);
      if ($attempt && isset($settings['db_prefix']))
      {
       $request = @mysql_query("
        SELECT DISTINCT variable, value
        FROM $settings[db_prefix]settings");
       while ($row = @mysql_fetch_row($request))
        $settings[$row[0]] = $row[1];
       @mysql_free_result($request);
       $request = @mysql_query("
        SELECT variable, value
        FROM $settings[db_prefix]themes
        WHERE ID_THEME = 1
         AND variable IN ('theme_dir', 'theme_url', 'images_url')
        LIMIT 3");
       while ($row = @mysql_fetch_row($request))
        $settings[$row[0]] = $row[1];
       @mysql_free_result($request);
       $show_db_settings = $request;
      }
     }
     else
      $show_db_settings = false;
     $known_settings = array(
      'critical_settings' => array(
       'maintenance' => array('flat', 'int', 2),
       'language' => array('flat', 'string', 'english'),
       'cookiename' => array('flat', 'string', 'SMFCookie11'),
       'queryless_urls' => array('db', 'int', 1),
       'enableCompressedOutput' => array('db', 'int', 1),
       'databaseSession_enable' => array('db', 'int', 1),
      ),
      'database_settings' => array(
       'db_server' => array('flat', 'string', 'localhost'),
       'db_name' => array('flat', 'string'),
       'db_user' => array('flat', 'string'),
       'db_passwd' => array('flat', 'string'),
       'db_prefix' => array('flat', 'string'),
       'db_persist' => array('flat', 'int', 1),
      ),
      'path_url_settings' => array(
       'boardurl' => array('flat', 'string'),
       'boarddir' => array('flat', 'string'),
       'sourcedir' => array('flat', 'string'),
       'attachmentUploadDir' => array('db', 'string'),
       'avatar_url' => array('db', 'string'),
       'avatar_directory' => array('db', 'string'),
       'smileys_url' => array('db', 'string'),
       'smileys_dir' => array('db', 'string'),
       'theme_url' => array('theme', 'string'),
       'images_url' => array('theme', 'string'),
       'theme_dir' => array('theme', 'string'),
      )
     );
     $host = empty($_SERVER['HTTP_HOST']) ? $_SERVER['SERVER_NAME'] . (empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':' . $_SERVER['SERVER_PORT']) : $_SERVER['HTTP_HOST'];
     $url = 'http://' . $host . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'));
     $known_settings['path_url_settings']['boardurl'][2] = $url;
     $known_settings['path_url_settings']['boarddir'][2] = dirname(__FILE__);
     if (file_exists(dirname(__FILE__) . '/Sources'))
      $known_settings['path_url_settings']['sourcedir'][2] = realpath(dirname(__FILE__) . '/Sources');
     if (file_exists(dirname(__FILE__) . '/attachments'))
      $known_settings['path_url_settings']['attachmentUploadDir'][2] = realpath(dirname(__FILE__) . '/attachments');
     if (file_exists(dirname(__FILE__) . '/avatars'))
     {
      $known_settings['path_url_settings']['avatar_url'][2] = $url . '/avatars';
      $known_settings['path_url_settings']['avatar_directory'][2] = realpath(dirname(__FILE__) . '/avatars');
     }
     if (file_exists(dirname(__FILE__) . '/Smileys'))
     {
      $known_settings['path_url_settings']['smileys_url'][2] = $url . '/Smileys';
      $known_settings['path_url_settings']['smileys_dir'][2] = realpath(dirname(__FILE__) . '/Smileys');
     }
     if (file_exists(dirname(__FILE__) . '/Themes/default'))
     {
      $known_settings['path_url_settings']['theme_url'][2] = $url . '/Themes/default';
      $known_settings['path_url_settings']['images_url'][2] = $url . '/Themes/default/images';
      $known_settings['path_url_settings']['theme_dir'][2] = realpath(dirname(__FILE__) . '/Themes/default');
     }
     if (isset($attempt) && $attempt)
     {
      $request = @mysql_query("
       SHOW TABLES LIKE '%log_topics'");
      if (@mysql_num_rows($request) == 1)
       list ($known_settings['database_settings']['db_prefix'][2]) = preg_replace('~log_topics$~', '', mysql_fetch_row($request));
      @mysql_free_result($request);
     }
     elseif (empty($show_db_settings))
     {
      echo '
       <div class="error_message" style="margin-bottom: 2ex;">
        ', $txt['database_settings_hidden'], '
       </div>';
     }
     echo '
       <script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
        // Get the inner HTML of an element.
        function getInnerHTML(element)
        {
         if (typeof(element.innerHTML) != "undefined")
          return element.innerHTML;
         else
         {
          var returnStr = "";
          for (var i = 0; i < element.childNodes.length; i++)
           returnStr += getOuterHTML(element.childNodes[i]);
          return returnStr;
         }
        }
        function getOuterHTML(node)
        {
         if (typeof(node.outerHTML) != "undefined")
          return node.outerHTML;
         var str = "";
         switch (node.nodeType)
         {
         // An element.
         case 1:
          str += "<" + node.nodeName;
          for (var i = 0; i < node.attributes.length; i++)
          {
           if (node.attributes[i].nodeValue != null)
            str += " " + node.attributes[i].nodeName + "=\"" + node.attributes[i].nodeValue + "\"";
          }
          if (node.childNodes.length == 0 && in_array(node.nodeName.toLowerCase(), ["hr", "input", "img", "link", "meta", "br"]))
           str += " />";
          else
           str += ">" + getInnerHTML(node) + "</" + node.nodeName + ">";
          break;
         // 2 is an attribute.
         // Just some text..
         case 3:
          str += node.nodeValue;
          break;
         // A CDATA section.
         case 4:
          str += "<![CDATA" + "[" + node.nodeValue + "]" + "]>";
          break;
         // Entity reference..
         case 5:
          str += "&" + node.nodeName + ";";
          break;
         // 6 is an actual entity, 7 is a PI.
         // Comment.
         case 8:
          str += "<!--" + node.nodeValue + "-->";
          break;
         }
         return str;
        }
       // ]]></script>
       <form action="', $_SERVER['PHP_SELF'], '" method="post">
        <div class="panel">';
     foreach ($known_settings as $settings_section => $section)
     {
      echo '
         <h2>', $txt[$settings_section], '</h2>
         <h3>', $txt[$settings_section . '_info'], '</h3>
         <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-bottom: 3ex;">
          <tr>';
      foreach ($section as $setting => $info)
      {
       if ($info[0] != 'flat' && empty($show_db_settings))
        continue;
       echo '
           <td width="20%" valign="top" class="textbox" style="padding-bottom: 1ex;">
            <label for="', $setting, '">', $txt[$setting], ':</label>', !isset($settings[$setting]) && $info[1] != 'check' ? '<br />
            ' . $txt['no_value'] : '', '
           </td>
           <td style="padding-bottom: 1ex;">';
       if ($info[1] == 'int' || $info[1] == 'check')
       {
        for ($i = 0; $i <= $info[2]; $i++)
         echo '
            <label for="', $setting, $i, '"><input type="radio" name="', $info[0], 'settings[', $setting, ']" id="', $setting, $i, '" value="', $i, '"', isset($settings[$setting]) && $settings[$setting] == $i ? ' checked="checked"' : '', ' class="check" /> ', $txt[$setting . $i], '</label><br />';
       }
       elseif ($info[1] == 'string')
       {
        echo '
            <input type="text" name="', $info[0], 'settings[', $setting, ']" id="', $setting, '" value="', isset($settings[$setting]) ? $settings[$setting] : '', '" size="', $settings_section == 'path_url_settings' ? '60" style="width: 80%;' : '30', '" />';
        if (isset($info[2]))
         echo '
            <div style="font-size: smaller;">', $txt['default_value'], ': &quot;<b><a href="javascript:void(0);" onclick="document.getElementById(\'', $setting, '\').value = ', $info[2] == '' ? '\'\';">' . $txt['recommend_blank'] : 'getInnerHTML(this);">' . $info[2], '</a></b>&quot;.</div>';
       }
       echo '
           </td>
          </tr><tr>';
      }
      echo '
           <td colspan="2"></td>
          </tr>
         </table>';
     }
     echo '
         <div align="right" style="margin: 1ex;">';
     $failure = false;
     if (substr(__FILE__, 1, 2) != ':\\')
     {
      // On linux, it's easy - just use is_writable!
      $failure |= !is_writable('Settings.php') && !@chmod('Settings.php', 0777);
     }
     // Windows is trickier.  Let's try opening for r+...
     else
     {
      // Funny enough, chmod actually does do something on windows - it removes the read only attribute.
      @chmod(dirname(__FILE__) . '/' . 'Settings.php', 0777);
      $fp = @fopen(dirname(__FILE__) . '/' . 'Settings.php', 'r+');
      // Hmm, okay, try just for write in that case...
      if (!$fp)
       $fp = @fopen(dirname(__FILE__) . '/' . 'Settings.php', 'w');
      $failure |= !$fp;
      @fclose($fp);
     }
     if ($failure)
      echo '
        <input type="submit" name="submit" value="', $txt['save_settings'], '" disabled="disabled" /><br />', $txt['not_writable'];
     else
      echo '
        <input type="submit" name="submit" value="', $txt['save_settings'], '" />';
     echo '
        </div>
        </div>
       </form>';
    }
    function set_settings()
    {
     $db_updates = isset($_POST['dbsettings']) ? $_POST['dbsettings'] : array();
     $theme_updates = isset($_POST['themesettings']) ? $_POST['themesettings'] : array();
     $file_updates = isset($_POST['flatsettings']) ? $_POST['flatsettings'] : array();
     $db_updates['theme_guests'] = 1;
     $settingsArray = file(dirname(__FILE__) . '/Settings.php');
     $settings = array();
     for ($i = 0, $n = count($settingsArray); $i < $n; $i++)
     {
      $settingsArray[$i] = rtrim($settingsArray[$i]);
      // Remove the redirect...
      if ($settingsArray[$i] == 'if (file_exists(dirname(__FILE__) . \'/install.php\'))')
      {
       $settingsArray[$i] = '';
       $settingsArray[$i++] = '';
       $settingsArray[$i++] = '';
       continue;
      }
      if (substr($settingsArray[$i], 0, 1) == '$' && preg_match('~^[$]([a-zA-Z_]+)\s*=\s*(["\'])?(.*?)(?:\\2)?;~', $settingsArray[$i], $match) == 1)
       $settings[$match[1]] = stripslashes($match[3]);
      foreach ($file_updates as $var => $val)
       if (strncasecmp($settingsArray[$i], '$' . $var, 1 + strlen($var)) == 0)
       {
        $comment = strstr($settingsArray[$i], '#');
        $settingsArray[$i] = '$' . $var . ' = \'' . $val . '\';' . ($comment != '' ? "\t\t" . $comment : '');
       }
     }
     // Blank out the file - done to fix a oddity with some servers.
     $fp = @fopen(dirname(__FILE__) . '/Settings.php', 'w');
     @fclose($fp);
     $fp = fopen(dirname(__FILE__) . '/Settings.php', 'r+');
     $lines = count($settingsArray);
     for ($i = 0; $i < $lines - 1; $i++)
     {
      // Don't just write a bunch of blank lines.
      if ($settingsArray[$i] != '' || $settingsArray[$i - 1] != '')
       fwrite($fp, $settingsArray[$i] . "\n");
     }
     fwrite($fp, $settingsArray[$i]);
     fclose($fp);
     // Make sure it works.
     require(dirname(__FILE__) . '/Settings.php');
     // Attempt a connection.
     @mysql_connect($db_server, $db_user, $db_passwd);
     @mysql_select_db($db_name);
     $setString = '';
     foreach ($db_updates as $var => $val)
      $setString .= "
        ('$var', '$val'),";
     if (!empty($setString))
      @mysql_query("
       REPLACE INTO {$db_prefix}settings
        (variable, value)
       VALUES" . substr($setString, 0, -1));
     $setString = '';
     foreach ($theme_updates as $var => $val)
      $setString .= "
        (1, 0, '$var', '$val'),";
     if (!empty($setString))
      @mysql_query("
       REPLACE INTO {$db_prefix}themes
        (ID_THEME, ID_MEMBER, variable, value)
       VALUES" . substr($setString, 0, -1));
    }
    ?>
  • 18-10-2007, 17:50:24
    #4
    Üyeliği durduruldu
    hangi ekteki dosya ?
  • 18-10-2007, 17:53:50
    #5
    düzenledim... Dosya eklerken sorun veriyor...
  • 18-10-2007, 17:56:20
    #6
    Üyeliği durduruldu
    neyse ya buldum settings.php içinden mysql bilgilerini dğeiştirmişler lamoşlar neyse teşekkürler arkadaşlar
  • 18-10-2007, 18:01:33
    #7
    Üyeliği durduruldu
    sorun bitmedi arkadaşlar adminlerin bütün şifrelerini değiştirmişler nerden yapcaz
  • 18-10-2007, 23:22:03
    #8
    yeni bir üyelik yaratıp phpmyadminden o üyeliğe admin yetkisi vereceksin.
  • 19-10-2007, 13:07:21
    #9
    Üyeliği durduruldu
    neyse arkadaşlar artık aldım admin şifresini sağolun