Parse error: syntax error, unexpected '$result' (T_VARIABLE), expecting '(' in /users/scrumplex/www/EB/License/get.php on line 9

  • PHP

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von KidRick.

    Parse error: syntax error, unexpected '$result' (T_VARIABLE), expecting '(' in /users/scrumplex/www/EB/License/get.php on line 9

    Hi Community,
    heute bin ich mal am werkeln mit php!

    Erste Sache ich bin nicht so gut in php!
    Der Fehler ist der hier:

    Quellcode

    1. Parse error: syntax error, unexpected '$result' (T_VARIABLE), expecting '(' in /users/scrumplex/www/EB/License/get.php on line 9


    Der ganze Code:
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. require_once "secure/dbdata.php";
    3. if($mysqli->connect_error) {
    4. echo "Can't connect to database:" . $mysqli_connect_error();
    5. exit();
    6. }
    7. $ergebnis = $mysqli->query("SELECT license,until FROM licensesystem WHERE used = '0'")
    8. while($result = $ergebnis->fetch_array())
    9. if $result['license'] = $_POST["license"] {
    10. if($update = $mysqli->prepare("UPDATE licensesystem SET used = '1' WHERE license = $_POST["license"]")) {
    11. echo "Done";
    12. echo "Expires: " . htmlspecialchars($result['until']);
    13. } else {
    14. echo "Failed";
    15. } else {
    16. echo "Failed";
    17. }
    18. }
    19. $ergebnis->close();
    20. $stmt->close();
    21. $update->close();
    22. $mysqli->close();
    23. ?>


    Ich hoffe ihr könnt mir helfen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „TheSCHFan#“ ()

    In der vorigen Zeile fehlt das Semikolon. Dein Skript ist übrigens anfällig für SQL Injections. Bei prepare solltest du die Query wirklich nur vorbereiten lassen, und noch keine Daten einsetzen. So lassen sich Querys auch mehrmals verwenden. Guck hierzu einfach mal in der PHP Doku nach.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    ok das funzt schon mal aber jetzt gibt es ein problem in zeile 9:
    Fehler:


    Quellcode

    1. Parse error: syntax error, unexpected '$result' (T_VARIABLE), expecting '(' in /users/scrumplex/www/EB/License/get.php on line 9


    Der ganze Code:

    PHP-Quellcode

    1. <?php
    2. require_once "secure/dbdata.php";
    3. if($mysqli->connect_error) {
    4. echo "Can't connect to database:" . $mysqli_connect_error();
    5. exit();
    6. }
    7. $ergebnis = $mysqli->query("SELECT license,until FROM licensesystem WHERE used = '0'");
    8. while($result = $ergebnis->fetch_array())
    9. if $result['license'] = $_POST["license"] {
    10. if($update = $mysqli->prepare("UPDATE licensesystem SET used = '1' WHERE license = $_POST["license"]")) {
    11. echo "Done";
    12. echo "Expires: " . htmlspecialchars($result['until']);
    13. } else {
    14. echo "Failed";
    15. } else {
    16. echo "Failed";
    17. }
    18. }
    19. $ergebnis->close();
    20. $stmt->close();
    21. $update->close();
    22. $mysqli->close();
    23. ?>
    Die Klammern um den Ausdruck fehlen. Bitte auch meinen Edit oben beachten!
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Hi,

    Bedingungen werden immer in Klammern gepackt. Aber so oder so, das kann nicht hinhauen weil du eine Zuweisung vornimmst, keinen Vergleich.
    Merk dir: Verglichen wird mit == (also ob gleich) und Zuweisung mit nur einem = (also $variable = "wert"). Der Fehler passiert dir im Skript nicht nur einmal.
    Geht hier aber um PHP, wo das mit Vergleichen und Wertzuweisung unterschiedlich ist. Bei MySQL findet ein Vergleich auch nur mit einem "=" statt (Bullshit eigentlich, aber so sind die Regeln).

    Ich glaub du solltest dich nochmal ein bisschen mit den Grundlagen beschäftigen. Sieht für mich aus als würdest du viele Sachen machen, von denen du jeweils nur die Hälfte weißt.


    EDIT:
    Habe deinen Code mal gnädigerweise durchgeackert. Da ist ja mehr im Arsch als ich dachte. Unter anderem fehlende geschweifte Klammern..
    Das hier sollte klappen:

    PHP-Quellcode

    1. <?php
    2. require_once "secure/dbdata.php";
    3. if($mysqli->connect_error) {
    4. echo "Can't connect to database:" . $mysqli_connect_error();
    5. //Biete wenigstens an, zur vorherigen Seite zurückzukehren (via Hyperlink oder autom. Redirect)
    6. exit();
    7. }
    8. $ergebnis = $mysqli->query("SELECT `license`, `until` FROM `licensesystem` WHERE `used` = '0'")
    9. while($result = $ergebnis->fetch_array()){
    10. if($result['license'] == $_POST['license']){
    11. //Hier Zuweisung? Falls ja kannst du dir das "$update = " sparen
    12. //Alternative:
    13. //if($mysqli->prepare("UPDATE `licensesystem` SET `used` = '1' WHERE `license` = '" . $_POST["license"] . "'")){
    14. if($update = $mysqli->prepare("UPDATE `licensesystem` SET `used` = '1' WHERE `license` = '" . $_POST["license"] . "'")){
    15. echo "Done";
    16. echo "Expires: " . htmlspecialchars($result['until'], ENT_QUOTES);
    17. }else{
    18. echo "Failed";
    19. } else {
    20. echo "Failed";
    21. }
    22. }
    23. }
    24. $ergebnis->close();
    25. $stmt->close();
    26. $update->close();
    27. $mysqli->close();
    28. ?>




    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link275“ ()

    @Link275:
    Sorry, aber das stimmt nicht ganz.
    Hier kannst Du durchaus so arbeiten. Denn solange Daten vorhanden sind, die mit fetch_assoc() abgerufen werden können, also ein Wert != NULL übergeben wird, gibt die Zuweisung true zurück.
    Wenn der Wert NULL ist, gibt sie false zurück, also durch aus so machbar

    -nvm,
    dachte Du beschwerst Dich über die while-Schleife
    Hi,

    ah, stimmt, in der Zeile darüber muss am ende noch ein ";" (Semikolon) hin:
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. require_once "secure/dbdata.php";
    3. if($mysqli->connect_error) {
    4. echo "Can't connect to database:" . $mysqli_connect_error();
    5. //Biete wenigstens an, zur vorherigen Seite zurückzukehren (via Hyperlink oder autom. Redirect)
    6. exit();
    7. }
    8. $ergebnis = $mysqli->query("SELECT `license`, `until` FROM `licensesystem` WHERE `used` = '0'");
    9. while($result = $ergebnis->fetch_array()){
    10. if($result['license'] == $_POST['license']){
    11. //Hier Zuweisung? Falls ja kannst du dir das "$update = " sparen
    12. //Alternative:
    13. //if($mysqli->prepare("UPDATE `licensesystem` SET `used` = '1' WHERE `license` = '" . $_POST["license"] . "'")){
    14. if($update = $mysqli->prepare("UPDATE `licensesystem` SET `used` = '1' WHERE `license` = '" . $_POST["license"] . "'")){
    15. echo "Done";
    16. echo "Expires: " . htmlspecialchars($result['until'], ENT_QUOTES);
    17. } else {
    18. echo "Failed";
    19. }
    20. }
    21. }
    22. $ergebnis->close();
    23. $stmt->close();
    24. $update->close();
    25. $mysqli->close();
    26. ?>




    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link275“ ()

    TheSCHFan# schrieb:


    Parse error: syntax error, unexpected 'while' (T_WHILE) in /users/scrumplex/www/EB/License/get.php on line 9

    Hatten wir das nicht vorhin schon...? [/ot]
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Parse error: syntax error, unexpected 'else' (T_ELSE) in /users/scrumplex/www/EB/License/get.php on line 19

    Hier noch mal der Code:

    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. require_once "secure/dbdata.php";
    3. if($mysqli->connect_error) {
    4. echo "Can't connect to database:" . $mysqli_connect_error();
    5. //Biete wenigstens an, zur vorherigen Seite zurückzukehren (via Hyperlink oder autom. Redirect)
    6. exit();
    7. }
    8. $ergebnis = $mysqli->query("SELECT `license`, `until` FROM `licensesystem` WHERE `used` = '0'") ;
    9. while($result = $ergebnis->fetch_array()){
    10. if($result['license'] == $_POST['license']){
    11. //Hier Zuweisung? Falls ja kannst du dir das "$update = " sparen
    12. //Alternative:
    13. //if($mysqli->prepare("UPDATE `licensesystem` SET `used` = '1' WHERE `license` = '" . $_POST["license"] . "'")){
    14. if($update = $mysqli->prepare("UPDATE `licensesystem` SET `used` = '1' WHERE `license` = '" . $_POST["license"] . "'")){
    15. echo "Done";
    16. echo "Expires: " . htmlspecialchars($result['until'], ENT_QUOTES);
    17. }else{
    18. echo "Failed";
    19. }else{
    20. echo "Failed";
    21. }
    22. }
    23. }
    24. $ergebnis->close();
    25. $stmt->close();
    26. $update->close();
    27. $mysqli->close();
    28. ?>

    Zwei else-Zweige klappen nicht so gut.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Wasch da los??



    Fatal error: Call to a member function query() on a non-object in /users/scrumplex/www/EB/License/get.php on line 8

    Code:
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. require_once "secure/dbdata.php";
    3. if($mysqli->connect_error) {
    4. echo "Can't connect to database:" . $mysqli_connect_error();
    5. //Biete wenigstens an, zur vorherigen Seite zurückzukehren (via Hyperlink oder autom. Redirect)
    6. exit();
    7. }
    8. $ergebnis = $mysqli->query("SELECT `license`, `until` FROM `licensesystem` WHERE `used` = '0'") ;
    9. while($result = $ergebnis->fetch_array()){
    10. if($result['license'] == $_POST['license']){
    11. //Hier Zuweisung? Falls ja kannst du dir das "$update = " sparen
    12. //Alternative:
    13. //if($mysqli->prepare("UPDATE `licensesystem` SET `used` = '1' WHERE `license` = '" . $_POST["license"] . "'")){
    14. if($update = $mysqli->prepare("UPDATE `licensesystem` SET `used` = '1' WHERE `license` = '" . $_POST["license"] . "'")){
    15. echo "Done";
    16. echo "Expires: " . htmlspecialchars($result['until'], ENT_QUOTES);
    17. }else{
    18. echo "Failed";
    19. }
    20. }
    21. }
    22. $ergebnis->close();
    23. $stmt->close();
    24. $update->close();
    25. $mysqli->close();
    26. ?>


    Also der soll aufjedenfall auf die Tabelle licensesystem zugreifen und die lizenzen auslesen
    @Lukas: :thumbsup: voll übersehen. Melde mich wohl besser wieder wenn ich gesund bin :rolleyes:


    Zu deinem Fehler: $mysqli scheint kein Objekt zu sein, das eine Methode "query()" beinhaltet.

    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link275“ ()