Hen Script Homepage Problem

07/12/2011 17:52 Panasonic™#1
Hey epvp

Wollte meine HP (uhrsprungsscribt von Hen!) installieren
Set 1 (angabe von gameserver usw. kallr wunderbar)
aber Step 2 (conifg) kommt folgender fehler:

Config-Erstellung


Warning: fopen(./inc/config.inc.php) [function.fopen]: failed to open stream: Permission denied in /var/www/web154/html/index/install.php on line 337

Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/web154/html/index/install.php on line 339


leider kenn ich mich bei html ned so gut aus bitte um hilfe..


Das ist die install.php:

<?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_HOST, SQL_HP_USER, SQL_HP_PASS);
$sqlServ = mysql_connect(SQL_HOST, SQL_USER, SQL_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_HOST, SQL_HP_USER, SQL_HP_PASS);
$sqlServ = mysql_connect(SQL_HOST, SQL_USER, SQL_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
}
?>
07/19/2011 22:15 [Sky113]#2
#push
Selbes problem !
07/19/2011 22:22 NotEnoughForYou#3
Quote:
failed to open stream: Permission denied
Rein nach dem Fehler, fehlen die Zugriffsrechte

Quote:
fwrite() expects parameter 1 to be resource, boolean given in
du hast statt einer resourcen-kennung einen booleschen wert an die funktion übergeben
07/19/2011 22:26 tobi9742#4
Hat die confic.inc.php die Rechte 777?
07/19/2011 22:29 NotEnoughForYou#5
Quote:
Originally Posted by tobi9742 View Post
Hat die confic.inc.php die Rechte 777?
wenn schon die install.php
07/19/2011 22:33 tobi9742#6
Quote:
Originally Posted by NotEnoughForYou View Post
wenn schon die install.php
Nee, config.inc.php

Einmal die Fehlermeldung genau lesen:
Quote:
Warning: fopen(./inc/config.inc.php) [function.fopen]: failed to open stream: Permission denied in /var/www/web154/html/index/install.php on line 337
Und dann in den Inhalt der install.php in Notepad einfügen ... und tada in Zeile 337 steht:
Quote:
$cfgFile = fopen('./inc/config.inc.php','w+');
07/19/2011 22:34 NotEnoughForYou#7
Quote:
Originally Posted by tobi9742 View Post
Nee, config.inc.php

Einmal die Fehlermeldung genau lesen:


Und dann in den Inhalt der install.php in Notepad einfügen ... und tada in Zeile 337 steht:
stimmt ^^ glatt überlesen, ist ja fopen und nicht fwrite, vertan
07/20/2011 11:28 Fr33ak#8
Überlegt beide nochmal.. die install.php will in die config.inc.php
reinschreiben, also braucht die install.php die Rechte :)

Gib der install.php Rechte ( chmod 777 ) und es sollte gehen.

Fr33ak
07/20/2011 12:01 Daroolein#9
Ihr labert mal wieder alle Müll.
Die config.inc.php wird von der install.php erstellt,
d.h. wenn die install.php nicht genügend Rechte hat,
hat die config.inc.php auch nicht genügend Rechte.
Mal ganz davon abgesehen, dass wenn die install.php beim schreiben
auf die config.inc.php failt, das nicht an der config.inc.php liegt,
sondern an der install.php, da sie nicht genügend Rechte hat
zu schreiben.

~Daroo
07/20/2011 12:36 tobi9742#10
Übrigebns ... war bei ihm über TV drin, kurz config.inc.php Rechte 777 gegeben und ein Wunder ... es geht
07/20/2011 12:57 Fr33ak#11
Ja und eure Autos brauchen Führerscheine damit ihr fahren könnt..
Die install.php braucht Rechte und nicht die config, was du erzählst ist Mist.

Quote:
Ihr labert mal wieder alle Müll.
Die config.inc.php wird von der install.php erstellt,
d.h. wenn die install.php nicht genügend Rechte hat,
hat die config.inc.php auch nicht genügend Rechte.
Mal ganz davon abgesehen, dass wenn die install.php beim schreiben
auf die config.inc.php failt, das nicht an der config.inc.php liegt,
sondern an der install.php, da sie nicht genügend Rechte hat
zu schreiben.

~Daroo
Toll wie du nachplappern kannst ;)
07/20/2011 19:50 [Sky113]#12
Quote:
Originally Posted by Fr33ak View Post
Überlegt beide nochmal.. die install.php will in die config.inc.php
reinschreiben, also braucht die install.php die Rechte :)

Gib der install.php Rechte ( chmod 777 ) und es sollte gehen.

Fr33ak
Nein die confic.inc.php brauch die Rechte ;)
07/20/2011 19:58 tobi9742#13
Quote:
Originally Posted by Fr33ak View Post
Ja und eure Autos brauchen Führerscheine damit ihr fahren könnt..
Die install.php braucht Rechte und nicht die config, was du erzählst ist Mist.
Den einzigen Mist erzählst du hier gerade ... ich habs bei ihm sogar extra nochmal ausprobiert:
install.php die Rechte 777 geben -> Bringt nix
config.inc.php die Rechte 777 heben -> Huch ... es geht ja plötzlich problemlos.

Dass es manchen hier echt zu hoch ist einfach mal nachzudenken, was wird bei der Installation geändert? config.inc.php oder install.php ... und was braucht demnach die rechte damit es geändert werden kann? :facepalm:
Und das beste sind dann immer noch die Leute wie Daroo die sind für die tollsten halten und dann den größten Mist erzählen. Daroo: Einfach mal kräftig nachdenken, die config.inc.php wird nicht erstellt sondern ist vor der Installation schon erstellt :facepalm: