anpera.net
https://anpera.dyndns.org/phpbb3/

Kreaturen Editor funzt unter php5 nicht
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4558
Seite 1 von 1

Autor:  KTiger [ Fr 06 Jun, 2008 21:28 ]
Betreff des Beitrags:  Kreaturen Editor funzt unter php5 nicht

Hi,
ich wollte ein wenig an dem Editor rumarbeiten, neue Monster Level usw.
Jedoch hab ich auf dem server php 5.2.3 und habe mir LOGD EXT3 geholt und alle austehenden arbeiten für den Umbau auf PHP 5 durchgeführt.
Jetzt geht es alledings 2 Probleme. Mein Faillog geht nicht er kann $this nich redeklarieren, was mich nich stört weil das später erst gefixxt wird von mir *denke mal das rauszufinden mit entsprechendem Zeitaufwand*

Mein Kreaturen Editor geht aber nicht.
Wenn ich ein Monster Adde mit entsprechendem Level trägt er alles ein NUR nicht Name, Beschreibung der Waffe und Spruch beim verlieren.

Egal was ich versucht hab, ums ,verzeihung für den Ausruck, ich habs ums verrecken nicht hingekriegt.

Er gibt die Felder Name,Beschreibung der Waffe und verlierersatz einfach nicht aus. Hab schon zwei drei andere Probiert aber nix. Immer das gleiche Spiel.
Wenn ich zum debuggen mir die SQL Werte beim createn ausgeben lasse stehn da alle werte drin nur kein Name, Keine Waffe und kein Verlierersatz.

Hat da jemand eine idee dafür? Code is unten:



$this->bbcode_second_pass_code('', '<?php
require_once "common.php";
isnewday(2);

//select distinct creaturelevel,max(creaturehealth) as creaturehealth,max(creatureattack) as creatureattack,max(creaturedefense) as creaturedefense,max(creatureexp) as creatureexp,max(creaturegold) as creaturegold from creatures where creaturelevel<17 group by creaturelevel;
$creaturestattable="
+---------------+----------------+----------------+-----------------+-------------+--------------+
| creaturelevel | creaturehealth | creatureattack | creaturedefense | creatureexp | creaturegold |
+---------------+----------------+----------------+-----------------+-------------+--------------+
| 1 | 10 | 1 | 1 | 14 | 36 |
| 2 | 21 | 3 | 3 | 24 | 97 |
| 3 | 32 | 5 | 4 | 34 | 148 |
| 4 | 43 | 7 | 6 | 45 | 162 |
| 5 | 53 | 9 | 7 | 55 | 198 |
| 6 | 64 | 11 | 8 | 66 | 234 |
| 7 | 74 | 13 | 10 | 77 | 268 |
| 8 | 84 | 15 | 11 | 89 | 302 |
| 9 | 94 | 17 | 13 | 101 | 336 |
| 10 | 105 | 19 | 14 | 114 | 369 |
| 11 | 115 | 21 | 15 | 127 | 402 |
| 12 | 125 | 23 | 17 | 141 | 435 |
| 13 | 135 | 25 | 18 | 156 | 467 |
| 14 | 145 | 27 | 20 | 172 | 499 |
| 15 | 155 | 29 | 21 | 189 | 531 |
| 16 | 166 | 31 | 22 | 207 | 563 |
+---------------+----------------+----------------+-----------------+-------------+--------------+
";
$creaturestats=Array();
$creaturestattable=split("\n",$creaturestattable);
$x=0;
while (list($key,$val)=each($creaturestattable)){
if (strpos($val,"|")!==false){
//echo("$val`n");
$x++;
$a = split("\\|",$val);
if ($x==1){
$stats=array();
while (list($key1,$val1)=each($a)){
if (trim($val1)>"") {
$stats[$key1]=trim($val1);
//output($val1." is col $key1`n");
}
}
}else{
reset($stats);
while (list($key1,$val1)=each($stats)){
$creaturestats[(int)$a[1]][$val1]=trim($a[$key1]);
//output ("[".(int)$a[1]."][$val1]=".trim($a[$key1])."`n");
}
}
}
}

page_header("Creature Editor");

if ($session[user][superuser] >= 2){
addnav("G?Zurück zur Grotte","superuser.php");
addnav("W?Zurück zum Weltlichen","village.php");
if ($_POST[save]<>""){
if (!isset($_POST['location'])) $_POST['location']=0;
if ($_POST[id]!=""){
$sql="UPDATE creatures SET ";
//unset($_POST[save]);
while (list($key,$val)=each($_POST)){
if (substr($key,0,8)=="creature") $sql.="$key = \"$val\", ";
}
reset($creaturestats[(int)$_POST[creaturelevel]]);
while (list($key,$val)=each($creaturestats[$_POST[creaturelevel]])){
if ( $key!="creaturelevel" && substr($key,0,8)=="creature"){
$sql.="$key = \"".addslashes($val)."\", ";
}
}
$sql.=" location=\"".(int)($_POST['location'])."\", ";
//$sql = substr($sql,0,strlen($sql)-2);
$sql.= " createdby=\"".addslashes($session[user][login])."\" ";
$sql.= " WHERE creatureid='$_POST[id]'";
//output($sql);
db_query($sql) or output("`\$".db_error(LINK)."`0`n`#$sql`0`n");
output(db_affected_rows()." ".(db_affected_rows()==1?"Eintrag":"Einträge")." geändert.");
}else{
$cols = array();
$vals = array();

while (list($key,$val)=each($_POST)){
if (substr($key,0,8)=="creature" || $key=="location") {
array_push($cols,$key);
array_push($vals,$val);
//$sql.="$key = \"$val\", ";
}
}
reset($creaturestats[(int)$_POST[creaturelevel]]);
while (list($key,$val)=each($creaturestats[$_POST[creaturelevel]])){
if ($key!="creaturelevel"){
//$sql.="$key = \"".addslashes($val)."\", ";
array_push($cols,$key);
array_push($vals,$val);
}
}
$sql="INSERT INTO creatures (".join(",",$cols).",createdby) VALUES (\"".join("\",\"",$vals)."\",\"".addslashes($session['user']['login'])."\")";
//echo $sql;
db_query($sql);
}
}
if ($_GET[op]=="del"){
$sql = "DELETE FROM creatures WHERE creatureid = \"$_GET[id]\"";
db_query($sql);
if (db_affected_rows()>0){
output("Kreatur gelöscht`n`n");
}else{
output("Kreatur nicht gelöscht: ".db_error(LINK));
}
$_GET[op]="";
}
if ($_GET[op]==""){
$sql = "SELECT * FROM creatures ORDER BY creaturelevel,creaturename";
$result = db_query($sql) or die(db_error(LINK));
addnav("Eine Kreatur hinzufügen","creatures.php?op=add");
output("<table><tr><td>Ops</td><td>Kreaturname</td><td>Level</td><td>Waffe</td><td>Nachricht beim Tod</td><td>Autor</td></tr>",true);
addnav("","creatures.php");
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
if ($row[creaturelevel]==17 || $row[creaturelevel]==18){
output("<tr><td> [Edit|Del] </td><td>",true);
}else{
output("<tr><td> [<a href='creatures.php?op=edit&id=$row[creatureid]'>Edit</a>|".
"<a href='creatures.php?op=del&id=$row[creatureid]' onClick='return confirm(\"Bist du dir sicher, dass du diese Kreatur löschen willst?\");'>Del</a>] </td><td>",true);
addnav("","creatures.php?op=edit&id=$row[creatureid]");
addnav("","creatures.php?op=del&id=$row[creatureid]");
}
output($row[creaturename]);
output("</td><td>",true);
output($row[creaturelevel]);
output("</td><td>",true);
output($row[creatureweapon]);
output("</td><td>",true);
output($row[creaturelose]);
output("</td><td>",true);
output($row[createdby]);
output("</td></tr>",true);
}
output("</table>",true);
}else{
if ($_GET[op]=="edit" || $_GET[op]=="add"){
if ($_GET[op]=="edit"){
$sql = "SELECT * FROM creatures WHERE creatureid=$_GET[id]";
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)<>1){
output("`4Fehler`0, diese Kreatur wurde nicht gefunden!");
}else{
$row = db_fetch_assoc($result);
}
}
output("<form action='creatures.php' method='POST'>",true);
output("<input name='id' value=\"".HTMLEntities($_GET[id])."\" type='hidden'>",true);
output("<table border='0' cellpadding='2' cellspacing='0'>",true);
output("<tr><td>Kreaturname:</td><td><input name='creaturename' maxlength='50' value=\"".HTMLEntities($row[creaturename])."\"></td></tr>",true);
output("<tr><td>Waffe: </td><td><input name='creatureweapon' maxlength='50' value=\"".HTMLEntities($row[creatureweapon])."\"></td></tr>",true);
output("<tr><td colspan='2'>Nachricht beim Tod: <br><input name='creaturelose' size='65' maxlength='120' value=\"".HTMLEntities($row[creaturelose])."\"></td></tr>",true);
output("<tr><td>Level: </td><td><select name='creaturelevel'>",true);
for ($i=1;$i<=16;$i++){
output("<option value='$i'".($row[creaturelevel]==$i?" selected":"").">$i</option>\n",true);
}
output("</select></td></tr>",true);
output("<tr><td>Kreatur ist auch auf dem Friedhof</td><td><input type='radio' name='location' value='1'".($row['location']==1?" checked":"").">Ja <input type='radio' name='location' value='0'".($row['location']==0?" checked":"").">Nein </td></tr>",true);
output("<tr><td colspan='2'><input type='hidden' name='save' value='Save'><input type='submit' class='button' name='submit' value='Speichern'></td></tr>",true);
output("</table>",true);
output("</form>",true);
addnav("","creatures.php");
}else{

}
addnav("Zurück zum Monster-Editor","creatures.php");
}
}else{
output("Weil du versucht hast die Götter zu betrügen, wurdest du niedergeschmettert!");
addnews("`&".$session[user][name]." wurde für den Versuch, die Götter zu betrügen, niedergeschmettert (hat versucht die Superuser-Seiten zu hacken).");
$session[user][hitpoints]=0;
}
page_footer();
?>')

