anpera.net
https://anpera.homeip.net/phpbb3/

Problemm auf eine Seite zu Kommen
https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=5067
Seite 1 von 1

Autor:  condo [ Sa 16 Jan, 2010 19:31 ]
Betreff des Beitrags:  Problemm auf eine Seite zu Kommen

Guten Arbend zusammen da ich gerade ein script gemacht habe
und es eigendlich soweit geht, gibt es trost den Problemm mit ei paar stellen in script.


Das Script Heist Reise Büro
dient als Andere Reise Möglichkeit

Zu Dorf Stadt usw


Mein erstes problemm ist
ich komme nicht mehr auf die Seite des Script.
In der village.php ist alles richtig benannt wurden.
Also addnav("Das Kleine Reise Büro","reise-büro1.php");

trost dem pasiert bei mir nixs.
habe auf } geprüft obwas fehlt aber ich habe bis jetzt nixs gefunden.

Arbeite derzeit mit das Proggramm Notepad++

Reise Büro
$this->bbcode_second_pass_code('', '<?

require_once "common.php";
checkday();
#checkfood();

if ($session['user']['alive']){
}else{
redirect("shades.php");
}


page_header("Reise Büro");
$name=$session[user][name];
switch($HTTP_GET_VARS[op]){

case "":
output("`c<font size='+1'>`bCondo's Reise Büro`b</font>`c`n`n`n",true);
output("`tDu läufst in das Reise Büro und siehst viele verschiedene Bilder an der Wand.");
output("Du bemerkst viele der Speziellen Reise Orte, worüber die Leute immer reden, und dann bemerkst du den Mann der vor dir steht....`n`n");
output("\"Hallo $name`0, `tMein Name ist Condo. Suchst du Ein Reise Pass Ich habe hier einige Pässe die ich dir verkaufen kann!\"");
output("Der Mann macht für ein paar Minuten eine Pause und spricht dann weiter:`n`n\"Der 40er Reise Pass kostet `15000 Gold`0 Gold und `%10 Edelsteine`0");



if ($session[user][reisepass]<>1 && $session[user][gold]>=15000 && $session[user][gems]>10){
addnav("Kaufe Reisepass","reise-büro1.php?op=steam");}
break;


case "steam":
$keys = getsetting("reisepass",0);
if( $keys > 1) {
output("`Condo sagt.Etweder hast du genug noch oder du hast kein Gold.");
} else {
output("Du hast dir ein 40er Reisepass gekauft!!!");
savesetting("reisepass", $keys-1);
$session[user][reisepass]+=40;
$session[user][gold]>14999;
$session[user][gold]-=15000;
if ($session[user][gems]>9){
$session[user][gems]-=10;
}
if ($session[user][reisepass]==0 && $session[user][gold]>=15000 && $session[user][gems]>=10){
addnav("Du Brauchst neue Reise Pässe","reise-büro1.php?op=steam");}
}
break;
}
addnav("");
addnav("Zurück zum Hanseviertel","stadt.php");
page_footer();
?> ')











Dann habe ich das Problemm der If abfrage ob ich noch genug reisepässe
habe.

(reisepass ist in der SQL datenban vorhanden=



Start der Reise
$this->bbcode_second_pass_code('', '<?

require_once "common.php";
checkday();
#checkfood();

if ($session['user']['alive']){
}else{
redirect("shades.php");
}

output("<span style='color: #7FFF55'>",true);
page_header("Reise Weg");
$name=$session[user][name];
switch($HTTP_GET_VARS[op]){

case "":
output("`c<font size='+1'>`bCondo's Reise Büro`b</font>`c`n`n`n",true);
output("`tDu läufst in das Reise Büro und siehst viele verschiedene Bilder an der Wand.");
output("Du bemerkst viele der Speziellen Reise Orte, worüber die Leute immer reden, und dann bemerkst du den Mann der vor dir steht....`n`n");
output("\"Hallo $name`0, `tMein Name ist Condo. Suchst du Ein Reise Pass Ich habe hier einige Pässe die ich dir verkaufen kann!\"");
output("Der Mann macht für ein paar Minuten eine Pause und spricht dann weiter:`n`n\"Ach du hast schon einen okay du kannst Reisen`0");


if ($session[user][reisepass]>1 ){
addnav("Auf Reisen gehen","reise.php?op=pass");}
break;


case "pass":
output("Du hast dir den reisepass gekauft!!!");
if ($session[user][reisepass]>0){
$session[user][reisepass]-=1;
addnav("Nach Migra Reisen","stadt.php");
addnav("Nach Sanela Reisen","sanela.php");
}
if ($session[user][reisepass]==0 && $session[user][gold]>=15000 && $session[user][gems]>=10){
addnav("Du hast kein Reise Pass kauf dir einen","reise-büro1.php?op=steam");}
}


addnav("");
addnav("Zurück zum Hanseviertel","stadt.php");
page_footer();
?> ')

Ich hatte bei der erste version von mein script alles richtig gehabt.
Musste aber was ändern und weiss nicht mehr was das wahr.
Danach waren die fehler da.

bitte um hilfe vielen dank

Autor:  Doctamy [ Sa 16 Jan, 2010 19:47 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

ändere mal das Ü in ue

Autor:  Welv [ Sa 16 Jan, 2010 19:54 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

Mal abgesehen von der grauenhaften Einrückung, der Verwendung veralteter Variablen, dem Verweigern von ' in Arrayschlüssel und dem übermäßigen Gebrauch der output Funktion, fällt mir auf dem ersten Blick kein Fehler auf.

Außerdem ist "Geht nicht" keine so gute Fehlerbeschreibung wie z.B. Fehlermeldungen die du posten könntest (Falls welche auftreten)

Versuch mal php an das <? ganz oben "php" dranzuhängen, also <?php daraus zu machen.


edit


Ach, der Dateiname hat ein Umlaut (hab ich übersehen). Das sollte man nicht machen und der Fehler sein.

Autor:  Minerva [ Sa 16 Jan, 2010 20:52 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

Irgendwie habe ich das Gefühl, jedes mal wenn ich einen deiner Posts lese im Kopf kirre zu werden.
Leg dir nen Duden zu, Open office oder was weiß ich, irgendwas was sowohl deine Rechtschreibung als auch deine Grammatik verbessert. Is ja nicht aus zu halten....

Habe nun beide scripte bei mir getestet, allerdings unter den Link: test.php
Fehlermeldungen kamen keine, schient also wirklich am ü im php-Namen zu liegen

kleine Anmerkungen zum Script:

$this->bbcode_second_pass_code('', 'if ($session[user][reisepass]<>1 && $session[user][gold]>=15000 && $session[user][gems]>10){')

denke nicht, dass <> richtig ist, denn entweder ist etwas größer, kleiner oder gleich.
Normalerweise nimmt man ja als standard 0... also soll es wohl >=1 sein...

$this->bbcode_second_pass_code('', ' case "steam":
$keys = getsetting("reisepass",0);
if( $keys > 1) {
output("`Condo sagt.Etweder hast du genug noch oder du hast kein Gold.");
} ')

was das soll verstehe ich auch nicht, da getsetting einen wert aus den Spieleinstellungen rausholt, nicht aber einen Wert des Spielers...
zumal der Satz grauenhaft ist... aber ich spiele hier nun nicht Deutschlehrer

in der zweiten Php:
if ($session[user][reisepass]>1 ){
sollte wohl auch >=1 sein...

ich frage mich echt wie du behaupten kannst dein Script hätte mal funktioniert, denke die kamen nicht von jetzt auf gleich
Nur weil es keine Fehlermeldung aus gespuckt hat heißt es noch lange nicht, dass nicht doch n Fehler drinnen ist.

Just my two cents...
Das Mine

Autor:  Patzue [ Sa 16 Jan, 2010 22:42 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

Also steinigt mich, wenn ich mich irre.. aber muss es am amfang nicht

$this->bbcode_second_pass_code('', '<?php') heißen?

Und dann

$this->bbcode_second_pass_code('', 'if ($session['user']['alive']){
}else{
redirect("shades.php");
}')

Das ist doch auch humbug oder? Da wird geprüft ob einer lebt.. Falls ja.. wird NIX getan.. falls nein wird man auf den Friedhof weitergeleitet..

Wenn er diese Prüfung machen will, muss es nicht so aussehen?

$this->bbcode_second_pass_code('', '<?php

require_once "common.php";
checkday();
#checkfood();

if ($session['user']['alive']){
[..] //hier den rest (page_header bis page_footer

}else{
redirect("shades.php");
}

?>')

Autor:  Patzue [ Sa 16 Jan, 2010 22:43 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

shit wollte editieren nich quoten

Autor:  Tidus [ Sa 16 Jan, 2010 22:49 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

Patzue das ist Blödsinn natürlich könnte man das auch einfachher lösen, aber das ist schon richtig so wenn er tot ist kommt er ins schattenreich, der code kann auch ausserhalb davon stehen ~ da der redirect sowieso das ausführen des restlichen codes sinnlos macht XD


EDIT: Außerdem sollte sich der Mensch neben einer besseren Rechtschreibung auch einen entwas ansehnlicheren und syntaktisch richtigeren Programmierstiel angewöhnen ...

Autor:  Patzue [ Sa 16 Jan, 2010 22:58 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

achso.. Dachte, so wie es da steht, passiert halt nix mit einem lebenden und er bleibt auf einer weißen Seite stecken.. K danke ;) (Wieder was neues gelernt)

Autor:  Eliwood [ Sa 16 Jan, 2010 23:31 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

Patzue hat geschrieben:
Also steinigt mich, wenn ich mich irre.. aber muss es am amfang nicht

$this->bbcode_second_pass_code('', '<?php') heißen?

Und dann

$this->bbcode_second_pass_code('', 'if ($session['user']['alive']){
}else{
redirect("shades.php");
}')

Das ist doch auch humbug oder? Da wird geprüft ob einer lebt.. Falls ja.. wird NIX getan.. falls nein wird man auf den Friedhof weitergeleitet..


Nein, Humbug nicht unbedingt - da redirect ein exit; aufruft, wird der Rest sowieso nicht abgearbeitet. Natürlich könnte man es kürzer schreiben:
$this->bbcode_second_pass_code('', 'if (!$session['user']['alive']){
redirect("shades.php");
}')
Oder so, wie dus angeregt hast. Eigentlich ist es aber gar nicht notwendig - weil, wenn man die Navs richtig setzt, kann man tot sowieso nicht dorthin gelangen.

Autor:  Minerva [ Sa 16 Jan, 2010 23:46 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

Ist es nicht so, dass einen Checkday ohnehin in die Schatten schickt?
oder es zumindest vorgesehen ist?
*ist gerade zu müde sich das genauer an zu sehen und durch zu steigen*
$this->bbcode_second_pass_code('', ' if ($CheckIfDead) {
if (!$session['user']['alive']){
while (@ob_end_clean());
redirect("shades.php");
}
}')
steht zumindest bei meiner common in der checkday Funktion...

just my 2 cents again

Autor:  Tidus [ Sa 16 Jan, 2010 23:53 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

Minerva weiß ja nicht welche version du verwendest aber in der standart 097 ist es meinermeinung nach so nur enthalten wenn man das Dasher Gildensystem einbaut :)

Autor:  Minerva [ So 17 Jan, 2010 00:01 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

oh.. stimmt.. hatte grade keine andre zu Hand als die von zwei schon etwas weiteren Servern ^^'
war wohl in beiden eingebaut... dann hab ich nichts gesagt.

Autor:  Deus X Machina [ So 17 Jan, 2010 01:02 ]
Betreff des Beitrags:  Re: Problemm auf eine Seite zu Kommen

Also abgesehen von den Dingen die schon von anderen erwähnt wurden passen auch noch ein paar andere Dinge nicht in dem Script, zumindest so wie dasmeine Augen sehen:
condo hat geschrieben:
$this->bbcode_second_pass_code('', '\"Der 40er Reise Pass kostet `15000 Gold`0 Gold und `%10 Edelsteine`0");')
So wie ich das sehe wird hier der Preis falsch dargestellt, nämlich 5000 in der Farbe `1 - Anstatt 15000 wonach dann auch abgefragt wird.
$this->bbcode_second_pass_code('', '{
output("Du hast dir ein 40er Reisepass gekauft!!!");
savesetting("reisepass", $keys-1);
$session[user][reisepass]+=40;
$session[user][gold]>14999;
$session[user][gold]-=15000;
if ($session[user][gems]>9){
$session[user][gems]-=10;
}')
Also die Zeile "$session[user][gold]>14999;" ist eine reine Abfrage, ohne einer if Verknüpfung, die kannst du dir also sparen, erfüllt hier soweit ich sehe keinen Sinn.
Und die Abfrage "if ($session[user][gems]>9)" ist auch nicht wirklich toll hier, denn selbst wenn es ein User schaffen sollte irgendwie Edelsteine zwischen Link (w das schon abgefragt wird) und diesem Ereignis zu verlieren, will man ihn j wohl auch nicht noch dafür belohnen indem man ihm dann nichts abzieht nur weil er weniger als 10 Edelsteine hat - weil den Reisepass hat er zum Zeitpunkt der Abfrage längst in der Tasche ("$session[user][reisepass]+=40;")...
$this->bbcode_second_pass_code('', 'if ($session[user][reisepass]<>1 && $session[user][gold]>=15000 && $session[user][gems]>10)
addnav("Kaufe Reisepass","reise-büro1.php?op=steam");}
break;')
Und mit dieser Zeile "$session[user][gems]>10"wird abgefragt ob der User 11 Edelsteine oder mehr hat, das heisst er gibt zwar nur 10 aus, braucht aber 11 um den Link zu sehen - kommt öfters auch richtig vor, ist also wohl ein Flüchtigkeitsfehler.
Weniger flüchtig ist das daran: "if ($session[user][reisepass]<>1" - dieser Teil führt nämlich dazu dass der Link kommt wenn man weniger oder mehr als 1 in Reispass hat. Das funktioniert nur richtig wenn"if ($session[user][reisepass]" als Schalter funktioniert der nur 0 oder 1 annehmen kann. Da "if ($session[user][reisepass]" in dem Script um 40 erhöht wird, kann es also auch höhere Werte annehmen, eine passende Abfrage wäre wohl
$this->bbcode_second_pass_code('', 'if ($session[user][reisepass]==0 && $session[user][gold]>=15000 && $session[user][gems]>=10)')
So wie du sie dann weiter unten verwendet hast
Und wenn du Abfragen willst ob irgendetwas einen Wert NICHT besitzt ist es besser "!=" anstatt "<>" zu verwenden
Das wären soweit die gröbsten Sachen die mir als erstes ins Auge gestochen sind...

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