anpera.net
http://anpera.homeip.net/phpbb3/

RPG Orte
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=3328
Seite 8 von 9

Autor:  Kurze [ Mi 29 Apr, 2009 12:25 ]
Betreff des Beitrags:  Re: RPG Orte

und wie vergleicht man zeilen?

Autor:  Liath [ Mi 29 Apr, 2009 12:35 ]
Betreff des Beitrags:  Re: RPG Orte

hmm... ich mach das meistens mit lesen ;)

wenn du $sql = "DELETE FROM accounts WHERE acctid IN ($delaccts)"; nicht finden kannst... suche nach $delaccts und schaue in den funden ob die gesuchte zeile in den ergebnissen vorkommt

Autor:  Rikkarda [ Mi 29 Apr, 2009 12:44 ]
Betreff des Beitrags:  Re: RPG Orte

Liath hat geschrieben:
es kann sein das in deiner version zB singlequotes ' ' und doublequotes " " getauscht wurden oder der syntax irgendwie anders abgeändert wurde... in dem fall such einfach mal nur nach $delaccts und vergleich die zeilen


er hat $delaccts nicht, das hättest du gesehen, wenn du einen Blick in seinen Source geworfen hättest.. Die Löschroutine von ihm ist anders.

@Kurze:
Du kannst den einzufügenden Part nicht so übernehmen, wie er ihn vorgegeben hat, ohne deine Löschroutine zu ändern. Dies betrifft den Part unter

$this->bbcode_second_pass_code('', '$old+=5;')

Da das, was ich nun poste ungetestet ist, geschiet die Übernahme auf eigene Verantwortung, daher empfehle ich dir vorher ein Backup der setnewday.php UND deiner Datenbank zu machen, die du dir auf deiner Festplatte zwischenspeicherst, und wieder einspielst, wenn meine Änderung zickt.

Wenn du das Backup gemacht hast, dann ändere diesen Part:

$this->bbcode_second_pass_code('', '$old+=5;
$sql = "DELETE FROM accounts WHERE superuser<=1 AND (1=0\n"
.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$old days"))."\")\n":"")
.($new>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$new days"))."\" AND level=1 AND dragonkills=0)\n":"")
.($trash>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-".($trash+1)." days"))."\" AND level=1 AND experience < 10 AND dragonkills=0)\n":"")
.")";
//echo "<pre>".HTMLEntities($sql)."</pre>";
db_query($sql) or die(db_error(LINK));
// end cleanup')


in dies ab:

$this->bbcode_second_pass_code('', '$old+=5;
$delaccts = '0';
$sql = "DELETE FROM accounts WHERE superuser<=1 AND (1=0\n"
.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$old days"))."\")\n":"")
.($new>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$new days"))."\" AND level=1 AND dragonkills=0)\n":"")
.($trash>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-".($trash+1)." days"))."\" AND level=1 AND experience < 10 AND dragonkills=0)\n":"")
.")";
//echo "<pre>".HTMLEntities($sql)."</pre>";
$result = db_query($sql);
while ($row = db_fetch_assoc($result)) {
$delaccts .= ','.$row['acctid'];
if ($row['acctid']==getsetting("hasegg",0)) savesetting("hasegg","0");
}
$sql = "DELETE FROM accounts WHERE acctid IN ($delaccts)";
db_query($sql) or die(db_error(LINK));
$sql = 'DELETE FORM `rporte` WHERE acctid IN ('.$delaccts.')';
db_query($sql) or die (db_error(LINK));
// end cleanup')


Ist wie gesagt völlig ungetestet, weil meine Löschroutine gänzlich anders ist als deine, daher NICHTS machen ohne dir vorher ein Backup der DATEI UND der Datenbank gemacht zu haben, damit du notfalls es rückgängig machen kannst.
Da du nur 19 Accounts hast wird das dann nicht allzuviel Aufwand sein.

Alternativ kannst du auch einfach die löschroutine der RP Orte ändern ,und diese oben mit den Häusern zusammen löschen:


suche:

