PHP Script überträgt keine Daten zu Datenbank.

  • Hallo
    Ich habe ein Script (OnlineWetten Portal) erworben. http://wetten.myfacepage.de
    Ich wollte noch erwähnen, das mir der Verkäufer keine Hilfe gibt, sondern nur ein anderes Script anbietet. Ich würde aber gerne dieses Script benutzen. Der Fehler ist dieser.
    Jeder User bekommt 100 Wettdollar bei Anmeldung. OK
    Jeder User kann Wetten. OK
    Wenn ich aber am ende einer Wette den Wettausgang eintrage und auf senden drücke, rechnet das Programm nicht den Gewinn auf mein Konto. Ich bekomme aber keine Fehlermeldung.
    Ich liste hier mal das script auf , was wohl für den fehler verantwortlich ist. Vieleicht kann jeman dort einen fehler sehen. Danke im vorraus.

    <?php

    // Wenn lg ist ok
    if($lg=="ok") {

    // Variablen
    $ende = $_REQUEST[ende];
    $dd = $_REQUES[dd];

    // Wenn ende und dd "" ist
    if($ende!="") {
    if($dd!="") {

    $topw = mysql_query("SELECT * FROM w_einsatz WHERE wette='".$ende."' AND dd='".$dd."'");
    mysql_query("UPDATE w_wetten SET ende='0' WHERE id='".$ende."'");
    while($wta = mysql_fetch_array($topw)) {

    $upw = mysql_query("SELECT * FROM w_user WHERE user='".$wta[user]."'");
    $wud = mysql_fetch_array($upw);
    $bde = $wta[einsatz] * 2;
    $nks = $wud[konto] + $bde;
    mysql_query("UPDATE w_user SET konto='".$nks."' WHERE id='".$wud[id]."'");

    mail($wud[email],"Wette gewonnen!","Hallo

    Du hast eine Wette bei ".$wstitel." gewonnen und erhältst deinen Einsatz doppelt gutgeschrieben (".$bde." ".$wswaer.").

    Freundliche Grüsse
    ".$wstitel,"From: $wstitel <$wmmail>");

    }
    mysql_query("DELETE FROM w_einsatz WHERE wette='".$ende."'");
    echo "<b><big>Wettausgang mitteilen</big></b><br><br>Vielen Dank für die Mitteilung des Wettausgangs. Die Wette wurde somit erfolgreich beendet und allfällige Wettgewinne wurden den Nutzern gutgeschrieben.";

    // Wenn dd nicht leer ist
    }else{
    $topw = mysql_query("SELECT * FROM w_wetten WHERE id='".$ende."'");
    $wta = mysql_fetch_array($topw);
    echo "<b><big>Wettausgang mitteilen</big></b><br><br><b>".$wta[titel]."</b><br><br>Welche Wettbehauptung hat bei dieser Wette gewonnen?<br><br><form action=index.php method=post style=display:inline><input type=hidden name=d value=wettkonto><input type=hidden name=ende value=".$ende."><input type=radio name=dd value=dafuer><b><font color=darkgreen>Dafür</font></b> &nbsp; &nbsp; &nbsp; &nbsp; <input type=radio name=dd value=dagegen><b><font color=red>Dagegen</font></b><br><br><input type=submit value=Speichern></form>";
    }

    // Wenn ende nicht leer ist
    }else{

    echo "
    <b><big>Mein Wettkonto</big></b><br><br>Mein aktueller Kontostand: <b><font color=darkgreen>".$usrd[konto]." ".$wswaer."</font></b><br><br>
    <b>Meine eigenen Wetten:</b><br><table border=0 cellspacing=5 cellpadding=5>";

    $topw = mysql_query("SELECT * FROM w_wetten WHERE user='$s_user' AND ende NOT LIKE '0' ORDER BY ende DESC");
    $anzw=0;
    while($wtd = mysql_fetch_array($topw)) { $anzw++;
    $diff = $wtd[ende] - time();
    $cdiff=$diff;
    $days = ($diff - ($diff % 86400)) / 86400; $diff = $diff - ($days * 86400);
    $hours = ($diff - ($diff % 3600)) / 3600; $diff = $diff - ($hours * 3600);
    $minutes = ($diff - ($diff % 60)) / 60; $diff = $diff - ($minutes * 60);

    echo "<tr><td><img src=images/ico_w.png></td><td><a href=index.php?wette=".$wtd[id].">".$wtd[titel]."</a></td><td>";
    if($cdiff < 30){
    echo "<font color=red>abgelaufen</font></td><td><a href=index.php?d=wettkonto&ende=".$wtd[id].">Wettausgang&nbsp;eintragen</a></td></tr>";
    }else{
    echo "Noch&nbsp;".$days."T&nbsp;".$hours."Std&nbsp;".$minutes."Min</td></tr>";
    }

    }

    if($anzw==0){
    echo "<tr><td>Du hast derzeit keine Wetten eingestellt.<br><a href=index.php?d=neu>Klicke hier, um eine neue Wette zu erstellen</a></td></tr>";
    }

    echo "<tr><td colspan=5><br><br><b>Meine Wetteinsätze:</b></td></tr>";

    $topw = mysql_query("SELECT * FROM w_einsatz WHERE user='$s_user' ORDER BY datum DESC");
    $anzw=0;
    while($wtd = mysql_fetch_array($topw)) { $anzw++;

    $etopw = mysql_query("SELECT * FROM w_wetten WHERE id='".$wtd[wette]."'");
    $ewtd = mysql_fetch_array($etopw);

    $diff = $ewtd[ende] - time();
    $cdiff = $diff;

    $days = ($diff - ($diff % 86400)) / 86400; $diff = $diff - ($days * 86400);
    $hours = ($diff - ($diff % 3600)) / 3600; $diff = $diff - ($hours * 3600);
    $minutes = ($diff - ($diff % 60)) / 60;

    if($cdiff > 10){
    echo "<tr><td><img src=images/ico_w.png></td><td><a href=index.php?wette=".$ewtd[id].">".$ewtd[titel]."</a></td><td>Noch&nbsp;".$days."T&nbsp;".$hours."Std&nbsp;".$minutes."Min</td><td>Einsatz:&nbsp;".$wtd[einsatz]."&nbsp;".$wswaer."</td></tr>";
    }
    }

    if($anzw==0){
    // echo "<tr><td>Du hast derzeit keine Wetten eingestellt.<br><a href=index.php?d=neu>Klicke hier, um eine neue Wette zu erstellen</a></td></tr>";
    echo "<tr><td>Du hast keine Wetteinsätze im System.</td></tr>";

    }

    echo "</table><br><br>";

    }


    // Wenn lg ist nicht ok
    }else{
    echo "<b><big>Bitte einloggen</big></b><br><br><form action=index.php method=post style=display:inline><input type=hidden name=d value=".$d."><table border=0 cellspacing=5 cellpadding=5 align=center><tr><td>Benutzername:</td><td><input type=text name=user style=width:200px></td></tr><tr><td>Passwort:</td><td><input type=password name=pass style=width:200px></td></tr><tr><td colspan=2 align=right><input type=submit value=Einloggen></td></tr></table></form>";
    }

    ?>

  • ich hab dein code jetzt nur mal überflogen und 2 sachen festgestellt...

    PHP
    if($ende!="") {
    if($dd!="") {

    is unnötig. machs lieber in einer abfrage

    PHP
    if($ende!="" && $dd!="") {..}


    und zum zweiten - wo stellst du denn die verbindung zum server bzw der datenbank her ?
    ich seh zwar, dass du mit selects und updates drauf zugreifst - aber nicht wo du
    angibst wo die db is oder iwas in der richtung...

    such doch mal -> http://www.google.de/#hl=de&source=…iw=1280&bih=839
    bin sicher da siehst recht schnell was dir fehlt ;)

  • mach mal ein

    PHP
    error_reporting(E_ALL);
    ini_set('display_errors', 1);


    zu beginn des php scripts um fehler anzuzeigen...

    und ans ende:

    PHP
    print '<font color="red"><b>' . mysql_error() . '</b></font>';


    zum anzeigen von mysql fehlern...

    Gruß crAzywuLf :D

    Einmal editiert, zuletzt von crAzywuLf (16. Juni 2011 um 12:17)

  • Nochmal Danke für die schnellen Antworten, aber ich bin nicht gut mit php. Am liebsten, wäre es mir, wenn ich jemanden das script schicken könnte, und er schaut sich das script mal an.

  • Und ich nehme an, mit "anschauen" meinst du "korrigiert zurückschicken"? ;) Erstmal Service für die anderen:

    Der Syntaxfehler stammt daher, dass du zwei Verzweigungen aufmachst und wieder zumachst. Wenn du jetzt beide Verzweigungen zu einer verschmilzt, wie von driver vorgeschlagen, machst du eine auf, aber immer noch zwei zu->Fehler. Ich würde diesen Teil einfach so lassen, wie es ist, denke ich, zumal du weitere else-Zweige hast.

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Besten Dank.
    Es lag wohl nur an dem fehlenden T

    // Variablen
    $ende = $_REQUEST[ende];
    $dd = $_REQUEST[dd]; //<<<<<<<<<<Ich hoffe doch, hier stand auch vorher schon REQUEST statt REQUES

    Tolle hilfe hier. Also nochmal Dankeschön