kostenloser Webspace werbefrei: lima-city


Problem mit MySql-Anweisung in PHP-Script

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    walkonshit

    walkonshit hat kostenlosen Webspace.

    Hi

    ich habe folgendes Problem,
    Mein "Abbuchungs-Script" f?r ein Browsergame streikt. Wenn ich dieses Script ausf?hre kommt kein Fehler oder sonst was. Auch die Funktion Error_reporting(E_ALL) zeigt nix an. Aber wenn ich in die Datenbank schaue ver?ndern sich die Daten nicht. Hier is ma des Script:
    <?  error_reporting(E_ALL);
    
    include("db_connect.php"); 
    
    if(isset($_COOKIE['user']))
    {    
    $user = $_COOKIE['user'];
    
    $ergebnis_mm = mysql_query("SELECT GB_1 FROM Login WHERE    name='$user'");
    
    while($row = mysql_fetch_object($ergebnis_mm))     
    {  
    echo $row->GB_1;
    $stufe_mm = $row->GB_1;
    }
    $a = 2;  
    $b = 1; 
       
    $kosten_m = 40 * pow($a, $stufe_mm); 
    $kosten_k = 20 * pow($a, $stufe_mm);
    $energie = 10 * pow(1.7, $stufe_mm); 
    mysql_free_result($ergebnis_mm);
    $abbuchung = mysql_query("UPDATE `Login` SET `Metall` = `Metall` -     '$kosten_m', `Kristall` = `Kristall` - '$kosten_k', `Energie2` =    `Energie2` + '$energie', `GB_1` = `GB_1` + '$b'");
    
    if($abbuchung == TRUE)
    {  
    mysql_free_result($abbuchung);
    echo "<html>  
    <head> 
    <meta http-equiv=\"refresh\" content=\"1; URL=gebaeude2.php\"> 
    </head>  
    </html>"; 
     }  }   else   { echo "ERROR"; mysql_free_result($abbuchung);}  
    ?>


    thx scho ma im vorraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. k****8

    Ich w?rde an deriner stelle

    $abbuchung = mysql_query("UPDATE Login SET Metall = Metall - '$kosten_m' AND Kristall = Kristall - '$kosten_k' AND Energie2 = Energie2 + '$energie' AND GB_1 = GB_1 + '$b'");

    und

    if($abbuchung)

    Schreiben

    Theoretisch ist eine variable aber nur f?r SELECTs notwendig, da du da results weiterverwenden musst

    Ein Where beim Update w?re auch nicht schlecht

    Zudem w?rde ich ein 2. Cookie schreiben, und dass Passwort einf?gen, da ein Fake zu einfach w?re

    Dann m?sstest du nur noch if(mysql_num_rows(mysql_query("SELECT User FROM Login WHERE User = '$user' AND Pass = '$pass'")) == 1)
    {
    echo "Eingeloggt";
    }

    Am besten w?ren immernoch Sessions

    Und ich w?rde nicht den Cookie-Namen user verwenden, da jede Website, die den Cookie user schreiben will das ?berschreibt

    Ohne Pr?fung w?rst du dann als User eingeloggt der warscheinlich garnicht existiert :?

    Beitrag ge?ndert am 6.06.2006 14:29 von kai008
  4. Autor dieses Themas

    walkonshit

    walkonshit hat kostenlosen Webspace.

    Zudem w?rde ich ein 2. Cookie schreiben, und dass Passwort einf?gen, da ein Fake zu einfach w?re

    Dann m?sstest du nur noch if(mysql_num_rows(mysql_query("SELECT User FROM Login WHERE User = '$user' AND Pass = '$pass'")) == 1)
    {
    echo "Eingeloggt";
    }


    versteh net ganz was du damit erreichen willst :confused:
    es soll nur ein zwischenscript sein was au?erdem versteckt aufm server liegt. Den COOKIE namen werd ich dank deinem tipp ers ma ?ndern. Aber w?r nett wenn du mir noch ma den Sinn der dahinter steht erkl?rst :)
  5. k****8

    z. B.:

    Der User ?ffnet das Cookie, was local am rechner liegt

    ?ndert den Namen, der darin gespeichert wird (Bei IE sind Cookies unverschl?sselt (zumindest alle 6.x))

    Schon w?rde er anderst indentifiziert werden

    Er k?nnte dich steuern, da er ja glaubt dass der Angreifer du bist, da er ja deinen Namen zum ?ndern bekommt

    W?rde er das machen, wenn dein Pass auch gespeichert wird, und nicht zuf?llig dass selbe Pass hat wie du, sucht der Script zuerst nach deinen Namen, h?tte aber noch immer sein Pass, woduch er es nicht findet und ihm ausspeert

    Somit muss er dein Pass haben, um sich als dich auszugeben

    Nat?rlich geh?rt statt echo "Eingeloggt"; der eigendliche Script hin, und unter } else { echo "Account existiert nicht" } oder so, da er ja keinen findet

    Ich denke, dass war jetzt erkl?rend genug :?
  6. Autor dieses Themas

    walkonshit

    walkonshit hat kostenlosen Webspace.

    Ich habe jez die "UPDATE-Zeile" so geschrieben wie mir kai008 empfohlen hat.
    Aber es passiert immer noch nix in der Datenbank :nosmile:.
    Ich find den Fehler einfach net....

    Helft mir bitte...:mad:

    Thx im vorraus

    PS: sollte schnell gehen =P

    Beitrag ge?ndert am 6.06.2006 18:11 von walkonshit

    Beitrag ge?ndert am 7.06.2006 09:20 von walkonshit
  7. Hallo, ich habe den Fehler auch:
    $aendern = "UPDATE `presse` Set `imgfile` = '$imgfile', `urlfile` = '$urlfile', `titel` = '$titel', `datum` = '$datum', `zeitung` = '$zeitung',  WHERE `id` = '$id'";
    $update = mysql_query($aendern) or die("<font size=\"+4\" color=\"#ff0000\">Eintrag konnte nicht bearbeitet werden</font>");


    Bei mir auch, alle Variablen werden ?bergeben,
    keine wird ge?ndert.
    Keine Fehlermeldung,
  8. @speedtouch:
    Vll ist es ja nur hier im Forum so, aber ganz hinten ist ein , zu viel. Probier es mal so:
    $aendern="
     UPDATE 
     presse 
     SET 
     imgfile='$imgfile',
     urlfile='$urlfile,
     titel='$titel',
     datum='$datum',
     zeitung='$zeitung'
     WHERE
     id='$id'
     ";
    mysql_query($aendern) or die("<font size=\"+4\" color=\"#ff0000\">Eintrag konnte nicht bearbeitet werden</font>");


    @kai:
    Bei dir k?nnte das Problem sein, dass er nicht wei?, wo er updaten soll, da du kein WHERE angegeben hast:
    $abbuchung="
     UPDATE 
     Login 
     SET 
     Metall=Metall-'$kosten_m',
     Kristall=Kristall-'$kosten_k',
     Energie2=Energie2+'$energie',
     GB_1=GB_1+'$b'
     WHERE
     name='$user'
     ";
    mysql_query($abbuchung);
  9. Hey, danke, mein Problem (speedtouch92) ist gel?st!
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!