$this->bbcode_second_pass_code('', '$sql = "UPDATE items SET owner=0 WHERE owner=$row[acctid]";
db_query($sql);')

füge darunter ein:


$this->bbcode_second_pass_code('', '$sql = 'DELETE FORM `rporte` WHERE acctid =$row[acctid]";
db_query($sql);')

der Nachteil an 2. ist halt, dass die Orte bereits gelöscht werden, wenn die Häuser enteignet werden (normal 3 Tage vor dem entgültigem löschen)

da du jedoch, wie du selber sagst absolut keine Ahnung hast würde ich wohl zuerst einmal die 2. Möglichkeit nehmen, und mich dann mit php auseinandersetzen.


Zeilen vergleichen bedeutet hier zb. du musst deine Datei lesen + verstehen im Sinne von "diese Zeile macht dieses und die nächste Zeile macht das. Da ich XY gelöscht haben will muss ich also Zeilen suchen, die auch bereits AB löschen.


Ist für Anfänger oft nicht einfach, aber wer sich dahinterklemmt kommt auch voran.

und ganz wichtig:

VOR JEDER ÄNDERUNG:

eine Kopie der betroffenen Datein auf deiner Festplatte speichern sowie die Datenbank auf die Festplatte sichern, denn es gibt nichts ärgerliches, als fehlerhaften Code den man dann nicht rückgängig machen kann, ohne zu schaden.


lg

Autor:  Dinarius [ Mi 29 Apr, 2009 12:49 ]
Betreff des Beitrags:  Re: RPG Orte

Liath hat geschrieben:
hmm... ich mach das meistens mit lesen ;)

wenn du $sql = "DELETE FROM accounts WHERE acctid IN ($delaccts)"; nicht finden kannst... suche nach $delaccts und schaue in den funden ob die gesuchte zeile in den ergebnissen vorkommt


:?

warum glaub ich das nur nicht wirklich? :nene:

Wenn mich nicht alles täuscht, dann kommt $delaccts von der einbau anleitung für den Friedhof von Gregor_Samsa
Wenn der noch nicht eingbaut wurde. Erklärt es sich das es nicht inner setnewday vorhanden ist ;)

@Kurze verklinke bitte auch die setnewday, und nicht die superuser :)

Autor:  Liath [ Mi 29 Apr, 2009 12:53 ]
Betreff des Beitrags:  Re: RPG Orte

Dinarius hat geschrieben:
warum glaub ich das nur nicht wirklich? :nene:


das bezog sich auch auf die frage wie man zeilen vergleicht :?

Autor:  Kurze [ Mi 29 Apr, 2009 12:58 ]
Betreff des Beitrags:  Re: RPG Orte

Rikkarda hat geschrieben:
Liath hat geschrieben:
es kann sein das in deiner version zB singlequotes ' ' und doublequotes " " getauscht wurden oder der syntax irgendwie anders abgeändert wurde... in dem fall such einfach mal nur nach $delaccts und vergleich die zeilen


er hat $delaccts nicht, das hättest du gesehen, wenn du einen Blick in seinen Source geworfen hättest.. Die Löschroutine von ihm ist anders.

@Kurze:
Du kannst den einzufügenden Part nicht so übernehmen, wie er ihn vorgegeben hat, ohne deine Löschroutine zu ändern. Dies betrifft den Part unter

$this->bbcode_second_pass_code('', '$old+=5;')

Da das, was ich nun poste ungetestet ist, geschiet die Übernahme auf eigene Verantwortung, daher empfehle ich dir vorher ein Backup der setnewday.php UND deiner Datenbank zu machen, die du dir auf deiner Festplatte zwischenspeicherst, und wieder einspielst, wenn meine Änderung zickt.

Wenn du das Backup gemacht hast, dann ändere diesen Part:

$this->bbcode_second_pass_code('', '$old+=5;
$sql = "DELETE FROM accounts WHERE superuser<=1 AND (1=0\n"
.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$old days"))."\")\n":"")
.($new>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$new days"))."\" AND level=1 AND dragonkills=0)\n":"")
.($trash>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-".($trash+1)." days"))."\" AND level=1 AND experience < 10 AND dragonkills=0)\n":"")
.")";
//echo "<pre>".HTMLEntities($sql)."</pre>";
db_query($sql) or die(db_error(LINK));
// end cleanup')


in dies ab:

$this->bbcode_second_pass_code('', '$old+=5;
$delaccts = '0';
$sql = "DELETE FROM accounts WHERE superuser<=1 AND (1=0\n"
.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$old days"))."\")\n":"")
.($new>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$new days"))."\" AND level=1 AND dragonkills=0)\n":"")
.($trash>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-".($trash+1)." days"))."\" AND level=1 AND experience < 10 AND dragonkills=0)\n":"")
.")";
//echo "<pre>".HTMLEntities($sql)."</pre>";
$result = db_query($sql);
while ($row = db_fetch_assoc($result)) {
$delaccts .= ','.$row['acctid'];
if ($row['acctid']==getsetting("hasegg",0)) savesetting("hasegg","0");
}
$sql = "DELETE FROM accounts WHERE acctid IN ($delaccts)";
db_query($sql) or die(db_error(LINK));
$sql = 'DELETE FORM `rporte` WHERE acctid IN ('.$delaccts.')';
db_query($sql) or die (db_error(LINK));
// end cleanup')


Ist wie gesagt völlig ungetestet, weil meine Löschroutine gänzlich anders ist als deine, daher NICHTS machen ohne dir vorher ein Backup der DATEI UND der Datenbank gemacht zu haben, damit du notfalls es rückgängig machen kannst.
Da du nur 19 Accounts hast wird das dann nicht allzuviel Aufwand sein.

Alternativ kannst du auch einfach die löschroutine der RP Orte ändern ,und diese oben mit den Häusern zusammen löschen:


suche:

$this->bbcode_second_pass_code('', '$sql = "UPDATE items SET owner=0 WHERE owner=$row[acctid]";
db_query($sql);')

füge darunter ein:


$this->bbcode_second_pass_code('', '$sql = 'DELETE FORM `rporte` WHERE acctid =$row[acctid]";
db_query($sql);')

der Nachteil an 2. ist halt, dass die Orte bereits gelöscht werden, wenn die Häuser enteignet werden (normal 3 Tage vor dem entgültigem löschen)

da du jedoch, wie du selber sagst absolut keine Ahnung hast würde ich wohl zuerst einmal die 2. Möglichkeit nehmen, und mich dann mit php auseinandersetzen.


Zeilen vergleichen bedeutet hier zb. du musst deine Datei lesen + verstehen im Sinne von "diese Zeile macht dieses und die nächste Zeile macht das. Da ich XY gelöscht haben will muss ich also Zeilen suchen, die auch bereits AB löschen.


Ist für Anfänger oft nicht einfach, aber wer sich dahinterklemmt kommt auch voran.

und ganz wichtig:

VOR JEDER ÄNDERUNG:

eine Kopie der betroffenen Datein auf deiner Festplatte speichern sowie die Datenbank auf die Festplatte sichern, denn es gibt nichts ärgerliches, als fehlerhaften Code den man dann nicht rückgängig machen kann, ohne zu schaden.


lg

Ich schau mal das ich das hin bekomme melde mich dann wieder dnake erstmal , das dauert etwas als Legesteniker, hoffe das passt mit der anderen anleitung zusamme

@Liath ich meinte ja schon ich bin Legesteniker und habe net viel ahnung von PHP
Ich bin nur jemand mit einem Traum

Autor:  Dinarius [ Mi 29 Apr, 2009 13:01 ]
Betreff des Beitrags:  Re: RPG Orte

[...]Enfernt hat ja schon jemadn zusammen geschnipselt[...] :)

[ot] wollte ansich nicht weiter drauf reagieren ... aber nagut.
Liath hat geschrieben:
Dinarius hat geschrieben:
warum glaub ich das nur nicht wirklich? :nene:


das bezog sich auch auf die frage wie man zeilen vergleicht :?

Viele versuchen hier jemanden zu helfen und machen auch was (siehe Rikkarka) .... ansich sollte dem Helfer schon auffallen, das die falsche PHP verlinkt wurde. Sowas kann, aber sollte nicht vorkommen. Sowas aber nicht mitzuschneiden und dann mit so einem Satz um die Ecke kommen find ich schon ziemlich peinlich.
[/ot]

Danke Rikka, war auch grad dabei das zusammen zu schnibseln. Und kannst mir ja nun schenken. :)

Autor:  Liath [ Mi 29 Apr, 2009 13:12 ]
Betreff des Beitrags:  Re: RPG Orte

Dinarius hat geschrieben:
Sowas aber nicht mitzuschneiden und dann mit so einem Satz um die Ecke kommen find ich schon ziemlich peinlich.


