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

Fehlermeldung und ich find den Fehler net...
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=643
Seite 1 von 1

Autor:  Amerilion [ Sa 25 Sep, 2004 12:09 ]
Betreff des Beitrags:  Fehlermeldung und ich find den Fehler net...

Also hi erst mal ...
Ich bringe mir grade php selber bei mit hilfe von Hadriel und Fly...
Aber bei dieser Source können mir die beiden den Fehler net mehr sagen... ist erst mein zweiter versuch beim ersten habe ich nur ein wenig von einer bestehenden umgeschrieben...

hier der Fehler taucht auf:
[Quote]Warning: main(special/altefrau.php): failed to open stream: No such file or directory in /home/www/web182/html/logd/forest.php on line 31

Warning: main(special/altefrau.php): failed to open stream: No such file or directory in /home/www/web182/html/logd/forest.php on line 31

Warning: main(): Failed opening 'special/altefrau.php' for inclusion (include_path='.:/usr/share/php') in /home/www/web182/html/logd/forest.php on line 31

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web182/html/logd/forest.php:31) in /home/www/web182/html/logd/common.php on line 61 [/qoute]

und hier ist mal der Code:
[php]<?php
/* Scriptet by °*Amerilion*°
special THX to Hadirel http://www.hadirelnet.ch and to FLY */

require_once "common.php";
if (!isset($session)) exit();
page_header("Alte Frau");
$min=e_rand(1,2);
$ming=e_rand(200,750);
$minga=e_rand(2000,2500,3000) ;
if($_GET[op]==""||$_GET[op]=="search"){
output("Während du den Wald durchziehst endeckst neben einen kleinen Bach");
output("Ein seltsam windschief Haus welches aus groben Steinen erbaut wurde");
output("die langsam von Moos bedeckt wird. du überlegst noch ob du hineingehen");
output("sollst als sich die Morsche Holztür knarend öffnet. Du blickst in das");
output("runzelige Geschicht einer alten Frau.");
output("`#Hörst du mir bitte mal zu?") ;
output("Nun stehst du vor der Wahl ihr weiter zuzuhören oder aber weiterzugehen") ;
addnav("Zuhören","forest.php?op=Zuhoeren");
addnav("Weitergehen","forest.php?op=Weitergehen");
$session[user][specialinc]="altefrau.php"; }

if($_GET[op]=="Weitergehen"){
output("Du stehst vor der Wahl nach links oder nach rechst zu gehen");
$session[user][specialinc]="altefrau.php";
addnav("Rechts","forest.php?op=Rechts");
addnav("Links","forest.php?op=Links");}


if($_GET[op]=="Rechts"){
$min=e_rand(1,3);
$ming=e_rand(200,750);
switch(e_rand(1,2,3)){
case 1:
$session[user][turns]-=$min;
break;
case 2:
$session[user][gold]-=$ming;
$session[user][turns]-=$min;
output("Du gehst nach rechts und fällst über einen Stein.Dabei verlierst du");
output("etwas Gold und liegst einige Zeit auf den Boden.");
break;
case 3:
$session[user][gems]+=$min;
$session[user][turns]-=$min;
output("Du findest einen kleinen Beutel mit kostbaren Edelsteinen") ;
break;}
}

if($_GET[op]=="Links"){
$min=e_rand(1,3);
$ming=e_rand(200,750);
switch(e_rand(1,3)){

case 1:
$session[user][turns]-=$min;
break;
case 2:
$session[user][gold]+=$ming;
$session[user][turns]-=$min;
output("Du gehst nach rechts und fällst über einen Stein.Dabei findest du");
output("etwas Gold aud den Boden.");
break;
case 3:
$session[user][gems]-=$min;
$session[user][turns]-=$min;
output("Du bemerkst das dir ein paar Edelsteine verlorens hast");
break;}
}

if($_GET[op]=="Zuhoeren"){
output("`#Wie schön sonst rennen viele aus Angst das ich eine Hexe bin weg...`n`n`^");
switch(e_rand(1,3)){
case 1:
case 2:
output("`#und es ist dein Pech das du das nicht getan hast! `~R`4a`~b`4a`~n`4t`~i`4c`~u`4s!!!") ;
output("Ein Blitz rast aus der Handfläche der Frau auf dich zu und tötet dich!") ;
$session[user][alive]=false;
$session[user][hitpoints]=0;
$session[user][gold]=0;
$session[user][experience]*0.97;
addnews($session[user][name]." starb durch die Hand einer alten Frau");
addnav("Tägliche News","news.php");
break;
case 3:
output("`#dabei suche ich nur jemand der meinen Abenteuer lauscht.");
output("Wirst du ihr zuhören oder in den Wald zurückkehren?");
$session[user][specialinc]="altefrau.php";
addnav("Lauschen","forest.php?op=Weiter");
addnav("Zurück","forest.php?op=Weitergehen");
break;}
}

