hp-db bug ?

06/14/2011 14:39 IRoxasI#1
bei mir kommt der Fehler, wenn ich mich auf meiner HP einloggen möchte...

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\inc\head.inc.php on line 14

habe die line 14 überprüft, da steht nur

if(mysql_num_rows($sqlQry)>0)

weiß grad nicht weiter =(

mfg lRoxasl
06/14/2011 14:51 LordKill#2
Quote:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\inc\head.inc.php on line 14
der braucht nen anderen Parameter
der spuckt da nen boolean (true/false) aus
und ich denke der kriegt mal ein false oder so :D

was denn $sqlQry, das ist nämlich der übergebene parameter...
06/14/2011 15:34 IRoxasI#3
$sqlQry = mysql_query($sqlCmd,$sqlServ);

aber $sqlServ ist nicht deklariert... also welchen paprameter soll ich nehmen ?
06/14/2011 15:44 Nikℓαus#4
Ersetz mal das, was nach $sqlCmd = ... steht durch:
PHP Code:
$sqlCmd "SELECT id,login,coins,web_admin,email,real_name 
      FROM account.account 
      WHERE login 
      LIKE '"
.mysql_real_escape_string($_POST['userid'])."' 
      AND password=PASSWORD('"
.mysql_real_escape_string($_POST['userpass'])."') 
      LIMIT 1"

06/14/2011 17:11 IRoxasI#5
genau das steht da schon da...

06/14/2011 17:19 'aiiR7#6
Quote:
Originally Posted by IRoxasI View Post
$sqlQry = mysql_query($sqlCmd,$sqlServ);

aber $sqlServ ist nicht deklariert... also welchen paprameter soll ich nehmen ?
Türlich, in der config.inc.php via DEFINE

PHP Code:
      DEFINE('SQL_HOST''1.2.3.4');
      
DEFINE('SQL_USER''root');
      
DEFINE('SQL_PASS''passwort'); 
Variable (in der index.php) wird erstellt:
PHP Code:
$sqlServ mysql_connect(SQL_HOSTSQL_USERSQL_PASS); 
Da du nun alle Seiten über die index.php abrufst, sollte es nun verständlich sein.
06/14/2011 17:30 IRoxasI#7
ja ok danke,... ich arbeite sonst nur mit Delphie und kenne das nicht, dass eine globale Variable auch in anderen "Units" genutzt werden kann...

hmm ok aber ich habe in der config.inc.php und der index.php alles korrekt eingestellt, why bugt der da rum ?
06/14/2011 17:35 Nikℓαus#8
Hast du die install.php richtig ausgeführt? Weil der Fehler weißt darauf hin, das ein Fehler in der Tabelle sein muss, das heißt vllt eine Spalte fehlt.
06/14/2011 17:38 IRoxasI#9
das kanns sein,.. habe oft das Skript gewechselt... wie führe ich die install.php aus ? will nicht extra nachschaun ;P


[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
______________________________

aber da zeigt er mir fehler an,... Object nicht gefunden...
06/14/2011 17:44 Nikℓαus#10
Erstelle du eine Datei im Hauptverzeichniss (da wo index.php) ist mit folgendem Inhalt:
PHP Code:
<?PHP
function createHpTables() {

  global 
$sqlHp;

  echo
'<p><b>HP-Datenbank</b></p>';
  
  
$cmdHp=array();
  
$cmdHp[] = "CREATE TABLE IF NOT EXISTS `is_items` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `vnum` int(10) unsigned NOT NULL,
    `kategorie_id` int(10) unsigned NOT NULL,
    `bild` varchar(50) NOT NULL,
    `beschreibung` varchar(200) NOT NULL,
    `preis` int(10) unsigned NOT NULL,
    `anzeigen` varchar(1) NOT NULL,
    `attrtype0` tinyint(4) NOT NULL DEFAULT '0',
    `attrvalue0` smallint(6) NOT NULL DEFAULT '0',
    `attrtype1` tinyint(4) NOT NULL DEFAULT '0',
    `attrvalue1` smallint(6) NOT NULL DEFAULT '0',
    `attrtype2` tinyint(4) NOT NULL DEFAULT '0',
    `attrvalue2` smallint(6) NOT NULL DEFAULT '0',
    `attrtype3` tinyint(4) NOT NULL DEFAULT '0',
    `attrvalue3` smallint(6) NOT NULL DEFAULT '0',
    `attrtype4` tinyint(4) NOT NULL DEFAULT '0',
    `attrvalue4` smallint(6) NOT NULL DEFAULT '0',
    `attrtype5` tinyint(4) NOT NULL DEFAULT '0',
    `attrvalue5` smallint(6) NOT NULL DEFAULT '0',
    `attrtype6` tinyint(4) NOT NULL DEFAULT '0',
    `attrvalue6` smallint(6) NOT NULL DEFAULT '0',
    `socket0` int(10) unsigned NOT NULL DEFAULT '0',
    `socket1` int(10) unsigned NOT NULL DEFAULT '0',
    `socket2` int(10) unsigned NOT NULL DEFAULT '0',
    `socket3` int(10) unsigned NOT NULL DEFAULT '0',
    `socket4` int(10) unsigned NOT NULL DEFAULT '0',
    `socket5` int(10) unsigned NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`)
  );"
;
  
  
$cmdHp[] = "CREATE TABLE IF NOT EXISTS `is_kategorien` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `titel` varchar(50) NOT NULL,
    PRIMARY KEY (`id`)
  );"
;
  
  
$cmdHp[] = "CREATE TABLE IF NOT EXISTS `is_log` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `account_id` int(10) unsigned NOT NULL,
    `vnum` int(10) unsigned NOT NULL,
    `preis` int(10) unsigned NOT NULL,
    `zeitpunkt` datetime NOT NULL,
    PRIMARY KEY (`id`)
  );"
;
  
  
$cmdHp[] = "CREATE TABLE IF NOT EXISTS `psc_log` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `account_id` int(11) NOT NULL,
    `admin_id` int(11) DEFAULT NULL,
    `card_type` varchar(20) NOT NULL,
    `waehrung` varchar(10) NOT NULL,
    `psc_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
    `psc_betrag` decimal(5,2) NOT NULL,
    `psc_pass` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
    `status` int(1) NOT NULL,
    `kommentar` varchar(200) NOT NULL,
    `datum` datetime NOT NULL,
    PRIMARY KEY (`id`)
  );"
;
  
  
$cmdHp[] = "CREATE TABLE IF NOT EXISTS `server_settings` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `variable` varchar(20) NOT NULL UNIQUE,
    `beschreibung` varchar(100) NOT NULL,
    `typ` enum('CHA','BOO','INT','DEC') NOT NULL,
    `value` varchar(20) NOT NULL,
    PRIMARY KEY (`id`)
  );"
;
  

  
  
$cmdHp[] = "INSERT INTO `server_settings` (`variable`, `beschreibung`, `typ`, `value`) VALUES
  ('maxGoldRate', 'Faktor der max. Gold-Drop-Rate', 'DEC', '1');"
;
  
  
$cmdHp[] = "INSERT INTO `server_settings` (`variable`, `beschreibung`, `typ`, `value`) VALUES
  ('expRate', 'Faktor der EXP-Rate', 'DEC', '1');"
;
  
  
$cmdHp[] = "INSERT INTO `server_settings` (`variable`, `beschreibung`, `typ`, `value`) VALUES
  ('minGoldRate', 'Faktor der minimalen Gold-Drop-Rate', 'DEC', '1');"
;
  
  
$cmdHp[]="CREATE TABLE IF NOT EXISTS `ban_log` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `admin_id` int(10) unsigned NOT NULL,
    `account_id` int(10) unsigned NOT NULL,
    `zeitpunkt` datetime NOT NULL,
    `grund` varchar(200) NOT NULL,
    `typ` varchar(5) NOT NULL,
    PRIMARY KEY (`id`)
  );"
;
  
  
$cmdHp[]="CREATE TABLE `news` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `titel` varchar(200) NOT NULL,
  `inhalt` text NOT NULL,
  `datum` int(10) unsigned NOT NULL,
  `hot` tinyint(1) NOT NULL,
  `kategorie` int(10) unsigned NOT NULL,
  `author` int(10) unsigned NOT NULL,
  `anzeigen` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;"
;
  
  foreach(
$cmdHp AS $blub) {
    echo 
'<p style="font-size:11px;">'.$blub;
    
$aktQry mysql_query($blub,$sqlHp);
    if(
$aktQry
    {
      echo 
'<br><span style="color: #080">erfolgreich ausgeführt</a>';
    }
    else
    {
      echo 
'<br><span style="color: #800">Nicht ausgeführt:<br>';
      echo 
mysql_error();
      echo
'</a>';
    }
    echo
'</p>';
  }
}

function 
createGsTables() {

  echo
'<p><b>Gameserver-Datenbank</b></p>';
  
  global 
$sqlServ;

  
$cmdGS=array();

  
$cmdGS[]="ALTER TABLE account.account 
    ADD `coins` int(11) NOT NULL DEFAULT '0';"
;
    
  
$cmdGS[]="ALTER TABLE account.account 
    ADD `web_admin` int(1) NOT NULL DEFAULT '0';"
;
   
  
$cmdGS[]="ALTER TABLE account.account 
    ADD `web_ip` varchar(15) NOT NULL;"
;
    
  
$cmdGS[]="ALTER TABLE account.account
    ADD `web_aktiviert` varchar(32) NOT NULL;"
;
  
  foreach(
$cmdGS AS $blub) {
    echo 
'<p style="font-size:11px;">'.$blub;
    
$aktQry mysql_query($blub,$sqlServ);
    if(
$aktQry
    {
      echo 
'<br><span style="color: #080">erfolgreich ausgeführt</a>';
    }
    else
    {
      echo 
'<br><span style="color: #800">Nicht ausgeführt:<br>';
      echo 
mysql_error();
      echo
'</a>';
    }
    echo
'</p>';
  }
  
  
  
}

if(isset(
$_GET['step']) && !empty($_GET['step'])) {

  if(
$_GET['step']==1) {
    
?>
    <p><b>Server-Daten</b></p>
    <p>Elementare Server-Daten die zur einwandfreien Funktionalität der Homepage benötigt werden. <br/>
    Der Kurz-Titel sollte nicht zu lang sein, denn er wird als E-Mail Titel/Absender genutzt.<br/>
    Die bereits eingegebenen Werte sind Vorschläge/Beispiele.</p>
    
    <form action="install.php?step=2" method="POST">
      <table>
        <tr>
          <td>Webseiten-Titel</td>
          <td><input type="text" size="40" maxlength="50" value="BeispielMT2 - Homepage" name="page_titel"/> (Wird in der Titelzeile der Homepage angezeigt.)</td>
        <tr>
        <tr>
          <td>Kurz-Titel</td>
          <td><input type="text" size="20" maxlength="50" value="BeispielMT2" name="kurz_titel"/></td>
        <tr>
        <tr>
          <td>URL-Zum Script (ohne letzten Slash)</td>
          <td><input type="text" size="30" maxlength="50" value="http://www.beispielmt2.de/mein/script" name="url"/> (Beispielsweise: "http://www.meine-seite-im.net")</td>
        <tr>
        <!--
        <tr>
          <td>Gameserver-IP</td>
          <td><input type="text" size="20" maxlength="50" name="server_ip"/></td>
        <tr>
        -->
        <tr>
          <td>Registration aktiviert?</td>
          <td>
            <select name="reg_aktivieren">
              <option selected="selected" value="true">ja</option>
              <option value="false">nein</option>
            </select>
          </td>
        <tr>
        <tr>
          <td>E-Mail-Aktivierung nötig?</td>
          <td>
            <select name="email_aktivieren">
              <option value="true">ja</option>
              <option selected="selected" value="false">nein</option>
            </select>
          </td>
        <tr>
        <tr>
          <td>Einträge pro Seite bei Auflistungen</td>
          <td><input type="text" size="20" maxlength="50" value="30" name="eintraege"/></td>
        <tr>
        <tr>
          <td>Absender-Email (Registration)</td>
          <td><input type="text" size="20" maxlength="50" value="[Only registered and activated users can see links. Click Here To Register...]" name="reg_mail"/> (muss nicht existieren)</td>
        <tr>
        <tr>
          <td>Absender-Email (Passwortreset)</td>
          <td><input type="text" size="20" maxlength="50" value="[Only registered and activated users can see links. Click Here To Register...]" name="pass_mail"/> (muss nicht existieren)</td>
        <tr>
      </table>
      
      <p><b>SQL-Server-Daten</b></p>
      <p>Eingeben der Daten für die SQL-Server. Es ist auch möglich, für beides die selbe Datenbank zu nutzen (aber nicht empfohlen). <br/>
      Sollte dies der Fall sein, sollte bei Datenbank der Homepage eine entsprechende DB (z.B. account) eingegeben werden.</p>
      <table>
        <tr>
          <th colspan="2" style="text-align:left;">Gameserver-Datenbank</th>
        </tr>
        <tr>
          <td>SQL-Server (Gameserver)</td>
          <td><input type="text" size="20" maxlength="50" name="sqlserver_game"/></td>
        <tr>
        <tr>
          <td>SQL-User (Gameserver)</td>
          <td><input type="text" size="20" maxlength="50" name="sqluser_game"/></td>
        <tr>
        <tr>
          <td>SQL-Passwort (Gameserver)</td>
          <td><input type="text" size="20" maxlength="50" name="sqlpass_game"/></td>
        <tr>
        <tr>
          <th colspan="2" style="text-align:left;">Homepage-Datenbank</th>
        </tr>
        <tr>
          <td>SQL-Server (Homepage)</td>
          <td><input type="text" size="20" maxlength="50" name="sqlserver_hp"/></td>
        <tr>
        <tr>
          <td>SQL-User (Homepage)</td>
          <td><input type="text" size="20" maxlength="50" name="sqluser_hp"/></td>
        <tr>
        <tr>
          <td>SQL-Passwort (Homepage)</td>
          <td><input type="text" size="20" maxlength="50" name="sqlpass_hp"/></td>
        <tr>
        <tr>
          <td>SQL-Datenbank (Homepage)</td>
          <td><input type="text" size="20" maxlength="50" name="sqldb_hp"/></td>
        <tr>
        <tr>
          <td><input type="submit" name="weiter" value="weiter"/></td>
        <tr>
      </table>
    </form>
    <?PHP
  
}
  elseif(
$_GET['step']==2) {
    
    echo
'<p><b>Config-Erstellung</b></p>';
  
    
/*
      $_POST['page_titel']
      $_POST['kurz_titel']
      $_POST['url']
      $_POST['reg_aktivieren']
      $_POST['email_aktivieren']
      $_POST['eintraege']
      $_POST['reg_mail']
      $_POST['weiter']
    */
  
    
$checkGS = @mysql_connect($_POST['sqlserver_game'],$_POST['sqluser_game'],$_POST['sqlpass_game']);
    
$checkHP = @mysql_connect($_POST['sqlserver_hp'],$_POST['sqluser_hp'],$_POST['sqlpass_hp']);
    
$checkDB = @mysql_select_db($_POST['sqldb_hp'],$checkHP);
    
    if(!
$checkGS || !$checkHP || !$checkDB)
    {
      echo
'<p><b>Fehler:</b><br>';
      if(!
$checkGS) echo'- Die Verbindung zum Game-Server ist fehlgeschlagen<br>';
      if(!
$checkHP) echo'- Die Verbindung zum HP-Server ist fehlgeschlagen<br>';
      if(!
$checkDB) echo'- Die Datenbank des HP-Servers konnte nicht ausgewählt werden<br>';
      
      echo
'<b><a href="javascript:history.back()">zurück</a></b>';
      
      echo
'</p>';
    }
    
    foreach(
$_POST AS $bla=>$bla2)
    {
      
$_POST[$bla]=str_replace('"','\"',$_POST[$bla]);
      
$_POST[$bla]=str_replace("'","\'",$_POST[$bla]);
    }
  
    
$cfgContent ='<?PHP
    
      DEFINE(\'SQL_HOST\', \''
.$_POST['sqlserver_game'].'\');
      DEFINE(\'SQL_USER\', \''
.$_POST['sqluser_game'].'\');
      DEFINE(\'SQL_PASS\', \''
.$_POST['sqlpass_game'].'\');
      
      DEFINE(\'SQL_HP_HOST\', \''
.$_POST['sqlserver_hp'].'\');
      DEFINE(\'SQL_HP_USER\', \''
.$_POST['sqluser_hp'].'\');
      DEFINE(\'SQL_HP_PASS\', \''
.$_POST['sqlpass_hp'].'\');
      DEFINE(\'SQL_HP_DB\', \''
.$_POST['sqldb_hp'].'\');
      
      $serverSettings[\'titel_page\']="'
.$_POST['page_titel'].'";         // Webseiten-Titel
      $serverSettings[\'titel\']="'
.$_POST['kurz_titel'].'";                           // Servername
      $serverSettings[\'url\']="'
.$_POST['url'].'";                     // URL zur Seite (ohne letzten "/")
      $serverSettings[\'server_ip\']="";                         // Server-IP
      $serverSettings[\'register_on\']='
.$_POST['reg_aktivieren'].';                              // Registration aktiviert (ja = true / nein = false)
      $serverSettings[\'mail_activation\']='
.$_POST['email_aktivieren'].';                          // Mailaktivierung (ja = true / nein = false)
      $serverSettings[\'page_entries\']='
.$_POST['eintraege'].';                               // Einträge pro Seite
      $serverSettings[\'reg_mail\']=\''
.$_POST['reg_mail'].'\';                   // E-Mail-Absender bei Registration
      $serverSettings[\'pass_mail\']=\''
.$_POST['pass_mail'].'\';                 // E-Mail-Absender bei Passwortreset
      
      require("daten.inc.php");
      
    ?>'
;

    
$cfgFile fopen('./inc/config.inc.php','w+');
    
    
$writeCfg fwrite($cfgFile,$cfgContent);
  
    if(
$writeCfg)
    {
      echo
'<p>
        <b>Config erfolgreich erstellt</b><br>
        <a href="install.php?step=3">weiter</a>
      </p>'
;
    }
  
  }
  elseif(
$_GET['step']==3) {
    echo
'<p><b>Tabellen erstellen</b></p>';
    require_once(
'./inc/config.inc.php');
    
    
$sqlHp mysql_connect(SQL_HP_HOSTSQL_HP_USERSQL_HP_PASS);
    
$sqlServ mysql_connect(SQL_HOSTSQL_USERSQL_PASS);
    
$selectHpDb mysql_select_db(SQL_HP_DB,$sqlHp);
    
    if(!
is_resource($sqlServ) OR !is_resource($sqlHp) OR !$selectHpDb) {
      exit(
"Verbindung zur Datenbank fehlgeschlagen: Abbruch");
    }
    
    
createHpTables();
    
createGsTables();
    
    
?>
    <p>Wurden vorher keine anderen Scripte auf der Datenbank angewendet,<br/> 
    so sollte jeder Befehl erfolgreich ausgeführt worden sein.<br/>
    Duplicate Entries sollten keine Probleme machen sofern die Datentypen stimmen.</p>
    
    <p>Nun noch folgenden Ordern/Datein die CHMODS ändern:<br/>
    ./is_img/: CHMOD 777<br/>
    ./archives/: CHMOD 777 (mit Unterordner/Files)
    </p>
    
    <p><b><a href="install.php?step=4">Admin eingeben</a></b></p>
    <?PHP
    
  
}
  elseif(
$_GET['step']==4
  {
    echo
'<p><b>Namen des Admins eingeben</b></p>';
    
    if(!isset(
$_POST['submit']) && !$_POST['submit']=='aktualisieren')
    {
    
?>
    
    <p>Nun einem bestehenden Account Adminrechte zuweisen.</p>
    <form action="install.php?step=4" method="POST">
    <input type="text" size="16" maxlength="20" name="account">
    <input type="submit" name="submit" value="aktualisieren">
    </form>
    
    <p><b>Abschlie&szlig;end die install.php löschen!</b></p>
    <?PHP
    
}
    else {
    
      if(!empty(
$_POST['account']))
      {
      
        require_once(
'./inc/config.inc.php');
    
        
$sqlHp mysql_connect(SQL_HP_HOSTSQL_HP_USERSQL_HP_PASS);
        
$sqlServ mysql_connect(SQL_HOSTSQL_USERSQL_PASS);
        
$selectHpDb mysql_select_db(SQL_HP_DB,$sqlHp);
        
        if(!
is_resource($sqlServ) OR !is_resource($sqlHp) OR !$selectHpDb) {
          exit(
"Verbindung zur Datenbank fehlgeschlagen: Abbruch");
        }
        
        
$userAccount mysql_real_escape_string($_POST['account']);
        
        
$checkAccount "SELECT id,login FROM account.account WHERE login='".$userAccount."' LIMIT 1";
        
$queryAccount mysql_query($checkAccount,$sqlServ);
        if(
mysql_num_rows($queryAccount)>0
        {
          
$sqlUpdate "UPDATE account.account SET web_admin='9' WHERE login='".$userAccount."' LIMIT 1";
          
$qryUpdate mysql_query($sqlUpdate,$sqlServ);
          
          if(
$qryUpdate)
          {
            echo
'Account erfolgreich als Admin eingetragen. Nun bitte die "install.php" löschen!<br><a href="index.php">zur Seite</a>';
          }
          
        }
        else
        {
          echo
'Account existiert nicht. <a href="install.php?step=4">Wiederholen!</a>';
        }
      }
      else
      {
        echo
'Es wurde kein Account eingegeben. <a href="install.php?step=4">Wiederholen!</a>';
      }
    
    }
  }

}
else {
?>
  <p><b>Installation MT2GS CMS by hennink</b></p>
  <p><a href="install.php?step=1">Installation starten</a></p>
<?PHP
}
?>
06/14/2011 17:52 IRoxasI#11
hab ich,... wie nennen ? .php .txt .bat ? und dann ?
06/14/2011 17:55 Nikℓαus#12
install.php und dann im browser [Only registered and activated users can see links. Click Here To Register...] aufrufen. Dann müsste eig. alles klar sein. Fals nicht, kannst du gern fragen :D
06/14/2011 18:00 IRoxasI#13
ok gut, das geht alles, aber

Die Datenbank des HP-Servers konnte nicht ausgewählt werde

... naja aber eig ist alles so eingetragen, wie es sein soll..

habs danke =)

SQL-Server: Die IP deines Server(Sofern Datenbank dort drauf)
SQL-User: Sollte klar sein, erstell einen neuen oder root
SQL-PW: Sofern nicht geändert irgendein Standardpw
SQL-Datenbank: Am besten -> account

#closerequest