Autor:  Eichi [ Sa 07 Jun, 2008 00:19 ]
Betreff des Beitrags:  Re: Kreaturen Editor funzt unter php5 nicht

Zu dem $this-Problem -> $this ist ab PHP5 eine reservierte Variable, also verboten, außer im Gebrauch in Objekten wie Klassen und so..
Also, einfach Variable $this durch $that oder sowas ersetzen, dann sollte es gehen..

Zu dem anderen Problem, kann ich grad nicht ganz nachvollziehen, kannst du vielleicht mal SQL-Ausgabe oder Fehler und so posten, klar, er trägt das nich ein, aber vielleicht kann mans noch etwas genauer eigen, versteh ich grad nich so ganz, sorry..

LG, Eichi

Autor:  KTiger [ Sa 07 Jun, 2008 11:31 ]
Betreff des Beitrags:  Re: Kreaturen Editor funzt unter php5 nicht

INSERT INTO creatures_f (creaturehealth,creatureattack,creaturedefense,creatureexp,creaturegold,createdby) VALUES ("10","1","1","14","36","ADMIN")

Beim erstellen einer Kreatur gibt er mir beim output $sql bzw echo, komischerweise geht mal echo mal output aber irgendwie nich durchgängig. Naja das is nich das problem.

Also ich geh auf erstellen tippe Name,Waffe, Satz beim Verlieren ein.
Er wählt mir den Lvel, die exp, gold usw aus und trägt diese ein, aber leider verweigert er die eintragung der Namen,Beschreibungen und des Satzes. Hab auch eben Festgestellt das ich den Knopf kreatur erscheint auch auf friedhof nur beim edit auf ja stellen kann nicht aber beim erstellen.
Im Edit kann ich name,Beschreibung und Satz nicht ändern nur Ob Friedhof und level.

Es erscheint mir wie verhext.
MfG

P.s.
Danke für das This werd ich gleich mal testen^^ (EDIT: hat geklappt^^)

Autor:  Eichi [ Mo 09 Jun, 2008 21:45 ]
Betreff des Beitrags:  Re: Kreaturen Editor funzt unter php5 nicht

Schau mal ob das Formular die Werte richtig an die Funktion übergibt/postet, wie auch immer, zumindest fehlen sie in der SQL, muss also während des postens passieren der Fehler da die SQL danach dynamisch zusammengebastelt wird..

(Vielleicht fehlt noch irgendwo das ändern von $HTTP_POST_VARS in $_POST)

Und nun glaub nicht wir helfen dir, wenn du PNs rumschickst um den Thread zu pushen, ob mit PN oder hier als Post, schneller und besser werden wir dadurch auch nicht antworten können :zack:

LG, Eichi

PS.: Übe dich bitte in Geduld, wenn wir was wissen antworten wir schon...

Autor:  KTiger [ Mo 09 Jun, 2008 21:59 ]
Betreff des Beitrags:  Re: Kreaturen Editor funzt unter php5 nicht

$HTTP_POST_VARS existiert in meinen php dateien nicht mehr. Das hab ich alles brav durchgelesen und ersetzt durch $_POST.

Du klangst im Post ein wenig ratlos und hast auf mich den Eindruck gemacht das dir spontan keine Ideen auf anhieb eingefallen sind.
Ich wollte nur höflich fragen ob dir eine Idee gekommen ist, und bevor ich in den Thread reinschreibe Push hab ich es als sinnvoller erachtet dich einfach so zu fragen.
ich wollte dir damit weder auf die Nerven gehen noch quengeln, nur höflich nachfragen :cry: .

B2Topic:
Also er schiebt die Variablen nicht in die DB. Ich hab auch mal probehalber einiges getestet aber nichts half.

MfG

Autor:  KTiger [ Mi 18 Jun, 2008 09:54 ]
Betreff des Beitrags:  Re: Kreaturen Editor funzt unter php5 nicht

gelöst es fehlten ein paar
PHP:
$_POST


Thread kann gelöscht werden

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/