Danke für die ausführliche Antwort. Ein bisschen hat mir das schon geholfen. Ich ab jetzt dennoch mal meinen Code mit angehängt.
Dies ist der Code in der Hauptdatei die in die Seite direkt eingebunden wird (der javascript-Part):
window.setInterval(„SetShoots()“,1000);
Dies ist der Code für den ersten Request/Funktion der php-Datei:
<?php include("_settings.php");
include("\_connect.php");
include("\_functions.php");
header('Content-Type: text/xml; charset=utf-8'); // sorgt für die korrekte Kodierung
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); // ist mal wieder wichtig wegen IE
$result = mysql\_query("SELECT \* FROM shoots WHERE game\_ID = '$gameID' AND user\_ID = '$user2\_ID' ORDER BY shoot\_ID DESC LIMIT 0,1");
while($data=mysql\_fetch\_array($result)){
$field = $data['field'];
$hit = $data['hit'];
switch($hit) {
case "1":
$content = 'url(gfx/bg\_1\_X.jpg)';
$event = '"Du wurdest getroffen! Dein Gegner darf nochmal!"';
break;
case "0":
$content = 'url(gfx/bg\_1\_O.jpg)';
$event = '"Glueck gehabt! Daneben! Du bist dran!"';
break;
default:
break;
}
}
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo „\n“;
echo " „.„M_“.$field.“\n";
echo " „.$content.“\n";
echo " „.$event.“\n";
echo „\n“;
?>
Und dies der Code der vom zweiten Request.
<?php include("_settings.php");
include("\_connect.php");
include("\_functions.php");
header('Content-Type: text/xml; charset=utf-8'); // sorgt für die korrekte Kodierung
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); // ist mal wieder wichtig wegen IE
$id = $\_POST['id'];
$type = $\_POST['type'];
$anz = "0";
$hit = "0";
$event = "Du hast leider nicht getroffen!";
$content = "";
$result = mysql\_query("SELECT \* FROM games WHERE games\_ID = '$gameID'");
while($data=mysql\_fetch\_array($result)){
$turn = $data['turn'];
$user1 = $data['user1\_ID'];
$user2 = $data['user2\_ID'];
if(($turn == "0" AND $data['user1\_ID']==$userID) OR ($turn == "1" AND $data['user2\_ID']==$userID)){
$turn = "0";
}else{
$turn = "1";
}
}
if($turn == "1"){
$event = "Warte auf den Zug deines Gegners!";
$id = "event";
$content = 'url()';
}else{
if($userID == $user1){
$newturn = "1";
}else{
$newturn = "0";
}
$result = mysql\_query("SELECT \* FROM ships WHERE user\_ID = '$user2\_ID' AND (pos1 = '$id' OR pos2 = '$id' OR pos3 = '$id' OR pos4 = '$id' OR pos5 = '$id')");
while($data=mysql\_fetch\_array($result)){
$hits = $data['hits']+1;
$shipID = $data['ships\_ID'];
mysql\_query("UPDATE ships SET hits = '$hits' WHERE ships\_ID = '$shipID' ");
$family=$data['family'];
if($family==$hits){
$event = "Du hast das gegnerische Schiff versenkt!";
}else{
$event = "Du hast einen Treffer gelandet!";
}
$hit = "1";
$anz = "1";
if($userID == $user1){
$newturn = "0";
}else{
$newturn = "1";
}
}
if($anz=="1"){
if($type=="1"){
$content = 'url(gfx/bg\_1\_X.jpg)';
}else{
$content = 'url(gfx/bg\_2\_X.jpg)';
}
}else{
if($type=="1"){
$content = 'url(gfx/bg\_1\_O.jpg)';
}else{
$content = 'url(gfx/bg\_2\_O.jpg)';
}
}
mysql\_query("UPDATE games SET turn = '$newturn' WHERE games\_ID = '$gameID'");
mysql\_query("INSERT INTO shoots ( shoot\_ID, game\_ID, user\_ID, field, hit) values ( NULL, '$gameID', '$userID', '$id', '$hit')");
}
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo „\n“;
echo " „.$id.“\n";
echo " „.$content.“\n";
echo " „.$event.“\n";
echo „\n“;
?>
Fehler dürften sich aber ansich eher im JS Teil eingeschlichen haben … wobei ich nur zufällige Fehler bei der Ausgabe habe keine systematischen.
Fehler sind dabei z.B., dass er manchmal beim Schießen keinen Text ausgibt und das Bild nicht verändert. Der Datenbankeintrag erfolgt aber meist trotzdem und beim Gegner werden die Schüsse auch eingezeichnet.
Danke schonmal .
Gruß
Marco