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

schon wieder ein prob.. nichts passiert.. case abfragen?
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=2461
Seite 1 von 1

Autor:  Lyra [ Sa 15 Apr, 2006 19:52 ]
Betreff des Beitrags:  schon wieder ein prob.. nichts passiert.. case abfragen?

Also, ich will mein Cafe fertig stellen und bei der Option Mettrinken passiert nicht und man hängt fest. Die Textstelle lautet:
[php]}elseif ($_GET['op']==met){
if ($session['user']['gold']>999) {

if ($session['user']['level']>8) {
output("`#Du bezahlst `^ 1000 Gold `#an `@Arka `# und er reicht die einen Krug `^Met`#. Du trinkst es aus und fühlst dich ruhiger. Deine Verteidigung steigt.");
$session['user']['gold']-=1000;
$session['user']['defence']++;
}else{
output("`#Du bezahlst `^ 1000 Gold `#an `@Arka `# und er reicht die einen Krug `^Met`#. Da du aber noch sehr jung bist, schlägt dir der `^Met`# auf den Magen und du verlierst an Verteidigung.");
$session['user']['gold']-=1000;
$session['user']['defence']--;

}
addnav ("`4Zurück zum Café", "cafedisco.php");

}else{
addnav("`4 Zurück zum Cafe","cafedisco.php");
output("`#Du hast nicht genügend Gold.");
}[/php]

Erst muss gefragt werden, ob das Gold für den Drink vorhanden ist. Und dann will ich es so haben, dass man, wenn man über 8 Lvl hat, einen verteidigungpunkt bekommt, wenn man darunter ist eine abgezogen bekommt. wer kann da helfen?

Mfg Lyra

Autor:  Eliwood [ Sa 15 Apr, 2006 20:00 ]
Betreff des Beitrags:  Re: schon wieder ein prob.. nichts passiert.. case abfragen?

Lyra hat geschrieben:
bei der Option Mettrinken passiert nicht und man hängt fest.


Nimm ein Messer und schneid dich los :roll:

Nein, ich bitte dich. Was sollen wir mit so einer Meldung anfangen? Fehlermeldung? Sonstige Meldung?

Was ich auf anhieb grad sehe ist, dass du met in der if nicht als string gebrauchst, sondern als Konstante. Gewollt?

Autor:  Lyra [ Sa 15 Apr, 2006 20:08 ]
Betreff des Beitrags:  Re: schon wieder ein prob.. nichts passiert.. case abfragen?

Eliwood hat geschrieben:
Lyra hat geschrieben:
bei der Option Mettrinken passiert nicht und man hängt fest.


Nimm ein Messer und schneid dich los :roll:

Nein, ich bitte dich. Was sollen wir mit so einer Meldung anfangen? Fehlermeldung? Sonstige Meldung?

Was ich auf anhieb grad sehe ist, dass du met in der if nicht als string gebrauchst, sondern als Konstante. Gewollt?


ha ha. wie ich sagte keine fehlermeldung nix. soll ich mri eine aus den rippen schneiden wenn keine da ist?
es wird halt keine navleiste mehr ausgegeben und auch sonst passiert nix.

ich denke dass man anhand dieser stelle was sagen kann.

und wieso konstante oder nicht? ich benutzt es so wie auch die anderen getränke ganz normal und bei den anderen gehts ja auch.

Autor:  Eliwood [ Sa 15 Apr, 2006 20:19 ]
Betreff des Beitrags:  Re: schon wieder ein prob.. nichts passiert.. case abfragen?

[php]print met; // Die Konstante met wird ausgegeben, sofern sie exisiert
print 'met'; // met wird ausgegeben[/php]

[php]}elseif ($_GET['op']==met){ [/php]
met ist wahrscheinlich keine Konstante. Deshalb müsste das hier:
[php]}elseif ($_GET['op']=='met'){ [/php]
heissen.

*Diese* Aussage hört sich schon wesentlich besser an.
page_footer vorhanden?

Autor:  Lyra [ Sa 15 Apr, 2006 20:50 ]
Betreff des Beitrags: 

ach das meinste.. ohne die '' geht es bei den anderen getränken auch, deshalb hab ich das bei dem met auch so gemacht. denk nciht, dass es daran liegt (außerdem hatte ich es auch mal anders) und ja klar hab ich n page_footer();
alles funzt ja auch bis auf die ausgabe wenn man auf met klickt..

edit: jetzt geht es.. find ich ja lustig, dass dabei die '' zu setzen sind bei den andren nicht.. naja dangge :wink:

Autor:  Eliwood [ Sa 15 Apr, 2006 21:00 ]
Betreff des Beitrags: 

Ich empfehle dir dringengst String in Quotes zu setzen!

[php]define('met',1024);

$var = "met";

if($var == met) print '$var hat den Wert met';
else print '$var it nicht met';[/php]

Welche Ausgabe würdest du erwarten?
Die erste?

Es wird aber Nummer 2 kommen!
Da met eine Konstante ist. Wäre die Konstante nicht definiert, würde die PHP-Fehlerkorrektur annehmen, dass es sich hierbei doch um einen String handelt und die Quotes vergessen worden sind.
Also ist dein Stil quasi falsch

Autor:  Lyra [ Sa 15 Apr, 2006 21:17 ]
Betreff des Beitrags: 

erst mal was definierst du als string? doch wohl nicht die ' oder?
und wie ich schon sagte bei den anderen geht es halt ANDERS.
ich hab zwar nicht viel plan von sql und dam krams, aber deshalb musst du mir nicht so kommen, denn das weiß ich auch noch.. ich seh ja was funzt und was nicht.

mit deinen fachbegriffen brauchst mir jedoch nicht kommen, das peil ich eh nicht.. aber irgendwie glaub ich das kann ich noch hundertmal sagen, das ignorierst du eh

Autor:  Eliwood [ Sa 15 Apr, 2006 21:23 ]
Betreff des Beitrags: 

Mann...

Zitat:
PHP unterstützt acht primitive Typen.

Vier skalare Typen:

*

Boolean
*

Integer
*

Fließkomma-Zahl (float)
*

String / Zeichenkette

Zwei zusammengesetzte Typen:

*

Array
*

Object

Und zuletzt zwei spezielle Typen:

*

Resource
*

NULL


Ein String ist nichts anderes als eine Zeichenkette :nene:
Eine Konstante ist eine Variable, die man nicht ändern kann (Also nicht Variabel ist).


Und sag mal... Wie soll ich dir erklären das was falsch ist?
Mit Wörtern wie "Ja das was nicht in Diesen 2 Hochstrichen steht"?

Nimm dir doch bitte meine Worte zu herzen. Irgendwann baust du dir mit diesem Stil einen Riesenbug.

Autor:  Lyra [ Sa 15 Apr, 2006 21:47 ]
Betreff des Beitrags: 

Eliwood hat geschrieben:
Mann...

Zitat:
PHP unterstützt acht primitive Typen.

Vier skalare Typen:

*

Boolean
*

Integer
*

Fließkomma-Zahl (float)
*

String / Zeichenkette

Zwei zusammengesetzte Typen:

*

Array
*

Object

Und zuletzt zwei spezielle Typen:

*

Resource
*

NULL


Ein String ist nichts anderes als eine Zeichenkette :nene:
Eine Konstante ist eine Variable, die man nicht ändern kann (Also nicht Variabel ist).


Und sag mal... Wie soll ich dir erklären das was falsch ist?
Mit Wörtern wie "Ja das was nicht in Diesen 2 Hochstrichen steht"?

Nimm dir doch bitte meine Worte zu herzen. Irgendwann baust du dir mit diesem Stil einen Riesenbug.



sleber mann!
am besten vergisst du es
ich weiß was ein string und eine konstante ist!

aufreg :bash:
und wenn ichs bau ists ja nicht dein prob

Autor:  Magier12 [ Sa 15 Apr, 2006 21:50 ]
Betreff des Beitrags: 

hör besser auf ihn.... ich hab mir so nen großen bug zusammengebaut.... genauso wie ich mir mal nen kleinen bug gebaut hab indem ich in nem script imemr statt . ein , hergenommen hab :???:

Autor:  Lyra [ Sa 15 Apr, 2006 22:17 ]
Betreff des Beitrags: 

hehe sowas mach ich eigentlich nicht, nur ging das andre auch so. aber auf altkluge beschreibungen hab ich keinen nerv. ist nru so dass ich mir das selbstbeipul nebenbei, hatte sonst nur tp und delphi gelernt.. und da weiß ich natürlich auch was n string ist.. dehslab verwunderte es mich.. naja was solls..zumindest bin ich gleich fertig

Autor:  Eliwood [ Sa 15 Apr, 2006 22:43 ]
Betreff des Beitrags: 

Zitat:
erst mal was definierst du als string? doch wohl nicht die ' oder?

Zitat:
ch weiß was ein string und eine konstante ist!


Öhm? :?

2 Grundsätzliche Widersprüche. Und um nochmal zu demonstrieren, was ich dir mitteilen möchte, für das Script hier aus:

[php]$var = 'Varv';
if(Varv=== $var) print '$var === Varv<br />';
if("Varv" === $var) print '$var === "Varv"<br />';

define('Varv','novar');

if(Varv === $var) print '$var === Varv<br />';
if("Varv" === $var) print '$var === "Varv"<br />';[/php]

Und dann merkst du hoffentlich, warum es halt bei diesem einen Fall nicht geklappt hat.

Übrigens: Auch ich hab mir alles selbst bei gebracht. Und vorher konnte ich gerade mal mit einem Baukasten einfache C++ Anwendungen machen (Wirklich sehr einfache Dinger).

PS: Doch, wenn du einen solchen Bug baust, ist es auch mein Problem. Dann dann würdest du hier wieder posten und alles beginnt von neuem...

Autor:  Lyra [ Sa 15 Apr, 2006 22:55 ]
Betreff des Beitrags: 

Eliwood hat geschrieben:
Zitat:
erst mal was definierst du als string? doch wohl nicht die ' oder?

Zitat:
ch weiß was ein string und eine konstante ist!


Öhm? :?

2 Grundsätzliche Widersprüche. Und um nochmal zu demonstrieren, was ich dir mitteilen möchte, für das Script hier aus:

[php]$var = 'Varv';
if(Varv=== $var) print '$var === Varv<br />';
if("Varv" === $var) print '$var === "Varv"<br />';

define('Varv','novar');

if(Varv === $var) print '$var === Varv<br />';
if("Varv" === $var) print '$var === "Varv"<br />';[/php]

Und dann merkst du hoffentlich, warum es halt bei diesem einen Fall nicht geklappt hat.

Übrigens: Auch ich hab mir alles selbst bei gebracht. Und vorher konnte ich gerade mal mit einem Baukasten einfache C++ Anwendungen machen (Wirklich sehr einfache Dinger).

PS: Doch, wenn du einen solchen Bug baust, ist es auch mein Problem. Dann dann würdest du hier wieder posten und alles beginnt von neuem...


oh mannn.....

sind keine widersprüche, denn ich habe mich gefragt ob DU dich grad dumm anstellst wegen des strings, nicht mehr und nicht weniger

und wenn es dich so belastet lies halt nicht was ich schreib... :roll:

Autor:  Auric [ So 16 Apr, 2006 10:02 ]
Betreff des Beitrags: 

Ihr seid komisch...

Also noch mal für alle: Ein String ist (im falle PHP) eine Zeichkette, ein Datentyp der auf 5 unterschiedliche Methoden deklariert werden kann.
gebräuchlich sond davon aber nur 2-3:
Methode 1: Doppelte Anführungszeichen
[php]$string = "Ich bin ein string in double-quotes";[/php]
Methode 2: Einfache Anführungszeichen (Hochkommata)
[php]$string = 'Ich bin ein string in single-quotes';[/php]
Methode 3: Heredoc Syntax
[php]$string = <<<STRING
Ich bin einString im heredoc-syntax
STRING;[/php]

Weitere:
Methode 4: Cast
[php]$string = (string) 55;[/php]
Methode 5: Automatische umwandlung durch Verkettung
[php]$string = "".123."";[/php]

So, das dürften alle möglichkeiten sein, einen String zu erstellen. Im Normalfall befindet sich dieser also IMMER in Anführungszeichen/Hochkommata. Das hier ist KEIN korrekter string:
[php]$keinstring = ichbinkeinstring_bestenfallseinekonstante;[/php]

Ich hoffe das hilft ein wenig weiter.

Autor:  tweans2 [ So 16 Apr, 2006 10:41 ]
Betreff des Beitrags:  Verschachtelungsfehler

Davon abgesehen, dass ich Elliwood voll zustimme und es wirklich furchtbar ist, 'nen String im Source im Konstantenlook ertragen zu müssen, tippe ich mal auf 'nen Verschachtelungfehler in den IF-clauses.

Genaueres kann man nur sagen, wenn Du den kompletten Source postest.

Stefan

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