Fehler im Cashin System...
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
beispiel
betrag
code
date
datum
fehler
forum
idee
jahr
kommentar
limit
marke
monat
spende
stelle
stunde
tag
text
url
-
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/web609/html/pages/spenden.php on line 57
<?PHP if(isset($_SESSION['user_admin']) && checkInt($_SESSION['user_admin']) && $_SESSION['user_admin']>=0) { $maxStunde = 10; $aZeit = array( 'tag' => date("j",time()), 'monat' => date("n",time()), 'jahr' => date("Y",time()), 'stunde' => date("G",time()) ); $cmdAnz = "SELECT COUNT(*) AS anzEintraege FROM ".SQL_HP_DB.".psc_log WHERE DAY(datum)='".$aZeit['tag']."' AND MONTH(datum)='".$aZeit['monat']."' AND YEAR(datum)='".$aZeit['jahr']."' AND HOUR(datum)='".$aZeit['stunde']."' LIMIT 1"; $qryAnz = mysql_query($cmdAnz,$sqlHp); $getAnz = mysql_fetch_object($qryAnz); if($getAnz->anzEintraege<$maxStunde) { if(isset($_POST['getcoins']) && $_POST['getcoins']=="beantragen") { if(checkVoucher($_POST['voucher']) && checkInt($_POST['betrag']) && $kartenTypen[$_POST['cardTyp']] && $waehrungen[$_POST['waehrung']] && $_POST['captcha']==$_SESSION["captcha_id"]) { $cardVoucher = mysql_real_escape_string($_POST['voucher']); $cardVoucher = str_replace('-','',$cardVoucher); $cardBetrag = mysql_real_escape_string($_POST['betrag']); $cardWaehrung = mysql_real_escape_string($_POST['waehrung']); $cardTyp = mysql_real_escape_string($_POST['cardTyp']); $cardPasswort = mysql_real_escape_string($_POST['voucherpass']); $kommentar = mysql_real_escape_string($_POST['kommentar']); $cmdCheck = "SELECT id FROM ".SQL_HP_DB.".psc_log WHERE psc_code='".$cardVoucher."'"; $qryCheck = mysql_query($cmdCheck,$sqlHp); if(mysql_num_rows($qryCheck)>0) { echo'<p class="meldung">Die Spende wurde erfolgreich abgegeben. Als Dank für die Spende werden Ihnen demnächst Coins gutgeschrieben. </p>'; } else { $sqlCmd = sprintf("INSERT INTO ".SQL_HP_DB.".psc_log (account_id,card_type,waehrung,psc_code,psc_betrag,psc_pass,status,kommentar,datum) VALUES ('%s','%s','%s','%s','%s','%s',0,'%s','%s')", $_SESSION['user_id'], $cardTyp, $cardWaehrung, $cardVoucher, $cardBetrag, $cardPasswort, $kommentar, $sqlZeit ); $qryRequest = mysql_query($sqlCmd,$sqlHp); if($qryRequest) { echo'<p class="meldung">Die Spende wurde erfolgreich abgegeben. Als Dank für die Spende werden Ihnen demnächst Coins gutgeschrieben. </p>'; } else { echo'<p class="meldung">Antrag fehlgeschlagen. Bitte einen GM kontaktieren.</p>'; } } } else { echo'<p class="meldung">Es wurden Falscheingaben gemacht. Bitte füllen Sie das Formular noch ein mal korrekt aus.</p>'; } } ?>
Ich werde aus dem tag/fehler">Fehler net schlau .__. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das hat weniger mit deinem Cache zu tun, als mit fehlerhaften SQL-Queries.
-
füge statt
$cmdAnz = "SELECT COUNT(*) AS anzEintraege FROM ".SQL_HP_DB.".psc_log WHERE DAY(datum)='".$aZeit['tag']."' AND MONTH(datum)='".$aZeit['monat']."' AND YEAR(datum)='".$aZeit['jahr']."' AND HOUR(datum)='".$aZeit['stunde']."' LIMIT 1"; $qryAnz = mysql_query($cmdAnz,$sqlHp); $getAnz = mysql_fetch_object($qryAnz);
das hier ein$db = SQL_HP_DB; $cmdAnz = <<< EOT SELECT COUNT(*) AS anzEintraege FROM $db.psc_log WHERE DAY(datum)='$aZeit['tag']' AND MONTH(datum)='$aZeit['monat']' AND YEAR(datum)='$aZeit['jahr']' AND HOUR(datum)='$aZeit['stunde']' LIMIT 1 EOT; // nur mal zu sehen, was da drin ist echo $cmdAnz . '<hr />'; if($qryAnz = mysql_query($cmdAnz,$sqlHp)) { // wenn es gut get echo $getAnz = mysql_fetch_object($qryAnz); } else { // etwas ist faul. das was hier ausgegeben wird, // solltest verstehen oder posten echo '<pre>'.print_r(array(mysql_errno(), mysql_error()), true); }
um zu sehen, was die echte fehlermeldung ist
Beitrag zuletzt geändert: 5.8.2011 1:28:13 von hemiolos -
drafed-map schrieb:
1. EOT ist an dieser Stelle nicht angebracht.
2. Das wird nicht funktionieren, da man Variablen durch doppelte Anführungszeichen vom restlichen Text abgrenzen muss.
also mal langsam mit den pferden. der reihe nach:
1. wer sagt das??
2. wer sagt das?? siehe im beispiel den teil:
sogar das '{...['..']...}' funktioniert! (seltsam?)WHERE description='{$description['desc']}'
Und wirklich: Wie kommt man auf die Idee, an dieser Stelle EOT zu verwenden?
in dem man, bevor man etwas macht, reichlich darüber nachgedacht hat. tuts zu strapazieren ist auch nicht verkehrt.
1. EOT ist überall verwendbar, wo man einer variable TEXT VORFORMATIERT zuweisen will (EOT = 'End Of Text', aber ob manns glaubt oder nicht, es kann statt EOT auch JAECKCHEN_WIE_HOESCHEN heßen, weil das nur eine MARKE ist. im folgendem beispiel steht auch so. ja noch unerhörter, man kann die selbe marke im selben code mehrmals anwenden).
2. der hauptgrund, warum ich so exzessiv damit umgehe, ist, dass man dabei auf escaping so gut wie verzichten kann. (siehe letzte teil des beispiels, wo der htmlcode zusammengesetzt wird. aber auch beim sql-query, wenn man die lesbarkeit durch vormatierung erleichtern will. hier im forum extrem selten.)
für alle, die es glauben - wie @drafed-map sagt - , dass all das nicht gehen kann, hier ein beispiel. ist jetzt alles senkrecht? (wer die ähnlichkeit zur originalaufgabe nicht sieht, dem ist nicht zu helfen.)
lg
p.s.: mein einziger fehler in der eile war:
also array-elemente gehören zwischen {}. mea culpa ...$cmdAnz = <<< EOT SELECT COUNT(*) AS anzEintraege FROM $db.psc_log WHERE DAY(datum)='{$aZeit['tag']}' AND MONTH(datum)='{$aZeit['monat']}' AND YEAR(datum)='{$aZeit['jahr']}' AND HOUR(datum)='{$aZeit['stunde']}' LIMIT 1 EOT;
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage