Geringfügige Änderung im Skript

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Geringfügige Änderung im Skript

    Hallo. Mein Ausbauskript kennt man hier ja mittlerweile, es hat auch schon funktioniert, nur hab ich dann irgendeine Kleinigkeit verändert (nur eine Zeile!!) und jetzt funkt nimma. BITTE SAGT MIR JEMAND, WAS ICH DA WIEDER RÜCKGÄNGIG ÄNDERN MUSS!!!!

    Grüße

    Quellcode

    1. <html>
    2. <head>
    3. <title>"Die Elemente" - Startseite</title>
    4. </head>
    5. <body background="grafiken/hg2.jpg" text="#ffffff" link="#ffffff" alink="#ffffff" vlink="#ffffff">
    6. <center>
    7. <table border="1" frame="void" cellpadding="4">
    8. <tr>
    9. <td width="15%">
    10. <img src="grafiken/logo.jpg">
    11. </td>
    12. <td>
    13. <font size="5" color="darkred"><b>BANNER</b></font>
    14. </td>
    15. </tr>
    16. <tr>
    17. <td>
    18. <?php
    19. include("links.html");
    20. ?>
    21. </td>
    22. <td valign="top">
    23. <br />
    24. <?php
    25. session_start();
    26. $verbindung = mysql_connect("localhost", "rezensionen" , "***")
    27. or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    28. mysql_select_db("rezensionen") or die ("Datenbank konnte nicht ausgewählt werden");
    29. $dauer = 200;
    30. $timeeins = time()+$dauer;
    31. $result = mysql_query("SELECT timeeins FROM fabrik WHERE username LIKE '$username'");
    32. $menge = mysql_num_rows($result);
    33. if($menge == 0)
    34. {
    35. $into = "INSERT INTO fabrik (timeeins) VALUES ('$timeeins') WHERE username LIKE '$username'";
    36. $intodb = mysql_query($into);
    37. }
    38. $res = mysql_query("SELECT timeeins, firmenstufe FROM fabrik WHERE username LIKE '$username'");
    39. $row = mysql_fetch_array($res);
    40. $ausbaustufe = $row['firmenstufe']+1;
    41. $restzeit = $row['timeeins']-time();
    42. $ausbaustufe = $row['firmenstufe']+1;
    43. if($row['timeeins'] >= time())
    44. {
    45. echo "Das Gebäude braucht noch ";
    46. echo $restzeit;
    47. echo " Sekunden";
    48. echo ".";
    49. } else {
    50. echo "Das Gebäude ist fertig";
    51. $aendern = "UPDATE fabrik SET fabrikstufe = $ausbaustufe WHERE username LIKE '$username'";
    52. $update = mysql_query($aendern);
    53. $aendernzwei = "UPDATE fabrik SET timeeins = 0 WHERE username LIKE '$username'";
    54. $updatezwei = mysql_query($aendernzwei);
    55. }
    56. ?>
    57. <br />
    58. <br />
    59. <a href="fabrikausbauen.php">Aktualisieren</a>
    60. </td>
    61. </tr>
    62. </table>
    63. </center>
    64. </body>
    65. </html>
    Alles anzeigen


    P.S.: Es wird übrigens angezeigt, dass das Gebäude fertig ist.
    Nach langer Zeit wieder ein bisschen als Programmierer tätig
  • Das hat nichts gebracht. Ich habs auch bei den anderen Seiten so und das funktioniert.
    Das Skript hat auch schon gearbeitet wie es sollte, nur dann hab ich irgendwas geändert (nicht viel, nur einen Wert oder was und das weiß ich nicht mehr) und seit dem gibt er wieder sofort aus
    "Das Gebäude ist fertig"

    Grüße
    Nach langer Zeit wieder ein bisschen als Programmierer tätig
  • Hey Waldi,

    dennoch muss session_start an den Anfang der Datei gesetzt werden, weil die Cookies gesendet werden, bevor die eigentliche Datei gesendet wird - mitten im Skript geht das nicht meht, selbst wenn ein klitzekleines Leerzeichen vorher gesendet wurde.

    Quellcode

    1. <?php session_start(); ?>
    2. <html>
    3. <head><title>...</title>
    4. <body>
    5. ...
    6. </body>
    7. </html>

    funktioniert

    Quellcode

    1. <?php session_start(); ?>
    2. <html>
    3. <head><title>...</title>
    4. <body>
    5. ...
    6. </body>
    7. </html>

    das hier funktioniert nicht, wegen dem Leerzeichen, genausowenig wie

    Quellcode

    1. <html>
    2. <head><title>...</title>
    3. <body>
    4. ...
    5. <?php session_start(); ?>
    6. ...
    7. </body>
    8. </html>


    Außerm würde ich an deiner Stelle $_SESSION['username'] benutzen anstatt nur $username, das ist sicherer. Man könnte so wie du das jetzt hast ganz leicht deine Variablen von außen manipulieren, indem man Variablen an die URL anhängt, mittels get.

    Gruß, David
  • "Waldi" schrieb:

    Ich hab auf allen anderen Seiten die Session genau so gestartet (kopiert) und da funkts auch ohne weiteres. Das liegt nicht daran, da ist irgendwo ein suablöder Fehler drin.

    Dann möchte ich bitte einen Korrektheitsbeweis deines Programmes sehen, am besten mit Hilfe des Hoarekalküls! :wink:

    Und schau mal bitte in deiner php.ini, ob du nicht die Fehlermeldungen unterdrückst.
  • "David" schrieb:


    [...]
    Außerm würde ich an deiner Stelle $_SESSION['username'] benutzen anstatt nur $username, das ist sicherer. Man könnte so wie du das jetzt hast ganz leicht deine Variablen von außen manipulieren, indem man Variablen an die URL anhängt, mittels get.

    Gruß, David


    Hi.

    Meinst du das zum beispiel in dieser Zeile so?:

    Quellcode

    1. $result = mysql_query("SELECT timeeins FROM fabrik WHERE username LIKE '$_SESSION['username']");


    Gelernt hab ich es nämlich "nur" so, wie ichs jetzt habe...
    Nach langer Zeit wieder ein bisschen als Programmierer tätig