Ääähm... entschuldige wenn ich in anderen Foren in meiner Jahrelangen Supportarbeit gelernt habe nicht jedem sofort alles auf dem Silbertablett zu servieren. Das mit dem falschen Link im Source ist mir zwar jetzt wirklich nicht aufgefallen, aber ich bin auch garnicht näher auf die Dateien eingegangen, sondern wollte einen Hinweis geben wie man evtl. selber zu der Lösung kommen kann... weil man dadurch erfahrungsgemäss viel besser lernt, als wenn man direkt alles vorgekaut bekommt. Gerade wenn man eine bestimmte Zeile in einer Einbauanleitung nicht findet...

Ich bin und bleibe der Meinung das man nicht direkt jeden Codeschnippsel fertig präsentiert kriegen muss, sondern sich selber auf die Ursache machen sollte... gerade wenn man so etwas wie ein eigenes Spiel betreiben will...

Mein Post war in keinster Weise irgendwie abwertend oder böse gemeint, nur fühl ich mich von Dir gerad irgendwie leicht angegriffen. Ich möchte nicht wissen was Du schon für peinliche Fragen oder Anworten hier gegeben hast...

und hier wars das dann auch meinerseits....

Autor:  Kurze [ Mi 29 Apr, 2009 13:25 ]
Betreff des Beitrags:  Re: RPG Orte

bitte ich wollte keinen streit verursachen

Autor:  Rikkarda [ Mi 29 Apr, 2009 13:32 ]
Betreff des Beitrags:  Re: RPG Orte

Kurze hat geschrieben:
bitte ich wollte keinen streit verursachen


das hast du auch nicht. Hier zicken wir uns öfter mal an, einfach drüberweglesen +g :D

Autor:  Liath [ Mi 29 Apr, 2009 13:41 ]
Betreff des Beitrags:  Re: RPG Orte

und da wir vernünftige Menschen sind klären wir das über PN und gut ist...

also nochmal ohne irgendjemanden angreifen zu wollen...
solltest Du in irgendeiner Einbauanleitung mal eine bestimmte Textpassage nicht finden, suche nicht immer nach dem kompletten Absatz/Satz der vorgegeben ist, sondern auch einmal nach nur einzelnen Stichwörtern...

die gefundenen Ergebnisse kannst Du dann vergleichen und schauen ob vielleicht einfach nur irgendwelche Teile in der Zeile verändert wurden. Dort kannst Du dann anknüpfen und mit der Einbauanleitung normal fortfahren.

Die Suchfunktion beinhaltet auch viele Tipps, da schon viele Leute vor Dir eventuell die gleichen Probleme gehabt haben, diese solltest Du nach Möglichkeit als allererstes ausreizen, da Du dort dann auch sofort die Tipps nachlesen kannst, statt hier eventuell ein paar Stunden auf eine Antwort zu warten...

das sind alles nur gutgemeinte Ratschläge ohne irgendjemandem zu nahe treten zu wollen... jeder hat mal angefangen ;)

Autor:  Patzue [ Sa 28 Nov, 2009 19:06 ]
Betreff des Beitrags:  Re: RPG Orte

hey!

Ist zwar schon etwas älter.. aber.. habe eine Frage dazu..

Ich hab drei verschiedene Stätte auf meinem Server.. zum einen eine Stadt, die blüht und gedeiht (Die 'Licht' seite) und eine Stadt, die in Trümmern liegt (Die 'dunkle' Seite) und ein neutrales dorf.. So.. Jetzt wollte ich in die große 'Licht'Stadt die RP-Orte und in der 'dunklen' stadt.. nur wollte ich eben zwei von einander getrente..

Also bin ich hingegangen und habe die datei wie folgt geändert.. und eben auch die entsprechende Tabelel in der db gemacht

