zuerst möchte ich erwähnen, dass ich gerade erst in das Thema Apache Server und XAMPP eingestiegen bin und das hier warscheinelich eine Ziemlicher Anfänger Thread ist. Deswegen möchte ich mich jetzt schon einmal für eventuelle "N00b" Fragen entschuldinge.
Und nun: zu meinem Problem.
Ich beschäftige mich gerade mit dem Thema Browsergames und wollte mir mal das Open Source Browsergame http://zwischenwelt.org/ ansehen und eine Lokale Version mittels XAMP auf meinem PC instalieren
eigentlich bin ich der meinung das ich alle Punkte, die in der Instelationshilfe -> http://209.85.129.132/search?q=cache:Kj_o3AXmfFIJ:zwischenwelt.milchkind.net/zwwiki/index.php/Installation+zwischenwelt+xxamp&cd=1&hl=de&ct=clnk&gl=de&client=opera stehen, abgearbeitet habe. Dennoch funktioniert hier gerade überhauptnichts
meine defines.mysql sieht folgendermaßen aus
- Code: Select all
<?php
define("MYSQL_HOST","localhost");
define("MYSQL_USER","root");
define("MYSQL_PASS","metallica1");
define("MYSQL_DB","zw");
define("BASEPATH","/some/where/zw/"); // under windoze something like "C:\\some\\where\\zw\\"
define("PHP_ERROR_LOG_MAIL","admin@localhost");
define("kGfxServerPath","http://localhost/gfx/");
define("kStyleServerPath","http://localhost/");
define("kMapCodePass","");
define("PAGELAYOUT",1);
define("BASEURL","http://localhost/");
define("ZW_MAIL_SENDER","zwischenwelt@localhost"); // anmelde und passwort vergessen mails haben diese addy als absender
define("ZW_NEWREGISTRATION_NOTIFY",false); // wenn das hier auf nicht false gesetzt wird, wird an diese mail adresse eine nachricht geschickt, wenn sich ein neuer spieler anmeldet
// define("ZW_NEWREGISTRATION_NOTIFY",ZW_MAIL_SENDER);
// wenn showlink true ist, dann wird der bestätigungslink für die anmeldung direkt angezeigt.
// wenn man fertig mit debuggen und testen ist, sollte man dies auf false stellen.
define("ZW_NEWREGISTRATION_SHOWLINK",true);
?>
das zw verzwichniss liegt bei mir unter C:\xampp\htdocs\zw und die sql datenbank habe ich zw genannt und auch mittels phpmyadmin importiert. Apache und Mysql habe ich auch in der XAMPP Control Panel gestartet.
zuerst habe ich die sql/db.sql ohne probleme importiert und dann die sql/update-6to7.sql doch dort erschien der fehler
- Code: Select all
Fehler
SQL-Befehl:
ALTER TABLE `buildingtype` ADD `maxgfxlevel` INT UNSIGNED DEFAULT '1' NOT NULL ,
ADD `maxrandcenter` INT UNSIGNED DEFAULT '0' NOT NULL ,
ADD `maxrandborder` INT UNSIGNED DEFAULT '0' NOT NULL ;
MySQL meldet:
#1060 - Duplicate column name 'maxgfxlevel'
und wenn ich nun die 3 Befehle in die Kommandozeile eingebe erscheinen Folgende Fehlermeldungen
bei
mysql --execute="create database zw;
- Code: Select all
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql --execute="create database zw' at line 1
bei
mysql zw < db.sql
- Code: Select all
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql zw < db.sql' at line 1
und bei
mysql zw < update-6to7.sql
- Code: Select all
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql zw < update-6to7.sql' at line 1
wenn ich nun die setup.php starte, steht folgendes drinne
- Code: Select all
<?php
require("lib.setup.php");
CheckStart();
CheckRequired("FileExists","Configfile 'defines.mysql.php' exists",array("name"=>"defines.mysql.php"));
include("defines.mysql.php");
CheckRequired("FileExists","BASEPATH '".BASEPATH."' exists",array("name"=>BASEPATH));
CheckRequired("FileExists","with an tmp directory",array("name"=>BASEPATH."/tmp"));
CheckRequired("Writeable","that is writeable",array("name"=>BASEPATH."/tmp"));
CheckRequired("EregMatch","BASEPATH with trailing /",array("subject"=>BASEPATH,"pattern"=>'^.+(/|\\\\)$'));
CheckRequired("EregNotMatch","BASEPATH is not an url",array("subject"=>BASEPATH,"pattern"=>CHECK_PATTERN_HTTP));
CheckRequired("EregMatch","kGfxServerPath is an url",array("subject"=>kGfxServerPath,"pattern"=>CHECK_PATTERN_HTTP));
CheckRequired("EregMatch","kStyleServerPath is an url",array("subject"=>kStyleServerPath,"pattern"=>CHECK_PATTERN_HTTP));
CheckRequired("EregMatch","BASEURL is an url",array("subject"=>BASEURL,"pattern"=>'^http://.+$'));
CheckOptional("FileExists","sql error logfile exists",array("name"=>BASEPATH."/sqlerror.log"));
CheckOptional("Writeable","and is writeable",array("name"=>BASEPATH."/sqlerror.log"));
CheckRequired("MysqlAccess","mysql access",array("host"=>MYSQL_HOST,"user"=>MYSQL_USER,"pass"=>MYSQL_PASS));
CheckRequired("MysqlExistsDB","mysql db '".MYSQL_DB."' exists",array("host"=>MYSQL_HOST,"user"=>MYSQL_USER,"pass"=>MYSQL_PASS,"db"=>MYSQL_DB));
CheckRequired("MysqlValidQuery","mysql table 'user' exists",array("host"=>MYSQL_HOST,"user"=>MYSQL_USER,"pass"=>MYSQL_PASS,"db"=>MYSQL_DB,"query"=>"SELECT * FROM `user` LIMIT 1"));
CheckRequired("FunctionExists","function existance check for testing purpose",array("name"=>"system"));
CheckOptional("CmdExists","gnuplot",array("name"=>"gnuplot --version"));
CheckOptional("CmdExists","imagemagick",array("name"=>"convert -version"));
CheckStop();
?>
vielleicht gibt das ja aufschluss über den fehler
wenn ich nun die index.php starte steht im oberen teil
- Code: Select all
Bitte den Installationsanweisungen in der Datei INSTALL folgen,
und eine Kopie von defines.mysql.php.dist names defines.mysql.php anlegen.
Dort müssen dann die Zugansdaten und Pfade eingetragen werden.
Wegen eines LIVE-UPDATES ist ein Login derzeit leider nicht möglich,
wir versuchen die Arbeiten so schnell wie möglich abzuschliessen
vielen Dank für euer Verständnis
das zwischenwelt-team
und ein paar zeilen tiefer
- Code: Select all
ChangeLog
"; } $i = 0; foreach($l as $d=>$t){++$i; ?>
5)break;} ?>
ausserdem steht in der anmelden php
- Code: Select all
Anmeldung
= 6 && $f_pass1 == $f_pass2) { if(isset($f_name)) { $f_name = addslashes(trim($f_name)); if(ereg('^[a-zA-Z][a-zA-Z0-9 \.-]+$',$f_name) === FALSE)$errstr .= "Der Name enthält ungüml;ltige Zeichen. Namen müssen mit Buchstaben beginnen und bestehen nahezu nur aus Buchstaben.
"; } else $errstr .= 'Bitte einen Loginnamen angeben.
'; if(strpos($f_mail,'@') && strpos($f_mail,'.')) $f_mail = addslashes($f_mail); else $errstr .= 'Bitte eine gütige E-Mailadresse angeben.
'; $f_from = addslashes($f_from); $f_text = addslashes($f_text); // TODO : unhardcode passlen if((strlen($f_pass1) >= 6) && ($f_pass1 == $f_pass2)) $f_pass = $f_pass1; else $errstr .= 'Das Passwort muss mindestens 6 Zeichen lang sein und im Bestätigungsfeld wiederholt werden.
'; if ($errstr == '' && $spam == false) { $r = sql("SELECT `id` FROM `user` WHERE `name`='$f_name' OR `mail`='$f_mail'"); if(mysql_num_rows($r)) { echo "
Sorry, den Usernamen oder die Mailadresse gibt es leider schon.
"; } else { $r = sql("SELECT `name` FROM `pending` WHERE `name`='$f_name' OR `mail`='$f_mail'"); if(mysql_num_rows($r)) { echo "
Sorry, unter dem Usernamen oder der Mailadresse hat sich schon jemand angemeldet.
"; } else { $time = time(); $ip = $_SERVER["REMOTE_ADDR"]; $key = md5("INSERT INTO `pending` SET `time`=$time,`ip`='$ip',`mail`='$f_mail',`name`='$f_name',`pass`='$f_pass',`key`='$key',`from`='$f_from',`text`='$f_text'"); $newpending = false; $newpending->ip = $ip; $newpending->key = $key; $newpending->time = $time; $newpending->mail = $f_mail; $newpending->name = $f_name; $newpending->from = $f_from; $newpending->text = $f_text; sql("INSERT INTO `pending` SET ".obj2sql($newpending)." , `pass`=PASSWORD('".addslashes($f_pass)."')"); mail($f_mail, "Zwischenwelt Registratur", "Um den Account freizuschalten bitte folgenden Link aufrufen: ".BASEURL."anmelden.php?key=$key","From: ".ZW_MAIL_SENDER."\r\nReply-To: ".ZW_MAIL_SENDER."\r\nX-Mailer: PHP/" . phpversion()); if (ZW_NEWREGISTRATION_NOTIFY) mail(ZW_NEWREGISTRATION_NOTIFY,"neue Anmeldung","name=$f_name\nmail=$f_mail\nfrom=$f_from\ntext=$f_text","From: ".ZW_MAIL_SENDER."\r\nReply-To: ".ZW_MAIL_SENDER."\r\nX-Mailer: PHP/" . phpversion()); echo '
Es hat geklappt, sie haben Post :).
Manchmal kann es mit dem Mails etwas dauern, also keine Panik.
'; if(ZW_NEWREGISTRATION_SHOWLINK){ echo '
Um den Account freizuschalten, hier klicken.
'; } include("footer.php"); exit; } } } else echo '
Es sind Fehler aufgetreten:
'.$errstr.'
'; } else if(isset($f_key)) { $f_key = addslashes($f_key); $r = sql("SELECT * FROM `pending` WHERE `key`='$f_key' LIMIT 1"); if($row = mysql_fetch_array($r)) { $sr = $gGlobal["store"]; $newuser = false; $newuser->max_lumber = $sr; $newuser->lumber = $sr; $newuser->max_stone = $sr; $newuser->stone = $sr; $newuser->max_food = $sr; $newuser->food = $sr; $newuser->max_metal = $sr; $newuser->metal = $sr; $newuser->color = sprintf("#%02X%02X%02X",rand(0,255),rand(0,255),rand(0,255)); $newuser->name = $row["name"]; $newuser->pass = $row["pass"]; // already encrypted in pending $newuser->mail = $row["mail"]; $newuser->registered = time(); $newuser->guild = kGuild_Weltbank; // weltbankgild //fud forum user import hack $u = $newuser; /* $fu = sqlgetobject("SELECT * FROM `fudforum`.`fud26_users` WHERE `login` like '".addslashes($u->name)."' OR `email` like '".addslashes($u->mail)."'"); if(!$fu){ $fu = null; $fu->login = $u->name; $fu->alias = $fu->login; $fu->email = $u->mail; $fu->join_date = ($u->registered>0?$u->registered:time()); $fu->time_zone = "Europe/Berlin"; $fu->passwd = $u->pass; $fu->name = $fu->login; $fu->users_opt = 4357111; // todo : unhardcode sql("INSERT INTO `fudforum`.`fud26_users` SET ".obj2sql($fu)); }*/ $newuser->guildstatus = sqlgetone("SELECT `stdstatus` FROM `guild` WHERE `id`=".intval(kGuild_Weltbank)); sql("INSERT INTO `user` SET ".obj2sql($newuser)); $newuserid = mysql_insert_id(); //set a hq at a random position list($x,$y) = FindRandomStartplace(); $o = null; $o->user = $newuserid; $o->type = 1; $o->hp = 5000; $o->x = $x; $o->y = $y; sql("INSERT INTO `building` SET ".obj2sql($o)); sql("DELETE FROM `pending` WHERE `key`='$f_key'"); echo "
Alles ok, der Account ist nun freigeschaltet. Sie können sich nun einloggen.
"; include("footer.php"); exit; /* addDirectory($newuserid,"root",0); $id = sqlgetone("SELECT id from message where `subject` = 'root' AND `unread` = '-1' AND `from` = '".$newuserid."' "); addDirectory($newuserid,"SEND",$id); */ createFolder("Eingang",0,$newuserid,kFolderTypeRoot); createFolder("Ausgang",0,$newuserid,kFolderTypeSent); createFolder("Berichte",0,$newuserid,kFolderTypeExtra); /*$text="So meine lieben Kinder,
Ihr seid nun alle in dieser grossen Gilde gelandet, da ihr alle noch recht klein seid.........
Gut... das war alles an Informationen die ich für Wichtig halte.
Ich sag jetzt schonmal danke für jede Hilfe
und entschuldingung für alle geraubten nerven
Gruß
Kevin