if($_GET[op]=="Weiter"){
$min=e_rand(1,2);

$minga=e_rand(2000,2500,3000) ;
output("`#Wie schön tritt bitte ein.");
output("Du verbringst eine Zeit bei der Frau in der gemütlichen Hütte und ");
output("lernst etwas. Außerdem gibt sie dir etwas ihrer Reichtümer.") ;
$session[user][gold]+=$minga;
$session[user][turns]-=$min;
$session[user][experience]*1.05;
addnews($session[user][name]." bekam Reichtum und Wissen im Wald");
$session[user][specialinc]="";
addnav("Zum Wald","forest.php") ;
}
?> [/php]

Autor:  Deathbringer [ Sa 25 Sep, 2004 12:55 ]
Betreff des Beitrags: 

wenn ich das richtig sehe dann sieht das so aus als ob du kein special verzeichniss hast.erstelle eins pack diese datei dort hinein und dann dürfte das gehen

Autor:  anpera [ Sa 25 Sep, 2004 15:02 ]
Betreff des Beitrags: 

Die Fehlermeldung konnte ich nicht nachvollziehen, schätze aber, dass altefrau.php nicht ins richtige Verzeichnis (special) hochgeladen wurde (Failed opening 'special/altefrau.php' for inclusion (include_path='.:/usr/share/php')), oder altefrau.php irgendwo falsch eingebunden wurde. (Specials lassen sich nicht einfach so irgendwo verlinken.)

Ansonsten hab ich noch ein paar Kleinigkeiten gefunden:
  • Finde und lösche:
    require_once "common.php";

    Die common.php wird bei Specials bereits durch forest.php eingebunden.
  • Finde:
    switch(e_rand(1,2,3)){

    Ersetze es durch:
    switch(e_rand(1,3)){

    Finde:
    $minga=e_rand(2000,2500,3000) ;

    Die Funktion e_rand() erlaubt nur 2 Parameter. Wenn du zufällig zwischen 2000, 2500 und 3000 wählen lassen willst, solltest du folgende Zeile verwenden:

    $minga=500*e_rand(4,6);
  • Bei op="Rechts" erscheint im case 1 kein erklärender Text. Das selbe gilt für case 1 bei op="Links".
  • Allgemein fehlt überall, wo etwas abgezogen wird, eine Abfrage, ob so viel überhaupt abgezogen werden kann.
  • Außerdem sollte das nochmal jemand gründlich auf Rechtschreibfehler durchsuchen ;)

Autor:  Gast [ Sa 25 Sep, 2004 16:03 ]
Betreff des Beitrags: 

Zitat:
Allgemein fehlt überall, wo etwas abgezogen wird, eine Abfrage, ob so viel überhaupt abgezogen werden kann.


Frage... wie mach ich solche Abfragen??? Hadi und Fly haben mich gar net drauf hingewiesen...


Zitat:
Finde und lösche:
require_once "common.php";

Die common.php wird bei Specials bereits durch forest.php eingebunden.

Dafür muss ich Hadi haun :lol: der hatt mir gesagt das die immer rein muss ^^


Ach die Rechtscheibfehler sind beabsichtig ;-) so merk ich ob ihr das gut gelesen habt :D ...

Ich habe bisher kein eigenes LOGD weil ich das mit Apache noch net richtig hinbekommen habe und kann deshalb auch net richtig üben... wie gesagt das ist erst mein zweiter versich

Autor:  Gargamel [ Sa 25 Sep, 2004 19:42 ]
Betreff des Beitrags: 

Anonymous hat geschrieben:
Zitat:
Allgemein fehlt überall, wo etwas abgezogen wird, eine Abfrage, ob so viel überhaupt abgezogen werden kann.


Frage... wie mach ich solche Abfragen??? Hadi und Fly haben mich gar net drauf hingewiesen...


8) Glaub ich Dir, die machen das ja auch nie.... :D


Beispiele für Hitpoints:

$this->bbcode_second_pass_code('', 'if ( $session['user']['hitpoints'] > 5 ) {
$session['user']['hitpoints']-=5;
output("Ich zieh Dir 5 ab, weil Du mehr als 5 hattest.");
}')

oder

$this->bbcode_second_pass_code('', 'if ( $session['user']['hitpoints'] > 5 ) {
$session['user']['hitpoints']-=5;
output("Ich zieh Dir 5 ab, weil Du mehr als 5 hattest.");
} else {
$session['user']['hitpoints']=1;
output("Du hattest 1 bis 5 LP, jetzt nur noch 1.");
}')

oder

$this->bbcode_second_pass_code('', 'if ( $session['user']['hitpoints'] > 5 ) {
$session['user']['hitpoints']-=5;
output("Ich zieh Dir 5 ab, weil Du mehr als 5 hattest.");
}
elseif ( $session['user']['hitpoints'] == 1 ) {
output("Deinen LP kannste behalten!");
}
else {
$session['user']['hitpoints']=1;
output("Du hattest 2 bis 5 LP, jetzt nur noch 1.");
}')

Autor:  Amerilion [ Sa 25 Sep, 2004 20:21 ]
Betreff des Beitrags: 