$this->bbcode_second_pass_code('', '<?php
/*
(c) 2007 by Passion de la glace alias Kamui
erstmals erschienen auf:
http://www.lotgd-zanarkand.com/logd/
Version: 1.2
*/

require_once 'common.php';
require_once './function/orte2.php';
addcommentary();
checkday();

/*
ToDo:

Führe folgende SQL Befehle in deinem phpmyadmin aus:
ALTER TABLE `accounts` ADD `rport` enum('0','1') NOT NULL default '0';

CREATE TABLE `rporte`(
`id` int(11) unsigned NOT NULL auto_increment,
`acctid` int(11) unsigned NOT NULL default '0',
`acctname` varchar(50) NOT NULL default '',
`name` varchar(200) NOT NULL default '',
`text` longtext NOT NULL,
PRIMARY KEY (`id`),
KEY `acctid` (`acctid`)
)TYPE=MyISAM;

CREATE TABLE `ortebann`(
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(50) NOT NULL default '',
`ort` int(11) unsigned NOT NULL default '0',
`grund` text NOT NULL,
PRIMARY KEY (`id`),
KEY `ort` (`ort`)
)TYPE=MyISAM;



Öffne setnewday.php und suche nach:

$sql = "DELETE FROM accounts WHERE acctid IN ($delaccts)";
db_query($sql) or die(db_error(LINK));

füge danach ein:

$sql = 'DELETE FORM `rporte` WHERE acctid IN ('.$delaccts.')';
db_query($sql) or die (db_error(LINK));

speichern und schliessen.

Öffne user.php und suche nach:

"seendragon"=>"Drachen heute gesucht,bool",

füge danach ein:

"rport"=>"Hat RP Ort erstellt,bool",


speichern und schliessen

öffne dragon.php und suche:

"acctid"=>1,

füge danach ein:

"rport"=>1,

speichern und schliessen.

füge in passender Stelle ein:

addnav('Die RP Orte','orte2.php');


Falls textarea nicht in der function showform vorhanden ist baue sie endweder ein oder
suche überall nach:

'text'=>'Ortsbeschreibung,textarea,45,20'

und ersetze es gegebenden falls.

Falls du kein html erlauben willst suche:

output(''.CloseTags(removeEvilTags($ort['text']),'`n`c`b`i').'`n`n`n',true);

und ersetze es mit:

output(''.CloseTags($ort['text'],'`n`c`b`i').'`n`n`n');




UPDATE auf Version 1.2.1

- Kleiner Bugfix in der function ShowPlaceCesc();
- Öffnen und schliessen der Orte für Admins

ToDo:
Führe
ALTER TABLE rporte ADD close enum('0','1') NOT NULL default '0';
in deinem phpmyadmin aus und schon fertig :P
*/




$acctid = $session['user']['acctid'];


page_header('Die RPG Orte');
switch($_GET['op']){
default:
ShowallPlaces();
break;

/* Die Orte -start- */
case 'ort':

ShowPlaceDesc(''.$_GET['id'].'',$session['user']['login']);

/*Besitzeroptionen -start- */
switch($_GET['editop']){
case 'edit':
$ortsinfo = array('name'=>'Name deines Ortes',
'text'=>'Ortsbeschreibung,textarea,45,20');

$select = "SELECT acctid,name,text FROM rporteli WHERE id=".$_GET['id']."";
$result = mysql_query($select) or die (db_error(LINK));
$row = mysql_fetch_assoc($result);

output("<form action='orte2.php?op=ort&editop=save&id=".$_GET['id']."' method='POST'>",true);
addnav('','orte2.php?op=ort&editop=save&id='.$_GET['id'].'');
output("<input type='submit' class='button' value='Speichern'>",true);
showform($ortsinfo,$row);
output("</form>", true);
addnav('Zurück','orte2.php?op=ort&id='.$_GET['id'].'');
break;

case 'save':
$sql = 'UPDATE `rporteli` SET
`name` = "'.$_POST['name'].'"
,`text` = "'.$_POST['text'].'"
WHERE
`id` = "'.(int)$_GET['id'].'"';
db_query($sql) or die (db_error(LINK));
redirect('orte2.php?op=ort&id='.$_GET['id'].'');
break;

case 'delete':
$sql = 'DELETE FROM `rporteli` WHERE acctid='.$acctid.'';
db_query($sql)or die (db_error(LINK));
$sql = 'DELETE FROM `ortebann` WHERE ort='.$_GET['id'].'';
db_query($sql)or die (db_error(LINK));
redirect('orte2.php');
break;
}

switch($_GET['act']){
case 'bann':
ViewPeoplebanns(''.$_GET['id'].'');
break;

case 'playerbann':
output("<form action='orte2.php?op=ort&act=save&id=".$_GET['id']."' method='POST'>",true);
$ort = array(
'id'=>'ID,hidden',
'name'=>'Loginname des Spielers',
'grund'=>'Grund des banns'
);
output('`c`bBannungen eintragen`c`b`n`n');
$row = 0;
showform($ort,$row);
output("</form>",true);
addnav('','orte2.php?op=ort&act=save&id='.$_GET['id'].'');

break;

case 'delete':
$ort = db_fetch_assoc(db_query('SELECT id,ort FROM `ortebann` WHERE id='.$_GET['id'].''));

$sql = 'DELETE FROM `ortebann` WHERE id='.$_GET['id'].'';
db_query($sql) or die (db_error(LINK));
redirect('orte2.php?op=ort&act=bann&id='.$ort['ort'].'');
break;


case 'save':
$sql = 'SELECT acctid,login,name FROM accounts WHERE login="'.$_POST['name'].'"';
$result = db_query($sql) or die (db_error(LINK));
if (db_num_rows($result)>0 && $session['user']['login']!=$_POST['name']){
$row = db_fetch_assoc($result);

$search = 'SELECT acctname,name FROM rporteli WHERE id='.$_GET['id'].'';
$result = db_query($search) or die (db_error(LINK));
$ort = db_fetch_assoc($result);

systemmail($row['acctid'],'`$Du wurdest von '.$ort['name'].' gebannt','Hallo '.$row['name'].' du wurdest von '.$ort['acctname'].' dem Ersteller des Ortes: '.$ort['name'].' gebannt. Ab nun hast du kein Zutritt mehr zu diesem Ort falls du den Grund wissen willst frage endweder nach oder schaue an dem Ort nach dort wird dir der Grund genannt.');

$name = $_POST['name'];
$ort = $_GET['id'];
$grund = $_POST['grund'];
$anlegen = "INSERT INTO `ortebann` (name,ort,grund) VALUES (\"$name\",\"$ort\",\"$grund\")";
db_query($anlegen) or die (db_error(LINK));

output('`n`n'.$row['name'].' ist von nun an von deinem Ort gebannt und kann ihn nicht mehr betreten');
}else{
//Eingetragender User ist nicht vorhanden oder der Besitzer sich selbst bannen will o.O wird kein DB Eintrag gemacht
if ($session['user']['login']==$_POST['name'])
output('<h3>`$Du willst dich doch nicht selbst bannen oder etwa doch? o.O</h3>',true);
else
output('<h3>`$Dieser User exestiert nicht überprüfe noch einmal deine Eintraungen!</h3>',true);
}
addnav('Zurück','orte2.php?op=ort&act=bann&id='.$_GET['id'].'');
break;
}
break;
/* Besitzeroptionen -end-*/
/* Die Orte -end- */

/* Ort erstellen für Spieler start-*/
case 'erstellen':
output("<form action='orte2.php?op=save' method='POST'>",true);
$ort = array(
'name'=>'Name des Ortes',
'text'=>'Ortsbeschreibung,textarea,45,20'
);
$row = 0;
showform($ort,$row);
output("</form>",true);
addnav('Zu den Orten','orte2.php');
addnav('','orte2.php?op=save');
break;

case 'save':
if ($_POST['name']==''){
output('Du musst schon einen Namen angeben ansonsten klappt das nicht');
}else{
$login = $session['user']['login'];
$name = $_POST['name'];
$text = $_POST['text'];
$anlegen = "INSERT INTO `rporteli` (acctid,acctname,name,text) VALUES ($acctid,\"$login\",\"$name\",\"$text\")";
db_query($anlegen)or die (db_error(LINK));
output('`#Der Ort wurde angelegt. Du kannst ihn nun betreten und deine Texte und alles weitere editieren');
$session['user']['rport'] = 1;
}
addnav('Zurück zu den Orten','orte2.php');
break;
/* Ort erstellen für Spieler */


/* SU Optionen -start- */
case 'admin':
switch($_GET['suop']){
default:
ViewSUoptions();
break;

/* SUoptionen editieren löschen und Tabellen leeren -start- */
case 'edit':
$su_ortsinfo = array('id'=>'ID,viewonly',
'acctid'=>'BesitzerID,int',
'acctname'=>'Loginname des Besitzers',
'close'=>'RP Ort geschlossen?,bool',
'name'=>'Name des Ortes',
'text'=>'Ortsbeschreibung,textarea,20,20');

$select = "SELECT * FROM rporteli WHERE id=".$_GET['id']."";
$result = db_query($select) or die(db_error(LINK));
$row = db_fetch_assoc($result);

output("<form action='orte2.php?op=admin&suop=save&id=".$_GET['id']."' method='POST'>",true);
addnav('','orte2.php?op=admin&suop=save&id='.$_GET['id'].'');
output("<input type='submit' class='button' value='Speichern'>",true);
showform($su_ortsinfo,$row);
output("</form>", true);
addnav('Zurück','orte2.php?op=admin&suop=');
break;

case 'save':
$sql = 'UPDATE `rporteli` SET
`acctid` = "'.(int)$_POST['acctid'].'"
,`acctname` = "'.$_POST['acctname'].'"
,`name` = "'.$_POST['name'].'"
,`text` = "'.$_POST['text'].'"
,`close` = "'.(int)$_POST['close'].'"
WHERE
`id` = "'.(int)$_GET['id'].'"';
db_query($sql) or die (db_error($sql));
redirect('orte2.php?op=admin&suop=');
break;

case 'delete':
$sql = 'DELETE FROM `rporteli` WHERE id='.$_GET['id'].'';
db_query($sql) or die (db_error(LINK));
$sql = 'DELETE FROM `ortebann` WHERE ort='.$_GET['id'].'';
db_query($sql) or die (db_error(LINK));
redirect('orte2.php?op=admin&suop=');
break;

case 'leeren':
$sql = 'TRUNCATE TABLE `rporteli`';
db_query($sql) or die (db_error(LINK));
$sql = 'TRUNCATE TABLE `ortebann`';
db_query($sql) or die (db_error(LINK));
redirect('orte2.php?op=admin&suop=');
break;
/* SUoptionen editieren löschen und Tabellen leeren -end- */


/*Anlegen eines Ortes für SU -start-*/
case 'anlegen':
output("<form action='orte2.php?op=admin&suop=erstellen' method='POST'>",true);
$ort = array(
'id'=>'ID,hidden',
'acctid'=>'BesitzerID,int',
'acctname'=>'Loginname des Besitzers',
'name'=>'Name des Ortes',
'text'=>'Ortsbeschreibung,textarea,45,20'
);
$row = 0;
showform($ort,$row);
output("</form>",true);
addnav('Zurück zur Übersicht','orte2.php?op=admin&suop=');
addnav('','orte2.php?op=admin&suop=erstellen');
break;

case 'erstellen':
$besitzer_id = $_POST['acctid'];
$login = $_POST['acctname'];
$name = $_POST['name'];
$text = $_POST['text'];
$anlegen = "INSERT INTO `rporteli` (acctid,acctname,name,text) VALUES ($besitzer_id,\"$login\",\"$name\",\"$text\")";
db_query($anlegen)or die (db_error(LINK));
output('Der Ort wurde angelegt');
addnav('Zurück zur Übersicht','orte2.php?op=admin&suop=');

break;
/*Anlegen eines Ortes für SU -end-*/


}
break;
/* SU Optionen -end- */
}
//Zeile darf nicht entfernt werden!!
$copyright ="<div align='center'><a href=http://www.lotgd-zanarkand.com/logd/ target='_blank'>&copy; `b`#Passion de la glace`b`0</a></div>";
output("$copyright`n ",true);
page_footer();
?>')

so.. Wieso wird aber dann in der dunklen Stadt genau die selben wie in der hellen Stadt angezeigt?

Autor:  Minerva [ Sa 28 Nov, 2009 22:55 ]
Betreff des Beitrags:  Re: RPG Orte

die functions php auch angepasst?
showallplaces vor allem

die gibt nämlich die orte aus wenn ich mich recht entsinne *grade zu faul zum nachsehen*

wenn die noch auf die andre tabelle nachkuckt wird das nichts ^^
entweder funcion kopieren, umbennen und anpassen (in der orte natürlich dann auch umbennen)
oder ne eigene functions php anlegen.

mfg dat mine

Autor:  Patzue [ So 29 Nov, 2009 10:53 ]
Betreff des Beitrags:  Re: RPG Orte

Minerva hat geschrieben:
die functions php auch angepasst?
showallplaces vor allem

die gibt nämlich die orte aus wenn ich mich recht entsinne *grade zu faul zum nachsehen*

wenn die noch auf die andre tabelle nachkuckt wird das nichts ^^
entweder funcion kopieren, umbennen und anpassen (in der orte natürlich dann auch umbennen)
oder ne eigene functions php anlegen.

mfg dat mine


:bash: Danke.. and die php in den functions hab ich garnich dran gedacht :bash:

Edit:

Dankeschön.. Hab jetzt einfach Showallplaceslicht und showallplacesdunkel und showplacesdesclicht und showplacesdunkel gemacht.. Und es geht.. ;)

