Hallo,
zur Zeit möchte ich einen Java Quelltext in PHP umschreiben, aber in Java gibt es einen Befehl namens "parseInt".
Leider habe ich einen Befehl nicht PHP gefunden, der diesem entspricht. Es zeigte mir immer nur wieder "parse_str" an, aber das wird es wohl kaum sein.
Kennt jemand den Befehl in PHP dafür ?
Quelltextabänderung von Java zu PHP !
gepostet vor 18 Jahre, 11 Monate von Kelturio
gepostet vor 18 Jahre, 11 Monate von Mudder
Schau dir mal diese Funktionen an: http://www.php.net/manual/de/ref.var.php
mit intval() kannst du z.B. Variablen in Integerwerte umwandeln und mit is_int() prüfen obs eine Ganzzahl ist..
mit intval() kannst du z.B. Variablen in Integerwerte umwandeln und mit is_int() prüfen obs eine Ganzzahl ist..
gepostet vor 18 Jahre, 11 Monate von Kelturio
Danke für die Hilfestellung.
Ich habe da noch anderes von Java zu PHP umgeschrieben, aber bin mir nicht sicher ob das stimmt:
Java:
element = document.getElementById( 'timer' + i );
PHP:
$element = DOMDocument->getElementById('timer' + i);
Java:
element.firstChild.data = 'Fertig';
PHP:
$element->first_child = 'Fertig';
Java:
array = element.firstChild.data.split( ':' );
PHP:
$array = chunk_split($element, 2, ':');
Ich habe da noch anderes von Java zu PHP umgeschrieben, aber bin mir nicht sicher ob das stimmt:
Java:
element = document.getElementById( 'timer' + i );
PHP:
$element = DOMDocument->getElementById('timer' + i);
Java:
element.firstChild.data = 'Fertig';
PHP:
$element->first_child = 'Fertig';
Java:
array = element.firstChild.data.split( ':' );
PHP:
$array = chunk_split($element, 2, ':');
gepostet vor 18 Jahre, 11 Monate von Mudder
Einfachste Methode um zu testen obs funktioniert ist nen Seitenaufruf.. PHP is ja nich so das man das erst kompillieren muss.
Was sich mir aber etwas als Frage aufkommt ist, wiso du DOMDocument verwendest.. bzw. was du damit wirklich realisieren willst.
Die DOM-Funktionen sind primär für XML-Dateien gedacht, daher stellt sich für mich auch ein wenig die Frage ob du damit wirklich eine XML-Datei auswerten/verarbeiten willst...
Ansonsten zu den Funktionen..
1. scheint richtig..
2. ist falsch! first_child gibts nicht und firstchild ist nur readonly.. sprich du kannst den Wert nur auslesen.
3. Ist soweit richtig.. insofern du $element in 2 Zeichenlange mit : angehängtes Array verwandeln willst..
ABCDEFGHIJ => array("AB:", "CD:", "EF:", "GH:", "IJ:")
Was sich mir aber etwas als Frage aufkommt ist, wiso du DOMDocument verwendest.. bzw. was du damit wirklich realisieren willst.
Die DOM-Funktionen sind primär für XML-Dateien gedacht, daher stellt sich für mich auch ein wenig die Frage ob du damit wirklich eine XML-Datei auswerten/verarbeiten willst...
Ansonsten zu den Funktionen..
1. scheint richtig..
2. ist falsch! first_child gibts nicht und firstchild ist nur readonly.. sprich du kannst den Wert nur auslesen.
3. Ist soweit richtig.. insofern du $element in 2 Zeichenlange mit : angehängtes Array verwandeln willst..
ABCDEFGHIJ => array("AB:", "CD:", "EF:", "GH:", "IJ:")
gepostet vor 18 Jahre, 11 Monate von Chojin
@Kelturio: Vergiss es...
Du kannst kein Timerscript in PHP schreiben weil das schlichtweg keinen Sinn macht und nicht auf der Seite ablaufen wird...
Du sollst lediglich die Zeiten die das timerscript benutzen soll per PHP in das JAVASCRIPT einbauen.
Bitte überleg dir nochmal gut was die einzelnen Anwendungsschichten (javascript, html, php, datenbank) in deinem spiel machen und wie sie interagieren. Hier musst du umbedingt einen durchblick bekommen sonst wird der rest auch nichts.
reg4rds
chojin
Du kannst kein Timerscript in PHP schreiben weil das schlichtweg keinen Sinn macht und nicht auf der Seite ablaufen wird...
Du sollst lediglich die Zeiten die das timerscript benutzen soll per PHP in das JAVASCRIPT einbauen.
Bitte überleg dir nochmal gut was die einzelnen Anwendungsschichten (javascript, html, php, datenbank) in deinem spiel machen und wie sie interagieren. Hier musst du umbedingt einen durchblick bekommen sonst wird der rest auch nichts.
reg4rds
chojin
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ Chojin:
Ach so, alles klar, jetzt versteh ich das alles.
Ich dachte nämlich, dass ich den kompletten Counter in PHP schreiben soll, da ja der User sonst cheaten könnte, da bei Java Script nicht wirklich alles versteckt ist.
Gut, dann mache ich es nun so:
Der User klickt auf Ausbauen, womit das aktuelle Datum und die aktuelle Zeit ausgelesen wird (Zeit des Klicks). Dann wird die Ausbauzeit dieser Zeit hinzu addiert und in der DB abgespeichert. Dann wird die Zeit, falls der User die Seite mal verlässt und wieder neu betritt, mit der aktuellen Zeit verglichen und falls ein Rest ist, wird dieser weiter runtergezählt, falls nicht -> Fertig.
Also behalte ich mein Countdownscript in Java und lese mir die notwendigen Daten nur mittels PHP aus, die in der DB etc. vorliegen.
Habe ich das so richtig verstanden ?
Ach so, alles klar, jetzt versteh ich das alles.
Ich dachte nämlich, dass ich den kompletten Counter in PHP schreiben soll, da ja der User sonst cheaten könnte, da bei Java Script nicht wirklich alles versteckt ist.
Gut, dann mache ich es nun so:
Der User klickt auf Ausbauen, womit das aktuelle Datum und die aktuelle Zeit ausgelesen wird (Zeit des Klicks). Dann wird die Ausbauzeit dieser Zeit hinzu addiert und in der DB abgespeichert. Dann wird die Zeit, falls der User die Seite mal verlässt und wieder neu betritt, mit der aktuellen Zeit verglichen und falls ein Rest ist, wird dieser weiter runtergezählt, falls nicht -> Fertig.
Also behalte ich mein Countdownscript in Java und lese mir die notwendigen Daten nur mittels PHP aus, die in der DB etc. vorliegen.
Habe ich das so richtig verstanden ?
gepostet vor 18 Jahre, 11 Monate von Chojin
exakt
gepostet vor 18 Jahre, 11 Monate von HSINC
btw gewöhn dir auch an sachen exakt zu benennen. so geht es hier um javascript und nicht um java
gepostet vor 18 Jahre, 11 Monate von Kelturio
Okay, bis jetzt funktioniert alles, aber ein Problem in Java Script habe ich da noch.
Und zwar habe ich eine Fuktion geschrieben, der eine bestimmte Aktion ausführen soll, wenn ein Button geklickt wurde, aber es kommt immer die Fehlermeldung "document.Ausbau" ist Null oder kein Objekt.
function Bauabbruch () {
for (i = 1; i <= 2; i++) {
if ((document.Ausbau[i].Ausbauen[i].value == 'Abbrechen') && (document.Ausbau[i].Ausbauen[i].onclick))
location.href="counter.php"
}
}
Edit:
Alles klar, hab das + vergessen.
Und zwar habe ich eine Fuktion geschrieben, der eine bestimmte Aktion ausführen soll, wenn ein Button geklickt wurde, aber es kommt immer die Fehlermeldung "document.Ausbau" ist Null oder kein Objekt.
function Bauabbruch () {
for (i = 1; i <= 2; i++) {
if ((document.Ausbau[i].Ausbauen[i].value == 'Abbrechen') && (document.Ausbau[i].Ausbauen[i].onclick))
location.href="counter.php"
}
}
Edit:
Alles klar, hab das + vergessen.
gepostet vor 18 Jahre, 11 Monate von KoMtuR
Versuche am get die getElement... Funktionen vom document zu nutzen. Ist mehr uptodate und vorallem Unterstützen die Browser diese Variante ohne Probleme
gepostet vor 18 Jahre, 11 Monate von Kelturio
Hmm, irgendwie passiert gar nichts, wenn ich auf einen Button klicke, der Abbrechen heißt.
function Bauabbruch () {
for (i = 0; i <= 2; i++) {
if ((document.getElementsByName("Ausbauen")+[i].value == 'Abbrechen') && (document.getElementsByName("Ausbauen")+[i].onclick))
location.href = "counter.php";
}
}
function Bauabbruch () {
for (i = 0; i <= 2; i++) {
if ((document.getElementsByName("Ausbauen")+[i].value == 'Abbrechen') && (document.getElementsByName("Ausbauen")+[i].onclick))
location.href = "counter.php";
}
}
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
document.getElementsByName("Ausbauen")+.value <- zumindest kommt bei mir hier das Grauen! Evtl habe ich JS nicht verstanden.
Auf jeden Fall würde ich dir empfehlen dich zuerst in die Grundzüge der JS-Programmierung einzusarbeiten, bevor du irgendwelche Brocken aufschnappst und dir das Schritt für Schritt zusammenreimst.
Es gibt genug Bücher über JS.
Auf jeden Fall würde ich dir empfehlen dich zuerst in die Grundzüge der JS-Programmierung einzusarbeiten, bevor du irgendwelche Brocken aufschnappst und dir das Schritt für Schritt zusammenreimst.
Es gibt genug Bücher über JS.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ja, stimmt, sry. Ich hatte vergessen den hinteren Teil von meinem alten Quelltext zu löschen. ^^
So geht es jetzt einwandfrei.
function Bauabbruch (element) {
if ((document.getElementsByName("Ausbauen")[element].value == 'Abbrechen') && (document.getElementsByName("Ausbauen")[element].onclick))
location.href = 'counter.php';
}
Genauso in der Art habe ich es nun mit meinem Counter gemacht, aber es gibt immer die Fehlermeldung aus, dass "document.getElementById()[]" Null oder kein Objekt ist. Wieso ?
var EndTime = 6;
function Countdown (element) {
if (EndTime > 0){
EndTime = EndTime - 1;
min = Math.floor(EndTime / 60);
sec = EndTime - (min * 60);
if (min > 0 ) {
var h = Math.floor(min / 60);
min = min - (h * 60);
} else
h = 0;
if (min < 10 )
minA = '0' + min;
else
minA = '' + min;
if (sec < 10)
secA = '0' + sec;
else
scA = '' + sec;
document.getElementById("zeit")[element].innerHTML = h + ':' + minA + ':' + secA;
setTimeout("Countdown(element)", 1000);
} else {
document.getElementById("zeit")[element].innerHTML = 'Fertig';
setTimeout("location.href = 'counter.php'", 1000);
}
}
So geht es jetzt einwandfrei.
function Bauabbruch (element) {
if ((document.getElementsByName("Ausbauen")[element].value == 'Abbrechen') && (document.getElementsByName("Ausbauen")[element].onclick))
location.href = 'counter.php';
}
Genauso in der Art habe ich es nun mit meinem Counter gemacht, aber es gibt immer die Fehlermeldung aus, dass "document.getElementById()[]" Null oder kein Objekt ist. Wieso ?
var EndTime = 6;
function Countdown (element) {
if (EndTime > 0){
EndTime = EndTime - 1;
min = Math.floor(EndTime / 60);
sec = EndTime - (min * 60);
if (min > 0 ) {
var h = Math.floor(min / 60);
min = min - (h * 60);
} else
h = 0;
if (min < 10 )
minA = '0' + min;
else
minA = '' + min;
if (sec < 10)
secA = '0' + sec;
else
scA = '' + sec;
document.getElementById("zeit")[element].innerHTML = h + ':' + minA + ':' + secA;
setTimeout("Countdown(element)", 1000);
} else {
document.getElementById("zeit")[element].innerHTML = 'Fertig';
setTimeout("location.href = 'counter.php'", 1000);
}
}
gepostet vor 18 Jahre, 11 Monate von KoMtuR
Weil es keine mehrfachen Elemente laut standards gibt, die die gleiche ID besitzen. getElementById(...) liefert halt nur 1 Element zurück.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Deswegen übergebe ich dir Funktion ja auch "element" bei dem einen Buttonklick ist es die 0 und bei dem anderen die 1.
Die Id kommt zwar nur einmal vor, aber so kann ich auf das jeweilige Array Element drauf zugreifen. So wäre z.b. das erste Element mit der Id "zeit" über document.getElementById("zeit")[0] aufrufbar.
Bei meiner Bauabbruchfunktion klappt dies ja auch.
Ich habe es auch schon mittels document.getElementsByName ausprobiert, aber da klappt es auch nicht in der Counterfunktion.
Die Id kommt zwar nur einmal vor, aber so kann ich auf das jeweilige Array Element drauf zugreifen. So wäre z.b. das erste Element mit der Id "zeit" über document.getElementById("zeit")[0] aufrufbar.
Bei meiner Bauabbruchfunktion klappt dies ja auch.
Ich habe es auch schon mittels document.getElementsByName ausprobiert, aber da klappt es auch nicht in der Counterfunktion.
gepostet vor 18 Jahre, 11 Monate von KoMtuR
getElementById('zeit')[0] ist das erste und einzigste Element in dem nicht vorhandenem Array.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ja, aber bei der Bauabbruchfunktion habe ich es doch genauso gemacht und es geht.
Was muss ich dann machen, damit es auch in der Countdownfunktion geht ?
Bei
http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id
wurde es doch auch so beschrieben, wenn man bei getElementsByName nachliest. :wink:
Was muss ich dann machen, damit es auch in der Countdownfunktion geht ?
Bei
http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id
wurde es doch auch so beschrieben, wenn man bei getElementsByName nachliest. :wink:
gepostet vor 18 Jahre, 11 Monate von KoMtuR
du weißt schon, dass getElementById und getElementsByName unterschiedliche Funktionen sind? schau dir am besten mal die Namen Dieser an:
getElementById
getElementsByName
getElementById
getElementsByName
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ich weiß, ich habe es ja auch schon mit getElementsByName versucht, aber da kommt der selbe Fehler.
gepostet vor 18 Jahre, 11 Monate von Kallisti
Der Betreff dieses Threads macht mich jedes mal, wenn ich es sehe, krank... ARG!!!
getelementsbyNAME tut genau was es sagt - es gibt dir die Elemente mit eben genau diesem _NAMEN_. D.h. wenn du also versch. Elemente hast und diese durchnummerierst ("foo1, foo2"), muss auch das "name" attribut der Javascript Funktion den entsprechenden Namen entsprechen ("foo1, foo2")....
Ist das so schwer? Wenn ja, lass es bitte ganz sein... Das ist echt nicht auszuhalten.
Fang mit etwas kleinem an und nicht direkt mit einem eigenen Browsergame. Schreib Calculatoren o.ae. fuer existierende Spiele... Das wird doch sowieso nichts.
getelementsbyNAME tut genau was es sagt - es gibt dir die Elemente mit eben genau diesem _NAMEN_. D.h. wenn du also versch. Elemente hast und diese durchnummerierst ("foo1, foo2"), muss auch das "name" attribut der Javascript Funktion den entsprechenden Namen entsprechen ("foo1, foo2")....
Ist das so schwer? Wenn ja, lass es bitte ganz sein... Das ist echt nicht auszuhalten.
Fang mit etwas kleinem an und nicht direkt mit einem eigenen Browsergame. Schreib Calculatoren o.ae. fuer existierende Spiele... Das wird doch sowieso nichts.
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ Kallisti:
Du scheinst da etwas falsch zu verstehen, denn ich habe es so gemacht, dass es eigentlich gehen müsste.
Hier das Hauptformular:
Produktionsdauer: 00m 05s
onclick="javascript:Bauabbruch('0'); javascript:Countdown('0'); this.form.Ausbauen.value = 'Abbrechen'">
Produktionsdauer: 00m 05s
onclick="javascript:Bauabbruch('1'); javascript:Countdown('1'); this.form.Ausbauen.value = 'Abbrechen'">
Und hier die Datei ausbauen.js:
var EndTime = 6;
function Countdown (element) {
if (EndTime > 0){
EndTime = EndTime - 1;
min = Math.floor(EndTime / 60);
sec = EndTime - (min * 60);
if (min > 0 ) {
var h = Math.floor(min / 60);
min = min - (h * 60);
} else
h = 0;
if (min < 10 )
minA = '0' + min;
else
minA = '' + min;
if (sec < 10)
secA = '0' + sec;
else
secA = '' + sec;
document.getElementsByName("zeit")[element].innerHTML = h + ':' + minA + ':' + secA;
setTimeout("Countdown(element)", 1000);
} else {
document.getElementsByName("zeit")[element].innerHTML = 'Fertig';
setTimeout("location.href = 'counter.php'", 1000);
}
}
function Bauabbruch (element) {
if ((document.getElementsByName("Ausbauen")[element].value == 'Abbrechen') && (document.getElementsByName("Ausbauen")[element].onclick))
location.href = 'counter.php';
}
So, und da die Funtkion Bauabbruch auch sehr gut funktioniert, müsste es doch im Counter auch klappen.
Du scheinst da etwas falsch zu verstehen, denn ich habe es so gemacht, dass es eigentlich gehen müsste.
Hier das Hauptformular:
Produktionsdauer: 00m 05s
onclick="javascript:Bauabbruch('0'); javascript:Countdown('0'); this.form.Ausbauen.value = 'Abbrechen'">
Produktionsdauer: 00m 05s
onclick="javascript:Bauabbruch('1'); javascript:Countdown('1'); this.form.Ausbauen.value = 'Abbrechen'">
Und hier die Datei ausbauen.js:
var EndTime = 6;
function Countdown (element) {
if (EndTime > 0){
EndTime = EndTime - 1;
min = Math.floor(EndTime / 60);
sec = EndTime - (min * 60);
if (min > 0 ) {
var h = Math.floor(min / 60);
min = min - (h * 60);
} else
h = 0;
if (min < 10 )
minA = '0' + min;
else
minA = '' + min;
if (sec < 10)
secA = '0' + sec;
else
secA = '' + sec;
document.getElementsByName("zeit")[element].innerHTML = h + ':' + minA + ':' + secA;
setTimeout("Countdown(element)", 1000);
} else {
document.getElementsByName("zeit")[element].innerHTML = 'Fertig';
setTimeout("location.href = 'counter.php'", 1000);
}
}
function Bauabbruch (element) {
if ((document.getElementsByName("Ausbauen")[element].value == 'Abbrechen') && (document.getElementsByName("Ausbauen")[element].onclick))
location.href = 'counter.php';
}
So, und da die Funtkion Bauabbruch auch sehr gut funktioniert, müsste es doch im Counter auch klappen.
gepostet vor 18 Jahre, 11 Monate von Kallisti
Und was spricht da gegen z.B. verschiedene, eindeutige IDs?
(abgesehen davon, dass "name" auf divs iirc nicht erlaubt ist.. - zumindest in xhtml, ka wie es in 4 ist.).
(abgesehen davon, dass "name" auf divs iirc nicht erlaubt ist.. - zumindest in xhtml, ka wie es in 4 ist.).
gepostet vor 18 Jahre, 11 Monate von Chojin
oweia Kallisti beschwert sich über das niveau im Anfänger forum...
Also es stimmt schon, dass die fragen die Kelturio hier stellt nicht wirklich was mit Browsergames zu tun haben oder dass er die struktur, der so ein Browsergame folgen sollte, nicht verstanden hat... aber dann sollte mal wer in die richtung gehen und es ihm erklären. :roll:
So... also vergiss Javascript, den ganzen mist. Das ist nur die client seite. Alles was programmierung und spiellogik ist läuft auf der Serverseite im PHP ab. Du musst kein einziges javascript ausführen um ein gebäude bauen zu lassen oder das abzubrechen. Weil das passiert alles auf dem server wenn der user eine bestimmte seite aufmacht und dabei bestimmte daten an den server übergibt.
Schau dir zuerst an wie so ein spiel aufgebaut ist, bevor du weiter wild rumprogrammierst und die nerven vom armen Kallisti noch total kapput machst
reg4rds
chojin
Also es stimmt schon, dass die fragen die Kelturio hier stellt nicht wirklich was mit Browsergames zu tun haben oder dass er die struktur, der so ein Browsergame folgen sollte, nicht verstanden hat... aber dann sollte mal wer in die richtung gehen und es ihm erklären. :roll:
So... also vergiss Javascript, den ganzen mist. Das ist nur die client seite. Alles was programmierung und spiellogik ist läuft auf der Serverseite im PHP ab. Du musst kein einziges javascript ausführen um ein gebäude bauen zu lassen oder das abzubrechen. Weil das passiert alles auf dem server wenn der user eine bestimmte seite aufmacht und dabei bestimmte daten an den server übergibt.
Schau dir zuerst an wie so ein spiel aufgebaut ist, bevor du weiter wild rumprogrammierst und die nerven vom armen Kallisti noch total kapput machst
reg4rds
chojin
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ Chojin:
Also langsam blick ich net mehr durch, denn einige zu mir sagen, dass ich den Counter und so in Java machen muss, um ihm dann nur noch die Daten wie Zeit etc. von der DB zuschicken muss und andere sagen wieder, dass ich alles in PHP machen soll.
Dieser Counter soll ja erstmal nur ein Test sein. ^^
Wenn er geht implementiere ich ihn so, dass er seine Daten aus der DB mittels PHP bekommt.
Also langsam blick ich net mehr durch, denn einige zu mir sagen, dass ich den Counter und so in Java machen muss, um ihm dann nur noch die Daten wie Zeit etc. von der DB zuschicken muss und andere sagen wieder, dass ich alles in PHP machen soll.
Dieser Counter soll ja erstmal nur ein Test sein. ^^
Wenn er geht implementiere ich ihn so, dass er seine Daten aus der DB mittels PHP bekommt.
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
Es ist immer noch JavaScript und nicht Java!
gepostet vor 18 Jahre, 11 Monate von Crafty-Catcher
Original von Kelturio
@ Chojin:
Also langsam blick ich net mehr durch, denn einige zu mir sagen, dass ich den Counter und so in Java machen muss, um ihm dann nur noch die Daten wie Zeit etc. von der DB zuschicken muss und andere sagen wieder, dass ich alles in PHP machen soll.
Dieser Counter soll ja erstmal nur ein Test sein. ^^
Wenn er geht implementiere ich ihn so, dass er seine Daten aus der DB mittels PHP bekommt.
Der JavaScript Counter ist nur ein Zusatzfeature, damit man die Zeit auf der Webseite runterzählen sieht. (Der hat aber im weiteren Sinne nichts mit der eigentlichen Berechnung zu tun.)
Aber der eigentliche "Counter" was kein wirklicher Counterist, da er nur zwei Zeiten vergeleicht wird in PHP geschrieben und die Werte in der DB gespeichert. Mit PHP werden die Zeit werde verglichen und für den Fall der Fälle DB anweisungen ausgeführt (z.B. Bau abgeschlossen)
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ Crafty-Catcher:
Genau, das mache ich ja auch noch, da es bissl einfacher geht als dieser Counter in JS.
Aber ich möchte erst einmal das "Sichtbare" hinbekommen und dieses praktisch dann als Stütze nutzen.
Genau, das mache ich ja auch noch, da es bissl einfacher geht als dieser Counter in JS.
Aber ich möchte erst einmal das "Sichtbare" hinbekommen und dieses praktisch dann als Stütze nutzen.
gepostet vor 18 Jahre, 11 Monate von Crafty-Catcher
Original von Kelturio
@ Crafty-Catcher:
Genau, das mache ich ja auch noch, da es bissl einfacher geht als dieser Counter in JS.
Aber ich möchte erst einmal das "Sichtbare" hinbekommen und dieses praktisch dann als Stütze nutzen.
Das ist eine merwürdige Problemlösungsweise, weil das "nicht sichtbare" ja eigentlich viel wichtiger ist. Da das der ausführende Teil ist. Die grafische Aufarbeitung kann man ja immernoch nachher erledigen oder sehe ich das falsch?
gepostet vor 18 Jahre, 11 Monate von Kelturio
Naja, ich habe eben ein paar Problemchen bei dem Sichtbaren.
Wie ich das "Unsichtbare" löse und zugleich das Wichtige, habe ich ja schon auf Seite 2 hier beschrieben, aber das stelle ich erstmal hinten an, da es wie gesagt einfacher ist, als das "Sichtbare", meiner Meinung nach. ^^
Wie ich das "Unsichtbare" löse und zugleich das Wichtige, habe ich ja schon auf Seite 2 hier beschrieben, aber das stelle ich erstmal hinten an, da es wie gesagt einfacher ist, als das "Sichtbare", meiner Meinung nach. ^^
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
Mal als Nebenfrage:
if ( document.getElementsByName("Ausbauen")[element].onclick )...
Was soll das sein? Du fragst ab, ob es eine Funktion onClick gibt? Oder hat dies einen tieferen Sinn?
Wie gesagt, arbeite zuerst mal ordentlich JavaScript von vorne bis hinten durch und dann kann man sich um die konkreten Probleme kümmern. Mir ist deine komplette Funktion etwas unschlüssig.
if ( document.getElementsByName("Ausbauen")[element].onclick )...
Was soll das sein? Du fragst ab, ob es eine Funktion onClick gibt? Oder hat dies einen tieferen Sinn?
Wie gesagt, arbeite zuerst mal ordentlich JavaScript von vorne bis hinten durch und dann kann man sich um die konkreten Probleme kümmern. Mir ist deine komplette Funktion etwas unschlüssig.
gepostet vor 18 Jahre, 11 Monate von Chojin
Original von TheUndeadable
Mir ist deine komplette Funktion etwas unschlüssig.
er will den counter starten ohne die seite neu zu laden >_<
und abbrechen ohne die seite neu zu laden >_
regÄrds
chojin
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ TheUndeadable:
Dies ist meine Bauabbruch Anweisung, welche kontrolliert: Wenn der Name des Buttons x = Abbrechen ist und wenn er zudem geklickt wurde, dann Bau x abbrechen.
Edit:
Genau Chojin. ^^
Dies ist meine Bauabbruch Anweisung, welche kontrolliert: Wenn der Name des Buttons x = Abbrechen ist und wenn er zudem geklickt wurde, dann Bau x abbrechen.
Edit:
Genau Chojin. ^^
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
> Wenn der Name des Buttons x = Abbrechen ist und wenn er zudem geklickt wurde, dann Bau x abbrechen.
<->
> if ( document.getElementsByName("Ausbauen")[element].onclick )...
?
Du willst mich verarschen, oder? Die Funktion wird doch nur aufgerufen, wenn du auf den Button geklickt hast!
EDIT:
LESEN!!!!!!
http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick
<->
> if ( document.getElementsByName("Ausbauen")[element].onclick )...
?
Du willst mich verarschen, oder? Die Funktion wird doch nur aufgerufen, wenn du auf den Button geklickt hast!
EDIT:
LESEN!!!!!!
http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ja, eben ! Was gibt es da jetzt nicht zu verstehen ?
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
if ( document.getElementsByName("Ausbauen")[element].onclick ) heißt, du überprüfst, ob es eine FUNKTION onClick gibt. Und JA, sie gibt es. Es ist ein Ereignis, sie gibt es IMMER, egal ob du da draufklickst oder nicht.
Also totaler Humbug!
Also totaler Humbug!
gepostet vor 18 Jahre, 11 Monate von Chojin
Kann ihm nicht einfach mal wer erklären das man einen baulink beispielsweise so:
macht!
reg4rds
chojin
Stall ausbauen
macht!
reg4rds
chojin
gepostet vor 18 Jahre, 11 Monate von Kelturio
Sry, aber ich gebe nur das wieder, was mir mein Lehrer auch beigebracht hat. -.-
Er hat gesagt, dass ich so prüfen soll, ob der Button den Namen hat und ob er geklickt wurde.
Und ich möchte wie gesagt erst einmal das "Optische" machen, danach das PHP Zeug, @ Chojin.
Es geht mir jetzt nur erst einmal ums Prinzip und dieser Counter soll ja auch nich ins BG einfließen.
Er hat gesagt, dass ich so prüfen soll, ob der Button den Namen hat und ob er geklickt wurde.
Und ich möchte wie gesagt erst einmal das "Optische" machen, danach das PHP Zeug, @ Chojin.
Es geht mir jetzt nur erst einmal ums Prinzip und dieser Counter soll ja auch nich ins BG einfließen.
gepostet vor 18 Jahre, 11 Monate von Kallisti
Warum denn allen scheiss per Javascript machen? Es reicht ein normaler Link mit GET request oder ein Formularbutton mit get oder post vollkommen aus. Du brauchst kein javascript fuer das "bauen".
Damit grenzt du nur user aus, die keines haben - an einer voellig unsinnigen Stelle (ausser die setzt komplett auf AJAX, was ich anhand des Threadverlaufes aber vollkommen ausschliesse).
Und nein, du brauchst event handler nicht "ueberpruefen", deshalb heissen die Dinger ja event handler und nicht interrupts. BAUEN waere eine javascript moeglichkeit.. oder auch mit a href und dann return false... aber vollkommen unsinnig und ueberfluessig... und dann musst du auch nicht daemlich was ueberpruefen. Einfacher waere es zudem dann einfach per parameter mitzugeben, was gebaut wird und nicht per sonderbarer ausleserei... (falls das ueberhaupt geht?)
Damit grenzt du nur user aus, die keines haben - an einer voellig unsinnigen Stelle (ausser die setzt komplett auf AJAX, was ich anhand des Threadverlaufes aber vollkommen ausschliesse).
Und nein, du brauchst event handler nicht "ueberpruefen", deshalb heissen die Dinger ja event handler und nicht interrupts. BAUEN waere eine javascript moeglichkeit.. oder auch mit a href und dann return false... aber vollkommen unsinnig und ueberfluessig... und dann musst du auch nicht daemlich was ueberpruefen. Einfacher waere es zudem dann einfach per parameter mitzugeben, was gebaut wird und nicht per sonderbarer ausleserei... (falls das ueberhaupt geht?)
gepostet vor 18 Jahre, 11 Monate von Kelturio
Okok, also brauche ich für ein BG überhaupt kein JS - habe ich das richtig verstanden ?
Wenn ja, ok.
Ich gebe euch mal den Link zu meinem Test BG, was wie gesagt nur "ein Test" ist und demnach nich perfekt etc.
Dort seht ihr was ich bauen will und das ich die Bauzeit anzeigen lassen will wie z.b. bei ogame.de oder mafia-inc.de etc.
http://kelturio.ke.funpic.de/Loginscript_online/formular.php
Registriert euch einfach und seht es euch mal an. Für Tipps etc. wäre ich sehr dankbar.
Wenn ja, ok.
Ich gebe euch mal den Link zu meinem Test BG, was wie gesagt nur "ein Test" ist und demnach nich perfekt etc.
Dort seht ihr was ich bauen will und das ich die Bauzeit anzeigen lassen will wie z.b. bei ogame.de oder mafia-inc.de etc.
http://kelturio.ke.funpic.de/Loginscript_online/formular.php
Registriert euch einfach und seht es euch mal an. Für Tipps etc. wäre ich sehr dankbar.
gepostet vor 18 Jahre, 11 Monate von Kallisti
Du _brauchst_ erstmal gar kein Javascript, du kannst damit nur die Anzeige versuessen (z.B. den Countdown fuer das Verstaendnis des Anwenders, Einblendungen neuer Nachrichten und dergleichen..). Pflicht ist es jedoch nicht, daher kannst du es auch erstmal weglassen.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ok, dann hätten wir das geklärt.
Also erfolgt die zeitliche Abfolge etc. in PHP und JS dient nur zur Anzeige, damit der User sieht wie lange der Bau noch dauert, richtig ?
Gut, dann versuche ich jetzt in PHP die Zeit auszulesen zu der der Button geklickt wurde - dazu addiere ich dann die Bauzeit und schreibe das ganze in die DB. Wenn der User die Seite neu betritt lasse ich diese Zeit aus der DB auslesen und mit aktueller Zeit vergleichen - Rest wird herunter gezählt - ansonsten fertig.
Also vergleicht PHP immer nur die Zeiten und mit JS kann man den Countdown dem User zeigen ?
Also erfolgt die zeitliche Abfolge etc. in PHP und JS dient nur zur Anzeige, damit der User sieht wie lange der Bau noch dauert, richtig ?
Gut, dann versuche ich jetzt in PHP die Zeit auszulesen zu der der Button geklickt wurde - dazu addiere ich dann die Bauzeit und schreibe das ganze in die DB. Wenn der User die Seite neu betritt lasse ich diese Zeit aus der DB auslesen und mit aktueller Zeit vergleichen - Rest wird herunter gezählt - ansonsten fertig.
Also vergleicht PHP immer nur die Zeiten und mit JS kann man den Countdown dem User zeigen ?
gepostet vor 18 Jahre, 11 Monate von KoMtuR
Du kannst sowohl php dazu animieren Zeiten zu vergleichen und zu formatieren oder auch javascript dies erledigen lassen. Ich glaube der Sinn dieses Postings war einfach, dich erstmal aufs wesentliche zu beschränken. Javascript ist Zusatz, aber kein Muss. Die User brauchen vielleicht ne Anzeige, wielange ein gebäude noch gebaut wird. Sie brauchen aber keinen Countdown. Das machen die Meisten eh mitn neuladen der Seite. Ein User ist klickwütig. Somit sieht der deinen Countdown vielleicht paar Sekunden. Verschwendete Zeit deinerseits. Du solltest dich erstmal drum kümmern alles in PHP so hinzubekommen, dass es läuft. Das ist manchmal schon schwer genug.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ok, ich werde mich dann nun weiter an PHP versuchen und hoffe das ich das hinbekomme, denn viel schwerer als mein Loginscript oder so kann es ja nicht sein, oder ?! ^^
Dann kann dieser Thread hier eigtl. geschlossen werden und wenn ich Fragen zu PHP habe, melde ich mich bei euch.
Dann kann dieser Thread hier eigtl. geschlossen werden und wenn ich Fragen zu PHP habe, melde ich mich bei euch.
gepostet vor 18 Jahre, 11 Monate von KoMtuR
Wer an einem stink normalen Loginscript eine Schwierigkeit sieht sollte noch kein Browsergame "versuchen", sondern sie mit grundlegenden Dingen beschäftigen. Versuche einzelne Dinge zu basteln, welche aber schon universell einsetzbar sind. Diese kannst du dann mit der gewonnenen Erfahrung zusammensetzen. Aber du wirst so sonst scheitern, weil du vielleicht erstmal 2% der eigentlichen Sprache php kennst.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Jupp, ich versuche ja auch ständig hinzu zu lernen.
Was ich mich z.B. schon länger frage ist:
Wenn der Button mit name="Ausbauen1" geklickt wurde ... (wie in PHP ? )
Denn das klappt nicht:
if ($_REQUEST["Ausbauen1"])
echo "Button1 wurde geklickt.";
?>
Wenn der Button geklickt wurde, dann trage Gebäudestufe +1 in die DB etc.
Was ich mich z.B. schon länger frage ist:
Wenn der Button mit name="Ausbauen1" geklickt wurde ... (wie in PHP ? )
Denn das klappt nicht:
if ($_REQUEST["Ausbauen1"])
echo "Button1 wurde geklickt.";
?>
Wenn der Button geklickt wurde, dann trage Gebäudestufe +1 in die DB etc.
gepostet vor 18 Jahre, 11 Monate von KoMtuR
naja wie sieht denn der HTML-Code deines Formulars auf? schickste diese anfrage auch an das entsprechende Script?
gepostet vor 18 Jahre, 11 Monate von Kelturio
Naja, das ist ein Button zu einem Gebäude, also Gebäude 1, deswegen auch hat er als name den Wert "Ausbauen1". Nun möchte ich überprüfen, ob er geklickt wurde und wenn ja, dann soll es z.b. die aktuelle Zeit auslesen etc. - hier als Test nur ein echo Befehl.
if ($_REQUEST["Ausbauen1"] == clicked) {
echo "Button1 wurde geklickt.";
}
?>
if ($_REQUEST["Ausbauen1"] == clicked) {
echo "Button1 wurde geklickt.";
}
?>
gepostet vor 18 Jahre, 11 Monate von KoMtuR
hmm....
hmmmmmm...
Also Punkt 1: Öffne die seite in deinem Browser (haste sicherlich schon). Rechte Maustaste -> Quellcode anzeigen. Da merkst du sicherlich, dass da KEIN php-code steht. Das kommt daher, dass du es einfach nicht verstanden hast, wie php arbeitet und wie nicht (wozu dein Beispiel gehört).
Der Login ist wirklich von dir? Oder vielleicht doch irgendwo fertig ausm netz gezogen? Sorry aber irgendwie kann ich nicht verstehen, wie man sowas wie ein Login hinbekommt, wenn man noch nichtmal die arbeitsweise Formular/GET <---> PHP verstanden hat ...
hmmmmmm...
Also Punkt 1: Öffne die seite in deinem Browser (haste sicherlich schon). Rechte Maustaste -> Quellcode anzeigen. Da merkst du sicherlich, dass da KEIN php-code steht. Das kommt daher, dass du es einfach nicht verstanden hast, wie php arbeitet und wie nicht (wozu dein Beispiel gehört).
Der Login ist wirklich von dir? Oder vielleicht doch irgendwo fertig ausm netz gezogen? Sorry aber irgendwie kann ich nicht verstehen, wie man sowas wie ein Login hinbekommt, wenn man noch nichtmal die arbeitsweise Formular/GET <---> PHP verstanden hat ...
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ich weiß schon längst, dass der Quellcode von php nicht angezeigt wird.
Und ja, das Loginscript, sowie das Registrierungsscript ist 100%ig von mir !
So eine if Abfrage ob ein Button geklickt wurde, habe ich eben noch nie gesehen bzw. gemacht / gebraucht.
Und ja, das Loginscript, sowie das Registrierungsscript ist 100%ig von mir !
So eine if Abfrage ob ein Button geklickt wurde, habe ich eben noch nie gesehen bzw. gemacht / gebraucht.
gepostet vor 18 Jahre, 11 Monate von Kallisti
if ($_REQUEST["Ausbauen1"] == clicked) {
echo "Button1 wurde geklickt.";
Ist "clicked" eine Konstante oder so? Sieht eher aus, als sei clicked nicht definiert. )
Der Wert ist der im HTML angegebene "value", also bitte ohne "== clicked". "isset()" ist dein Freund.
echo "Button1 wurde geklickt.";
Ist "clicked" eine Konstante oder so? Sieht eher aus, als sei clicked nicht definiert. )
Der Wert ist der im HTML angegebene "value", also bitte ohne "== clicked". "isset()" ist dein Freund.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ah, stimmt ja. Das hatte ich sogar schon mal bei meinem Loginscript verwendet, fällt mir da auf. ^^
Naja, habe nun PHP seit ca. 3-4 Wochen nicht mehr angesehen, da ich mit dem JS Teil beschäftigt war - das muss sich ändern.
Mit isset() klappt es hervorragend. ^^
Edit:
Soo, mein PHP Script ist nun schon ziemlich weit vorangeschritten, d.h. dass es den aktuellen Timestamp ermittelt, darauf die Bauzeit addiert und diesen Timestamp dann in die DB einträgt. Beim Auslesen wird dieser dann in die Uhrzeit mittels strftime() umgewandelt, die dann auch ein normaler Mensch lesen kann.
Von da muss dann nur noch der Counter starten.
Eine Frage zwischendurch:
Wie sollte ich die Bauzeit festlegen ?
Im Moment habe ich es noch so, dass sobald der User auf den Button geklickt dieBauzeit = 5 Sekunden ist.
Könnte ich es so machen, dass ich die Bauzeit jedes Gebäudes der Stufe 1 in eine Tabelle der DB schreibe ? Z.B. in Grundzeit.
Und diese brauche ich dann immer einfach nur um einen gewissen Faktor etc. erhöhen, wenn der User auf ausbauen klickt.
Könnte man das so machen ?
Naja, habe nun PHP seit ca. 3-4 Wochen nicht mehr angesehen, da ich mit dem JS Teil beschäftigt war - das muss sich ändern.
Mit isset() klappt es hervorragend. ^^
Edit:
Soo, mein PHP Script ist nun schon ziemlich weit vorangeschritten, d.h. dass es den aktuellen Timestamp ermittelt, darauf die Bauzeit addiert und diesen Timestamp dann in die DB einträgt. Beim Auslesen wird dieser dann in die Uhrzeit mittels strftime() umgewandelt, die dann auch ein normaler Mensch lesen kann.
Von da muss dann nur noch der Counter starten.
Eine Frage zwischendurch:
Wie sollte ich die Bauzeit festlegen ?
Im Moment habe ich es noch so, dass sobald der User auf den Button geklickt dieBauzeit = 5 Sekunden ist.
Könnte ich es so machen, dass ich die Bauzeit jedes Gebäudes der Stufe 1 in eine Tabelle der DB schreibe ? Z.B. in Grundzeit.
Und diese brauche ich dann immer einfach nur um einen gewissen Faktor etc. erhöhen, wenn der User auf ausbauen klickt.
Könnte man das so machen ?
gepostet vor 18 Jahre, 11 Monate von Kallisti
Genau das ist Programmieren.. Algorithmen und Datenstrukturen finden, die dein Problem beschreiben bzw. loesen.
Und wir hier im Forum programmieren dir bestimmt nicht dein Spiel.
Die technischen Moeglichkeiten findest du z.B. auf php.net gut dokumentiert. Die Logik dahinter zu erdenken ist DEINE Aufgabe. Also denk drueber nach und loese sie, oder lass es bleiben.
Klar "koennte" man das so machen. Genauso gibt es aber hunderte von anderen Wegen.
5 Programmierer, 10 verschiedene Programme... there is more than one way to do it - geh deinen eigenen.
Und wir hier im Forum programmieren dir bestimmt nicht dein Spiel.
Die technischen Moeglichkeiten findest du z.B. auf php.net gut dokumentiert. Die Logik dahinter zu erdenken ist DEINE Aufgabe. Also denk drueber nach und loese sie, oder lass es bleiben.
Klar "koennte" man das so machen. Genauso gibt es aber hunderte von anderen Wegen.
5 Programmierer, 10 verschiedene Programme... there is more than one way to do it - geh deinen eigenen.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Klar möchte ich ja mein BG auch weitestgehend alleine programmieren, denn das macht mir immerhin auch ne Menge Spaß. ^^
Zu deiner Aussage "Und wir hier im Forum programmieren dir bestimmt nicht dein Spiel." - das ist mir schon klar, aber ich frage ja nur nach einer Möglichkeit bzw. habe euch gefragt ob ich es so machen könnte.
Ein einfaches Ja oder so würde mir da schon reichen, denn ich möchte ja nur wissen, ob ich auch auf dem richtigen Weg bin.
Den Satz "5 Programmierer, 10 verschiedene Programme... there is more than one way to do it" kenne ich von meinem Lehrer in einer ähnlichen Form schon bald in- und auswendig. ^^
Zu deiner Aussage "Und wir hier im Forum programmieren dir bestimmt nicht dein Spiel." - das ist mir schon klar, aber ich frage ja nur nach einer Möglichkeit bzw. habe euch gefragt ob ich es so machen könnte.
Ein einfaches Ja oder so würde mir da schon reichen, denn ich möchte ja nur wissen, ob ich auch auf dem richtigen Weg bin.
Den Satz "5 Programmierer, 10 verschiedene Programme... there is more than one way to do it" kenne ich von meinem Lehrer in einer ähnlichen Form schon bald in- und auswendig. ^^
gepostet vor 18 Jahre, 11 Monate von BuschnicK
Und wir hier im Forum programmieren dir bestimmt nicht dein Spiel.
Dazu möchte ich eben anmerken, dass ich hier im ICQ dir dein Spiel noch viel weniger programmieren werde Kelturio. Also meld dich bitte nicht mehr jeden Tag mit jeder noch so kleinen Frage bei mir - das ist ziemlich unhöflich und lästig - und auf lange Sicht landest du einfach auf meiner ignore Liste....
Ich glaube eines deiner wesentlichen Missverständnisse und was dir das Lernen so schwer macht ist die Unterscheidung zwischen der client-seitigen Darstellung (HTML im Browser und optional JavaScript) und der server-seitigen Ausführung deines Spiels (PHP). Das sind zwei ganz unterschiedliche Paar Schuhe. Auf dem Server erledigst du sämtliche Spiellogik und wichtigen Dinge. Bauzeitüberprüfungen, Datenbankeinträge/Abfragen, Bauaufträge, Resourcenüberprüfungen, etc... Alles, was den Zustand deiner Spielwelt irgendwie verändert oder beeinflusst geschieht in PHP auf dem Server.
Der Server baut aus diesen Informationen HTML Seiten zusammen und schickt sie an den Client (deinen Spieler mit seinem Browser). Ab diesem Zeitpunkt sind die Daten überhaupt nicht mehr in deiner Hand, überhaupt nicht mehr vertrauenswürdig, da der Client alles damit anstellen kann, was ihm einfällt. Sie werden nur angezeigt. Hier kommt eventuell JavaScript ins Spiel, um die Anzeige irgendwie interessanter zu gestalten oder interaktiver erscheinen zu lassen. Es hat aber keinesfalls Auswirkungen auf den Zustand des Spiels.
Der Spieler erhält Informationen aus diesen Seiten (z.B. die Anzahl seiner verfügbaren Resourcen, die dein PHP Script ja vorher da reingeschrieben hat) und trifft Entscheidungen. Er füllt Forms aus (button clicks, select boxes, etc) oder klickt links an und schickt diese Daten an deinen Server zurück. Hier empfängst du die Daten in deinem PHP Script (lese über $_POST und $_GET) und verarbeitest sie. Als allererster und wichtiger Schritt überprüfst du die Daten, die du erhälst. Nichts was vom Client kommt ist jemals ungeprüft nutzbar. Ich wiederhole: selbst wenn du genau weisst, was für Werte du erwartest - traue diesen niemals. Der Client kann mit potentiell bösartiger Absicht alles an dich schicken, was ihm gerade einfällt.
Nachdem du die Daten also verifiziert hast berechnet dein Script spielrelevante Vorgänge damit. Beispielsweise erhälst du zurück, dass der Spieler gerne ein Gebäude Stufe 3 bauen möchte. Dein Script überprüft, dass die session gültig ist, dir eine korrekte Zahl und Gebäude id übermittelt wurde (statt z.B. strings), dass der Spieler bauberechtigt ist, dass er genügend Resourcen hat, dass er den nötigen Technologielevel erreicht hat, ... etc. Je nach deinem Spiel musst du hier deine Regeln umsetzen. Alle die hierzu nötigen Informationen erhälst du aus deiner Datenbank.
Dein Script aktualisiert die Datenbank mit dem neuen Bauvorhaben und generiert dem Spieler eine Antwort Seite. Diese könnte z.B. so etwas entahlten wie: Bauauftrag wird ausgeführt, Restdauer bla (ersetze bla durch dein JavaScript timer). Der Spieler sieht die Seite und trifft erneut Entscheidungen -> gehe zurück zu Schritt 1 ;-)
So im wesentlichen laufen Browsergames - oder was das angeht, sämtliche interaktiven Seiten - ab. Arbeite dich da durch, verstehe den Prozess - aber nerv uns/mich nicht mehr mit Detailfragen, die deine momentanen Fähigkeiten weit übersteigen. Die wichtigste Fähigkeit, die du erlernen musst ist selbst Informationen zu bekommen und zu finden. Du kannst nicht für jedes Problem fragestellend durch die Gegend rennen und dir die Lösungen füttern lassen. Lesen und googeln (am besten in Kombination) hilft!
mfG und nichts für ungut,
Sören
PS: Ich bin mal echt beeindruckt von deiner Hartnäckigkeit und Ausdauer - besonders angesichts der allgemeinen Unfreundlichkeit (meine eigene eingeschlossen). Jetzt musst du nur noch diese Hartnäckigkeit direkt gegen deine technischen Probleme richten statt gegen deine freiwilligen (!) Lehrer.
gepostet vor 18 Jahre, 11 Monate von Kelturio
Ich sehe deinen etwas keck geschriebenen kleinen Roman hier in keinsterweise als bösartig oder dergleichen an BushnicK. Im Gegenteil, ich finde es gut auf meine Fehler drauf hingewiesen zu werden und gebe mir auch alle Mühe diese zu beseitigen, wozu manchmal jedoch die innere Überwindung des sog. "Schweinehundes" erforderlich ist. ^^
Ich bin so hartnäckig, da mir programmieren im Allgeimeinen auch Spaß macht und da werde ich nicht gleich aufgeben, denn es kann ja nur besser werden.
Desweiteren danke ich dir nochmal für deine detailreiche Erklärung wie ein BG funktioniert, jetzt weiß ich genau was ich machen muss und mein PHP Script für den Ausbauen Button und die Überprüfungen, die DB Einträge etc. ist soeben fast fertig gestellt worden, da ich mich heute den ganzen Tag schon intensiv mit PHP befasst habe, was mir sehr geholfen hat.
Was ist aber, wenn ich mal nicht weiter komme, da ich z.b. nicht auf die Grundidee komme ? Bekomme ich dann hier noch Hilfe ?
Denn immerhin ist dies hier doch ein Forum wo "Anfänger" ihre Fragen stellen können, richtig ?
Ich hätte da nämlich eine allgemeine Frage, die ich hier doch eigtl. stellen dürfte, meiner Meinung nach.
Also:
Wie gesagt ist mein PHP Quellcode für den Ausbaubutton schon fast fertig. Ich habe es jetzt so gemacht, dass wenn die Seite aktualisiert wird, dass dann wieder die Bauzeit aus der DB gelesen und mit der Aktuellen verglichen wird. Danach soll wie immer der Rest ausgegeben werden.
Jetzt die Frage:
Da diese Quellcodezeilen an aller erster Stelle stehen, da sie bei Aktualisierung der Seite ausgeführt werden sollen, wird demnach auch die Restzeit ganz oben aufgelistet (einfacher echo-Befehl) - wie kann ich diese Zeit z.b. unter Button x anzeigen lassen, auf den der User zum Ausbau geklickt hat ?
Das wäre dann momentan nur noch mein Einzigstes Problem.
MfG
Kelturio
PS: Ich hatte auch nicht vor dich weiter in ICQ anzuschreiben, BuschnicK, da ich bereits bemerkte wie du immer darauf reagierst. ^^
Sry, nochmal.
Ich bin so hartnäckig, da mir programmieren im Allgeimeinen auch Spaß macht und da werde ich nicht gleich aufgeben, denn es kann ja nur besser werden.
Desweiteren danke ich dir nochmal für deine detailreiche Erklärung wie ein BG funktioniert, jetzt weiß ich genau was ich machen muss und mein PHP Script für den Ausbauen Button und die Überprüfungen, die DB Einträge etc. ist soeben fast fertig gestellt worden, da ich mich heute den ganzen Tag schon intensiv mit PHP befasst habe, was mir sehr geholfen hat.
Was ist aber, wenn ich mal nicht weiter komme, da ich z.b. nicht auf die Grundidee komme ? Bekomme ich dann hier noch Hilfe ?
Denn immerhin ist dies hier doch ein Forum wo "Anfänger" ihre Fragen stellen können, richtig ?
Ich hätte da nämlich eine allgemeine Frage, die ich hier doch eigtl. stellen dürfte, meiner Meinung nach.
Also:
Wie gesagt ist mein PHP Quellcode für den Ausbaubutton schon fast fertig. Ich habe es jetzt so gemacht, dass wenn die Seite aktualisiert wird, dass dann wieder die Bauzeit aus der DB gelesen und mit der Aktuellen verglichen wird. Danach soll wie immer der Rest ausgegeben werden.
Jetzt die Frage:
Da diese Quellcodezeilen an aller erster Stelle stehen, da sie bei Aktualisierung der Seite ausgeführt werden sollen, wird demnach auch die Restzeit ganz oben aufgelistet (einfacher echo-Befehl) - wie kann ich diese Zeit z.b. unter Button x anzeigen lassen, auf den der User zum Ausbau geklickt hat ?
Das wäre dann momentan nur noch mein Einzigstes Problem.
MfG
Kelturio
PS: Ich hatte auch nicht vor dich weiter in ICQ anzuschreiben, BuschnicK, da ich bereits bemerkte wie du immer darauf reagierst. ^^
Sry, nochmal.
gepostet vor 18 Jahre, 11 Monate von Crafty-Catcher
/* berechnungen*/
?>
echo $wert_der_hier_unterm_button_ausgegeben_werden_soll;
?>
Überall da wo Kommentare stehen fehlt das ein oder andere...
?>
echo $wert_der_hier_unterm_button_ausgegeben_werden_soll;
?>
Überall da wo Kommentare stehen fehlt das ein oder andere...
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
Zu empfehlen: http://tut.php-q.net/index.html
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ TheUndeadable:
Genau das Tut ist es, wo ich heute den ganzen Tag drin herum gestöbert habe.
@ Crafty-Catcher:
Ich dachte immer, dass diese PHP Funktion, welche im Form mit drin steht erst nach Buttonklick ausgeführt wird, aber nach reiflicher Überlegung bin ich zu dem logischen Erkenntnis gekommen, dass ja der Quellcode von oben nach unten abgearbeitet wird und demnach auch der Text dort erscheint. Er würde ja nur nach Buttonklick erscheinen, wenn man z.b. mit ner Schleife abfragt ob der Button geklickt wurde, richtig ?
Ok, dann wären jetzt all meine Problemchen beseitigt. ^^
Genau das Tut ist es, wo ich heute den ganzen Tag drin herum gestöbert habe.
@ Crafty-Catcher:
Ich dachte immer, dass diese PHP Funktion, welche im Form mit drin steht erst nach Buttonklick ausgeführt wird, aber nach reiflicher Überlegung bin ich zu dem logischen Erkenntnis gekommen, dass ja der Quellcode von oben nach unten abgearbeitet wird und demnach auch der Text dort erscheint. Er würde ja nur nach Buttonklick erscheinen, wenn man z.b. mit ner Schleife abfragt ob der Button geklickt wurde, richtig ?
Ok, dann wären jetzt all meine Problemchen beseitigt. ^^
gepostet vor 18 Jahre, 11 Monate von KoMtuR
Der Text (ob nun vor einem Button oder danach gesxchrieben ist total egal, da der HTML-Code nichts mit php zu tun hat. Ob nun was vor dem Button ausgegeben wird oder danach liegt ganz allein am Entwickler und des Echo-Befehls. Dafür müsste man aber trotzdem erstmal die Funktionsweise von PHP verstehen, wo ich immernoch der meinung bin, dass du das nicht gerafft hast. Scheinst dir den Roman von Buschnick nicht durchgelesen zu haben, wo steht, dass php SERVERSEITIG und html CLIENTSEITIG ist. Diese 2 Unterschiede sind also kravierend. Also was du mittels php ausgibst wird an den Clienten als HTML/Javascript geschickt. Also ob du nun das Zeugs vor dem Button ausgibst und es mittels css darunter schiebst oder nach dem Button liegt also einfach an dir, wie du mit der Ausgabe umgehst.
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ KoMtuR:
Ich habe mir den Roman von BuschnicK sehr wohl durchgelsen, was auch in meinem Beitrag danach gut hervor geht, wenn du ihn gelesen hättest.
Ich habe mir den Roman von BuschnicK sehr wohl durchgelsen, was auch in meinem Beitrag danach gut hervor geht, wenn du ihn gelesen hättest.
gepostet vor 18 Jahre, 11 Monate von KoMtuR
tjua lesen ist halt das eine. verstehen das andere...
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ KoMtuR:
Ich habe das Ganze nun verstanden, dass PHP serverbasiert ist und JS nicht.
@ all:
Mein Counter, sowie der Gebäudebau klappt nun einwandfrei.
Aber mein Counter in PHP hat einen Schönheitsfehler.
Und zwar soll das Gebäude zum Ausbau z.b. 5 sec dauern, welche er sich aus der DB holt. So sieht mein Quellcode in Etwa aus:
//Bauzeit aus DB auslesen
$sql4 = "SELECT Grundzeit_Gold FROM bgame_test_gebaeude".
" WHERE User_ID = '".$_SESSION["user_id"]."'";
$result = mysql_query ($sql4);
$data3 = mysql_fetch_array ($result);
//Bauzeitende berechnen
$bauende = $data3["Grundzeit_Gold"] + time();
$restzeit = $bauende - time();
//Verbleibende Zeit anzeigen
$restzeit_anzeige = strftime("%H:%M:%S", $restzeit);
echo ("".$restzeit_anzeige."");
Ich habe auch kontrolliert, dass in der DB der Wert 5 steht.
Das Problem ist nun, dass es mir statt 00:00:05 das anzeigt: 01:00:05.
Wo ist da der Hacken an meinem Code ?
Ich habe das Ganze nun verstanden, dass PHP serverbasiert ist und JS nicht.
@ all:
Mein Counter, sowie der Gebäudebau klappt nun einwandfrei.
Aber mein Counter in PHP hat einen Schönheitsfehler.
Und zwar soll das Gebäude zum Ausbau z.b. 5 sec dauern, welche er sich aus der DB holt. So sieht mein Quellcode in Etwa aus:
//Bauzeit aus DB auslesen
$sql4 = "SELECT Grundzeit_Gold FROM bgame_test_gebaeude".
" WHERE User_ID = '".$_SESSION["user_id"]."'";
$result = mysql_query ($sql4);
$data3 = mysql_fetch_array ($result);
//Bauzeitende berechnen
$bauende = $data3["Grundzeit_Gold"] + time();
$restzeit = $bauende - time();
//Verbleibende Zeit anzeigen
$restzeit_anzeige = strftime("%H:%M:%S", $restzeit);
echo ("".$restzeit_anzeige."");
Ich habe auch kontrolliert, dass in der DB der Wert 5 steht.
Das Problem ist nun, dass es mir statt 00:00:05 das anzeigt: 01:00:05.
Wo ist da der Hacken an meinem Code ?
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
$bauende = $data3["Grundzeit_Gold"] + time();
$restzeit = $bauende - time();
????????
$restzeit_anzeige = strftime("%H:%M:%S", $restzeit);
http://www.php.net/strftime
$restzeit = $bauende - time();
????????
$restzeit_anzeige = strftime("%H:%M:%S", $restzeit);
http://www.php.net/strftime
gepostet vor 18 Jahre, 11 Monate von Sarge
$bauende = $data3["Grundzeit_Gold"] + time();
$restzeit = $bauende - time();
$restzeit = $bauende -time(); [$bauende/$data3["Grundzeit_Gold"] + time()]
-> $restzeit = $data3["Grundzeit_Gold"] + time() - time()
--> $restzeit ~ $data3["Grundzeit_Gold"]
Ein wenig überlegen sollte man schon wenn man etwas schreibt
gepostet vor 18 Jahre, 11 Monate von Kelturio
$bauende = $data3["Grundzeit_Gold"] + time();
--> 5 sec + time(); 5 sec wurden ja in einem assoziativen Array gespeichert
--> Bauende = Zeitpunkt zu dem der bau fertig ist in Sekunden seit dem UNIX Timestamp
$restzeit = $bauende - time();
--> Den Zeitpunkt wann Gebäude fertig ist in Sekunden - bis jetzt vergangene Sekunden = 5 sec am Anfang, wird automatisch weniger, wenn der User die Seite aktualisiert
$restzeit_anzeige = strftime("%H:%M:%S", $restzeit);
--> Soll im Format Stunden:Minuten:Sekunden die Restzeit ausgeben, also 00:00:05
PS: Ich habe das ja so von php.net abgeleitet.
@ Sarge:
Ich weiß, dass die Restzeit dem $data3["Grundzeit_Gold"] gleicht, aber es soll diese ja immer wieder neu berechnen, wenn der User auf aktualisieren klickt und nicht immer bei 5 sec stehen bleiben bis es fertig ist. Denn ich kann ja nicht einfach nur 5 sec als Endzeitpunkt in die DB schreiben, da diese dann nicht mit dem aktuellen Timestamp vergleichbar wären, da das Gebäude dann sofort fertig wäre.
--> 5 sec + time(); 5 sec wurden ja in einem assoziativen Array gespeichert
--> Bauende = Zeitpunkt zu dem der bau fertig ist in Sekunden seit dem UNIX Timestamp
$restzeit = $bauende - time();
--> Den Zeitpunkt wann Gebäude fertig ist in Sekunden - bis jetzt vergangene Sekunden = 5 sec am Anfang, wird automatisch weniger, wenn der User die Seite aktualisiert
$restzeit_anzeige = strftime("%H:%M:%S", $restzeit);
--> Soll im Format Stunden:Minuten:Sekunden die Restzeit ausgeben, also 00:00:05
PS: Ich habe das ja so von php.net abgeleitet.
@ Sarge:
Ich weiß, dass die Restzeit dem $data3["Grundzeit_Gold"] gleicht, aber es soll diese ja immer wieder neu berechnen, wenn der User auf aktualisieren klickt und nicht immer bei 5 sec stehen bleiben bis es fertig ist. Denn ich kann ja nicht einfach nur 5 sec als Endzeitpunkt in die DB schreiben, da diese dann nicht mit dem aktuellen Timestamp vergleichbar wären, da das Gebäude dann sofort fertig wäre.
gepostet vor 18 Jahre, 11 Monate von TheUndeadable
*GRMMMPF* *BEISSHOLZ SUCH*
$a = $b + $c;
$d = $a - $c;
=> $d = $a = $b;
=> Was soll time() dort?
Du hast auf PHP.Net nachgeschaut????
strftime: Formatiert eine Zeit-/Datumsangabe nach den lokalen Einstellungen
und du willst nun behaupten, dass eine 5!!! eine Zeit/Datumsangabe ist? oder weißt du nicht, was ein Datum ist, oder gar eine Uhrzeit.
$a = $b + $c;
$d = $a - $c;
=> $d = $a = $b;
=> Was soll time() dort?
Du hast auf PHP.Net nachgeschaut????
strftime: Formatiert eine Zeit-/Datumsangabe nach den lokalen Einstellungen
und du willst nun behaupten, dass eine 5!!! eine Zeit/Datumsangabe ist? oder weißt du nicht, was ein Datum ist, oder gar eine Uhrzeit.
gepostet vor 18 Jahre, 11 Monate von Kelturio
@ TheUndeadable:
Ok, sry, dann habe ich das wohl falsch verstanden.
Ok, sry, dann habe ich das wohl falsch verstanden.
gepostet vor 18 Jahre, 11 Monate von Sarge
Original von TheUndeadable
$a = $b + $c;
$d = $a - $c;
=> $d = $a = $b;
$d=$b != $a
nur der vollständigkeit halber