Ne frage:
Ich will das so haben das wenn der User mehr Gold hatt als die Variable $min er $min abgezogen bekommt is der code so ???

[php]if ( $session['user']['gold'] > $min ) {
$session['user']['gold']-=$min;
output("Du verlierst ein Teil deine Goldes.");
}[/php]

Autor:  Meteora [ Sa 25 Sep, 2004 21:01 ]
Betreff des Beitrags: 

jap konkret korrekt ;)



sonst geht auch:

$this->bbcode_second_pass_code('', '
if ( $session['user']['gold'] >=$min ) {
$session['user']['gold']-=$min;
output("Du verlierst ein Teil deine Goldes.");
}
')
mfg

Autor:  Gwydion [ Sa 25 Sep, 2004 22:51 ]
Betreff des Beitrags: 

Würde ich aber anders machen ... wenn ein Spieler weniger als $min hat, dann verliert er halt wenigstens alles was er hat *gemeinbin*

[php]
if ( $session['user']['gold'] >= $min ) {
$session['user']['gold']-=$min;
output("Du verlierst ein Teil deine Goldes.");
} else {
$session['user']['gold'] = 0;
output("Du verlierst alles Gold.");
}
[/php]

Autor:  Amerilion [ So 26 Sep, 2004 10:06 ]
Betreff des Beitrags: 

Mhh also ich habe ja gesagt das ich ein nOOb bin... ich bräuchte noch ein paar erklärung für Befehle die ich zwar verwende aber nicht weiß was genau sie bewirken und dann hätte ich noch ein paar fragen:

1.Was genau bewirkt
[php]e_rand(1,2)[/php]
bzw.
[php]e_rand(1,X)[/php] X=irgendeine andere Zahl

2.Wie ist das kann man in einen switch befehl noch ein switch befehl einbauen?

3.Apropos switch befehle... wie ist das wenn ich da 3 sachen habe und er eins wählen soll ???


mhhh denn rest den ich fragen wollte habe ich vergessen ^^ werde ich schreiben wenn er mir wieder einfällt

Autor:  Meteora [ So 26 Sep, 2004 10:29 ]
Betreff des Beitrags: 

1) e_rand bedeutet, dass man zufällig aus X undX auswählt.

2) Jap das sollte gehn

3) Hmm wie meinst du das?

Autor:  Amerilion [ So 26 Sep, 2004 10:35 ]
Betreff des Beitrags: 

Also bei der aphrodite.php steht da
[php] switch(e_rand(1,10)){ [/php]
und es sind dann 10 möglichkeiten gegeben... warum ist nur jede 2 beschriftet ???

und noch was was mir eingefallen ist
Wofür steht das `n`n`^ am ende eines outputs und wofür das `n am anfang eines outputs

Autor:  Gargamel [ So 26 Sep, 2004 12:23 ]
Betreff des Beitrags: 

Amerilion hat geschrieben:
Also bei der aphrodite.php steht da
[php] switch(e_rand(1,10)){ [/php]
und es sind dann 10 möglichkeiten gegeben...

stimmt.
Amerilion hat geschrieben:
warum ist nur jede 2 beschriftet ???

Hä? Hat diese Frage einen Zusammenhang mit switch? :???:


Amerilion hat geschrieben:
und noch was was mir eingefallen ist
Wofür steht das `n`n`^ am ende eines outputs und wofür das `n am anfang eines outputs

`n erzwingt eine nächste Zeile im Output.


Zum switch: Gerade einem noob schadet es wirklich nicht, mal im netz zu suchen.... google: php switch
Oder gleich mal in ein Manual gucken, z.B. http://de3.php.net/manual/de/control-structures.switch.php

Autor:  Gwydion [ So 26 Sep, 2004 12:41 ]
Betreff des Beitrags: 

Amerilion hat geschrieben:
Also bei der aphrodite.php steht da
[php] switch(e_rand(1,10)){ [/php]
und es sind dann 10 möglichkeiten gegeben... warum ist nur jede 2 beschriftet ???


Ok, einfache Antwort:

[php]
switch(e_rand(1,10)){
case 1:
case 2:
// Wenn Ergebnis 1 oder 2 dann ....
//Blabla Code
break;
case 3:
case 4:
// Wenn Ergebnis 3 oder 4 dann ....
//Blabla Code
break;
case 5:
// Wenn Ergebnis 5 dann ....
//Blabla Code
break;
case 6:
// Wenn Ergebnis 6 dann ....
//Blabla Code
break;
case 7:
case 8:
case 9:
case 10:
// Wenn Ergebnis 7,8,9 oder 10 dann ....
//Blabla Code
break;
}
[/php]

Der Scriptautor erhöht einfach für gewisse Ergebnisse die Chancen, sie zu kriegen.

Zitat:
und noch was was mir eingefallen ist
Wofür steht das `n`n`^ am ende eines outputs und wofür das `n am anfang eines outputs


Das heißt nichts anderes als "neue Zeile".

Gruß,
Gwydion

[EDIT] Gargamel war schneller ^^

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