Finde den Fehler nicht. Parse Error
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
anzahl
auszahlung
berechnung
code
datenbank
datum
dollar
ende
fehler
geld
host
port
post
problem
schleife
server
tag
url
verbindung
-
Guten Morgen liebe Community,
hab da ein tag/problem">problem undzwar wird mir ein Fehler angezeigt den ich aber leider nicht finde. Auch mit einem ausschlusverfahren konnt eich diesen nicht eingrenzen.
Habe mal die Fehlerausgabe und den Code mit angehengt.
Parse error: syntax error, unexpected ';' in /var/www/web704/html/test/websend.php on line 30
<?php $verbindung = mysql_connect ("+++++++++", "+++++", "+++++") or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch"); mysql_select_db("+++++") or die ("Die Datenbank existiert nicht."); $datum = getdate(); $stunde = date("G"); $id = $_POST[ID]; $tag = "Monday"; $PORT = +++++; $HOST = "+++++"; $password = "+++++++"; //ende Variablen if($datum[weekday] == $tag) { //Formular echo '<form action="websend.php" method="post"> <input type="hidden" name="aktion" value="weiter"> <input type="text" size="17" name="username"> <input type="submit" value="OK"> </form>'; if($_POST["aktion"] == "weiter"){ $username = mysql_real_escape_string($_POST["username"]); while( $res1 = mysql_query("SELECT userID FROM wcf1_user_option_value WHERE userOption55 = 3 LIMIT 1"); $vorhanden = mysql_fetch_object($res1)); if($vorhanden == 0){ while($res2 = mysql_query("SELECT userID FROM wcf1_user_option_value WHERE userOption55=$_POST[username]"); $spielerid = mysql_fetch_object($res2)); while($res3 = mysql_query("SELECT posts FROM wbb1_1_user Where userID=$spielerid"); $anzahlposts = mysql_fetch_array($res3)); $auszahlung = $anzahlposts * 100; echo 'Du hast bisher '.$anzahl.' Beiträge geschrieben und bekommst daher eine Gutschrift von '.$auszahlung.' Dollar InGame Geld.'; //socket verbindung funktioniert $sock = socket_create(AF_INET, SOCK_STREAM, 0) or die("error: kann nicht erstellen den socket\n"); $succ = socket_connect($sock, $HOST, $PORT) or die("error: could not connect to host\n"); socket_write($sock, $command = md5($password)."<Password>", strlen($command) + 1) or die("error: failed to write to socket\n"); socket_write($sock, $command = "/Command/ExecuteConsoleCommand:money give '.$_POST[ingamename].' '.$auszahlung.';", strlen($command) + 1) //Writing text/command we want to send to the server or die("error: failed to write to socket\n"); socket_write($sock, $command = "Time set to day;", strlen($command) + 1) or die("error: failed to write to socket\n"); } else { echo 'Du hst dein Geld schon bekommen!'; } } else {} }else{ echo 'Heute ist nicht '.$tag.'! Komme doch dann wieder um deinen Gewinn einzulösen.'; } ?>
Lieben gruß vom Eden -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also der angegebene Fehler ist nicht wirklich Dein Problem!
Dein Problem ist, dass dieser Code Vorne und HInten nicht wirklich passt. Du hast ne while() Schleife laufen, die keine ist, IfElse Abfragen die keine sind und diverse andere Sachen die schon im Ansatz flasch sind.
Ein massives Problem ist die nicht sichere verarbeitung von $_POST Variablen. Alle Variablen die über $_POST, oder anderen nicht ServerSide-Quellen, kommen, müssen doppelt und dreifach geprüft werden!
Vertraue niemals Eingaben die nicht vom Server kommen und selbst die sollte man in einigen Fällen auch überprüfen!
Allgemein bleibt zu sagen, Du solltest Dich eher nochmal hinsetzen und nen PHP Tutorial komplett durchgehen. Denn das hier ist eine Katastrophe und kein PHP-Code. http://tut.php-quake.net/de/ ist eine gute Anlaufstelle um praxisorientiert PHP zu lernen und je nach dem wie viel Zeit Du am Tag hast, bist damit in nen paar Tagen fertig und hast die "Basics" auf dem Kasten, zumindest wenn Du Dich nicht gerade Dumm anstellst. -
überall, wo bei dir while steht, ist der eine fehler schon mit dabei! du schreibst:
es sollte aber heißen:while(...);
while(...){ // hier geht es um das 'weil', und kann semicolon verwendet werden ; // auch ohne wirklichen grund }
das andere gravierende problem ist dein sql. ich kann es mir nicht vorstellen, dass in einer while-schleife eine while-schleife mit weiteren sql-abfragen nötig ist. wenn das - nach deiner meinung - trotzdem für notwendig anzusehen ist, dann ist die query falsch (strukturiert) (sql heißt 'structured query language').
um hier effektiver helfen zu können, wäre es zielführender, wenn du einfach sagst, was das ding soll.
zum schluss: bei lima wird sich 'socket_create' nicht spielen! wo (bei welchem hoster) hast du deinen code eigentlich? -
Soweit klapt es jetzt. Habe jetzt aber nochmal eine frage undzwar wie kann ich hier eine Sperre einbauen die mit der Zeit abgespeichert wird.
Hatte schon die Zeit in die DB geschrieben doch beim abrufen und speichern in eine variable gibt es immereinen fehler.
Habe die zeit time() in meiner Datenbank als int gespeichert sodass es ja nur zahlen sein sollten. Geht aber nicht.
Kann mir jemand anregungen geben wie ich diees bewerkstelligen kann ? bin da mit dem ablauf auch ganzschön ins schwitzen gekommen. Irgendwie will das so und so nicht
if(1 == 1){ echo 'Wochenauszahlung. <br> Hier kannst du dir deine Beiträge auszahlen lassen. Der Kurs liegt bei 100 Dollar (InGameGeld) pro Beitrag<form action="" method="post"> <input type="hidden" name="aktion" value="weiter"> InGamenamen eintragen :<input type="text" size="17" name="username"> <input type="submit" value="OK"> </form>'; $username = mysql_real_escape_string($_POST["username"]); //Zeitberechnung ENDE //anfang post berechnung $query = "SELECT userID FROM wcf1_user_option_value WHERE userOption55='$username'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result) or die(mysql_error()); echo '<br>Deine User ID '.$row['userID']; $usernummer = $row['userID']; //abfrage nach der anzhal der posts im forum $anzahl = "SELECT posts FROM wbb1_1_user WHERE userID='$usernummer'"; $anzhal1 = mysql_query($anzahl) or die(mysql_error()); $ausgabeposts = mysql_fetch_array($anzhal1) or die(mysql_error()); echo '<br><br>Deine Posts '.$ausgabeposts['posts'].'<br><br>'; //ende post berechnung } else { echo'Heute ist nicht '.$tagdeu.'. Komm doch bitte später wieder.'; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage