Lizenzsystem mit VB 2010, PHP und MySQLi

    • VB.NET

    Es gibt 81 Antworten in diesem Thema. Der letzte Beitrag () ist von Manawyrm.

      nächster fehler:

      Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /var/www/web46/html/lizenz/generate.php on line 22


      Zeile22 ist:
      echo htmlspecialchars($license); echo "<br />";echo "Gültig bis: " . htmlspecialchars($unti)l;


      Edit egal was ich wie ausßbessere ich bekomm immer weitere errors.....

      Warning: mysqli::mysqli() [mysqli.mysqli]: (00000/1130): Host 'web.gsxtream-hosting.de' is not allowed to connect to this MySQL server in /var/www/web46/html/lizenz/generate.php on line 7

      Warning: main() [function.main]: Couldn't fetch mysqli in /var/www/web46/html/lizenz/generate.php on line 8

      Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch mysqli in /var/www/web46/html/lizenz/generate.php on line 12

      Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch mysqli in /var/www/web46/html/lizenz/generate.php on line 13

      Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch mysqli in /var/www/web46/html/lizenz/generate.php on line 14

      Warning: mysqli::prepare() [mysqli.prepare]: Couldn't fetch mysqli in /var/www/web46/html/lizenz/generate.php on line 15

      Fatal error: Call to a member function close() on a non-object in /var/www/web46/html/lizenz/generate.php on line 30
      GOOGLE ist mein Meister :)

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

      Warning: mysqli::mysqli() [mysqli.mysqli]: (00000/1130): Host 'web.gsxtream-hosting.de' is not allowed to connect to this MySQL server in /var/www/web46/html/lizenz/generate.php on line 7

      das kann ich dir (glaube ich :rolleyes: ) sagen:

      Deine Zugangsdaten sind falsch, weil wenn er dir keine Berechtigung gibt, dann hast du falsche Daten angegeben.

      Der Rest ist nur, dass das Mysqli-Objekt gar nicht richtig erstellt wurde.

      Der erste Fehler muss statt $unti)l; so heißen:

      $until);

      MFG

      Alex-Digital :D
      Danke

      bei der generate.php fehlt noch der abschluss für den PHP Tag (?>)
      und bei der dbdaten.php der ganze php tag.

      nichts desto trotz bekomm ich keine verbindung zu meiner localen db obwohl ich die zugangsdaten so ca 50000 mal geprüft hab.

      mfg
      GOOGLE ist mein Meister :)
      index.php

      PHP-Quellcode

      1. <form action = "generate.php" method="post">
      2. Vorname:
      3. <br />
      4. <input type = "text" name = "vorname" />
      5. <br />
      6. Nachname:
      7. <br />
      8. <input type = "text" name = "nachname" />
      9. <br />
      10. <input type = "submit" value = "Lizenzschlüssel anfordern" />
      11. </form>


      get.php

      PHP-Quellcode

      1. <?php
      2. require_once "sicher/dbdaten.php";
      3. if($mysqli->connect_error) {
      4. echo "Fehler bei der Verbindung:" . $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 "Erfolgreich";
      12. echo "Gültig: " . htmlspecialchars($result['until']);
      13. } else {
      14. echo "Fehlgeschlagen";
      15. } else {
      16. echo "Fehlgeschlagen";
      17. } }
      18. $ergebnis->close();
      19. $stmt->close();
      20. $update->close();
      21. $mysqli->close();
      22. ?>



      generate.php

      PHP-Quellcode

      1. <?php
      2. require_once "sicher/dbdaten.php";
      3. $astr = substr($_POST["vorname"], 3) . rand(0,10);
      4. $bstr = substr($_POST["nachname"], 3) . rand(0,10);
      5. $hash = $astr . $bstr;
      6. $license = hash('sha256', $hash);
      7. $mysqli = new mysqli(datenbank,benutzername,passwort,server);
      8. if($mysqli->connect_error) {
      9. echo "Fehler bei der Verbindung:" . $mysqli_connect_error();
      10. exit();
      11. }
      12. $program = $mysqli->real_escape_string("IhrProgramm"); /* Geben sie ihren Programmennamen ein */
      13. $used = $mysqli->real_escape_string("0");
      14. $until = $mysqli->real_escape_string(date("d.m.Y",strtotime("+1 year")));
      15. if($stmt = $mysqli->prepare("INSERT INTO licensesystem (license,program,used,until) VALUES (?,?,?,?)")) {
      16. $stmt->bind_param("ssis", $license, $program, $used, $until);
      17. $stmt->execute();
      18. }
      19. if($stmt->affected_rows != 0) {
      20. echo "Ihr Lizenzschlüssel:";
      21. echo "<br />";
      22. echo htmlspecialchars($license); echo "<br />";echo "Gültig bis: " . htmlspecialchars($until);
      23. } else {
      24. echo "Er ist ein Fehler aufgetreten.";
      25. }
      26. $stmt->close();
      27. $mysqli->close();
      28. ?>


      und die dbdaten.php in dem ordner /sicher

      PHP-Quellcode

      1. <?php
      2. define('server','localhost'); /* Normalerweise localhost */
      3. define('datenbank','DATENBANK');
      4. define('benutzername','BENUTZER');
      5. define('passwort','PASSWORT');
      6. ?>
      GOOGLE ist mein Meister :)
      Das wäre die Datei.

      PHP-Quellcode

      1. <?php
      2. require_once "sicher/dbdaten.php";
      3. if($mysqli->connect_error) {
      4. echo "Fehler bei der Verbindung:" . $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 "Erfolgreich";
      12. echo "Gültig: " . htmlspecialchars($result['until']);
      13. } else {
      14. echo "Fehlgeschlagen";
      15. } else {
      16. echo "Fehlgeschlagen";
      17. } }
      18. $ergebnis->close();
      19. $stmt->close();
      20. $update->close();
      21. $mysqli->close();
      22. ?>
      Probier es mal so:

      PHP-Quellcode

      1. <?php
      2. require_once "sicher/dbdaten.php";
      3. if($mysqli->connect_error) {
      4. echo "Fehler bei der Verbindung:" . $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 "Erfolgreich";
      12. echo "Gültig: " . htmlspecialchars($result['until']);
      13. } else {
      14. echo "Fehlgeschlagen";
      15. } else {
      16. echo "Fehlgeschlagen";
      17. }
      18. }
      19. $ergebnis->close();
      20. $stmt->close();
      21. $update->close();
      22. $mysqli->close();
      23. ?>

      PHP-Quellcode

      1. if($result['license'] == $_POST["license"]) {

      ...
      „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.
      zeile 13

      PHP-Quellcode

      1. if ($result('license') = $_POST["license"]) {

      anstatt

      PHP-Quellcode

      1. if ($result('license') = $_POST["license"]) {


      ;)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Sgt. Space“ ()

      Jo, Fehler ist behoben. Jetzt kommen nur noch in den Zeilen: 14,17,19,28 Fehler.

      PHP-Quellcode

      1. <?php
      2. require_once "sicher/dbdaten.php";
      3. if($mysqli->connect_error) {
      4. echo "Fehler bei der Verbindung:" . $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 "Erfolgreich";
      12. echo "Gültig: " . htmlspecialchars($result['until']);
      13. } else {
      14. echo "Fehlgeschlagen";
      15. } else {
      16. echo "Fehlgeschlagen";
      17. }
      18. }
      19. $ergebnis->close();
      20. $stmt->close();
      21. $update->close();
      22. $mysqli->close();
      23. ?>
      Auch wenn mich dieses "$update" stört, da es nicht definiert ist, probier mal das:

      PHP-Quellcode

      1. <?php
      2. require_once "sicher/dbdaten.php";
      3. if($mysqli->connect_error) {
      4. echo "Fehler bei der Verbindung:" . $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 "Erfolgreich";
      12. echo "Gültig: " . htmlspecialchars($result['until']);
      13. } else {
      14. echo "Fehlgeschlagen";
      15. } else {
      16. echo "Fehlgeschlagen";
      17. }
      18. }
      19. }
      20. $ergebnis->close();
      21. $stmt->close();
      22. $update->close();
      23. $mysqli->close();
      24. ?>
      Danke, nur in Zeile 19 wird jetzt wieder ein Fehler angezeigt: "Parse error: syntax error, unexpected T_ELSE in /users/tolio/www/licenceHFS52/get.php on line 19"

      PHP-Quellcode

      1. <?php
      2. require_once "../sicher/dbdaten.php";
      3. if($mysqli->connect_error) {
      4. echo "Fehler bei der Verbindung:" . $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 "Erfolgreich";
      12. echo "Gültig: " . htmlspecialchars($result['until']);
      13. } else {
      14. echo "Fehlgeschlagen";
      15. } else {
      16. echo "Fehlgeschlagen";
      17. }
      18. }
      19. }
      20. $ergebnis->close();
      21. $stmt->close();
      22. $update->close();
      23. $mysqli->close();
      24. ?>
      Sooo.. jetzt sollte es funktionieren :)

      PHP-Quellcode

      1. <?php
      2. require_once "../sicher/dbdaten.php";
      3. if($mysqli->connect_error) {
      4. echo "Fehler bei der Verbindung:" . $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 "Erfolgreich";
      12. echo "Gültig: " . htmlspecialchars($result['until']);
      13. } else {
      14. echo "Fehlgeschlagen";
      15. }
      16. }
      17. }
      18. $ergebnis->close();
      19. $stmt->close();
      20. $update->close();
      21. $mysqli->close();
      22. ?>