Autor:  Andarrius [ Mo 25 Jan, 2010 09:30 ]
Betreff des Beitrags:  Re: RPG Orte

Also, ich habe auch ein Problem und brauche eure Hilfe.

Ich habe die Orte 2x drin, eine normale und eine Ü18 Variante.

Ich habe mir die Datein genommen, kopiert und unter orte18.php abgespeichert (beide).

Ich habe 2 neue Datenbank verweise gemacht mit:

rporteneu und ortebannneu

Ich habe sämtliche verweise angepasst. sprich die sql abfragen und die Navs.

Bekomme aber immer wenn ich einen post Edetieren wil diesen Fehler:

SELECT * FROM rporteneu WHERE id=
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 '' at line 1

Die Abfrage ist aber bis auf das Ziel komplett identisch, ich weiß nicht woran das liegt, könnt ihr mir dabei helfen? Meine Source hat die Datein frei.

MfG
Andarrius

Autor:  Patzue [ Mo 25 Jan, 2010 14:56 ]
Betreff des Beitrags:  Re: RPG Orte

haste orte.php im functions ordner auch angepasst.. wenn ja.. ka^^

Autor:  Linus [ Mo 25 Jan, 2010 15:09 ]
Betreff des Beitrags:  Re: RPG Orte

Andarrius hat geschrieben:
SELECT * FROM rporteneu WHERE id=
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 '' at line 1


Die Fehlermeldung sagt dazu schon alles aus. id ist leer! Lass dir mit print_r() den Inhalt der Variablen ausgeben die du nutzt um für id einen Wert zu übergeben, bzw. kontrolliere weshalb diese Variable leer ist!

Autor:  Patzue [ Mo 25 Jan, 2010 15:54 ]
Betreff des Beitrags:  Re: RPG Orte

Was mir auffällt.. (was aber eigentlich nichts ausmachen dürfte..) du hast

$select = "SELECT * FROM rporteneu WHERE id=".$_GET['id']."";

also mit " alle andere sind mit ' (oder.. dürfte eig. nix ausmachen..?)

Autor:  Linus [ Mo 25 Jan, 2010 18:51 ]
Betreff des Beitrags:  Re: RPG Orte

Patzue hat geschrieben:
also mit " alle andere sind mit ' (oder.. dürfte eig. nix ausmachen..?)

Da kann ich dir nicht so ganz folgen, du solltest versuchen deine Aussagen etwas verständlicher zu formulieren. ;)

Aber Tatsache ist das $_GET['id'] leer ist, bzw. keinen Wert enthält. Du solltest nach dem Grund dafür forschen.

Autor:  Andarrius [ Mo 25 Jan, 2010 18:58 ]
Betreff des Beitrags:  Re: RPG Orte

Wo fange ich mit dem Forschen eurer Meinung nach am besten an?

Ich habe da schon ein paar varianten ausprobiert, aber es kommt immer das selbe dabei raus. Das komische ist, das es in den Regulären Orten geht und ich bis auf das Ziel der abfrage in der Datenbank (rporte zu rporteneu) nichts geändert habe.

Das in dem Befehl " statt ' verwendet werden, war einer meiner vielen Versuche ohne Erfolg ;)

wie baue ich den print_r() ein? Mit dem Befehl habe ich noch nicht gearbeitet und kenne diesen noch nicht.

PS: vlt noch ein Hinweis? --- Es geht ziemlich alles in den Orten, also erstellen Schreiben usw, nur wenn man den Post Edietiert kommt es zu diesem Fehler.

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