Problem mit Punktetransfer von PaidMail 1.0 ( Script )

skyblue

Member
9 Mai 2008
10
0
Hallo zusammen,
ich hoffe ihr könnt mir helfen?

Wenn meine User den Punktetransfer benutzen, kommt bei denen den Fehler ".... ist Ihr Benutzername. Bitte einen anderen wählen.".

Das Problem ist, das der Username (Absender) schon im Feld drinsteht, der die Punkte transferieren möchte. Nach direkteingabe schmeißt das Progg den Empfänger raus und der Absender steht wieder drin.

Warum?

Hier sind Screenshots:
f57101c5d4c5198cf2ac1cc17fe01c31_1.jpg


f57101c5d4c5198cf2ac1cc17fe01c31_2.jpg
 
Zeig doch mal bitte den dazugehörigen Quelltext. So lässt sich das Problem viel schneller und einfacher beheben. ;)
 
ok

PHP:
<?php 
require("../config/config.php");
$db = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
mysql_select_db($dbname,$db) or die(mysql_error());

require ('sesspruf.php');
sesspruf($sessionid);

include("../header.php");

include('menu.php');

$ablauf=time();
$datum = date("d.m.y");

$fdaten = mysql_query("SELECT punktetransferg FROM mt_settings");
$frow2 = mysql_fetch_row($fdaten);
$idletime=time()-(86400*$frow2[0]);
$fdaten2=mysql_query("select ablauf from mt_punktetransfer where ablauf<'$idletime'");
$frow3 = mysql_fetch_row($fdaten2);
if ($frow3[0] >= 1){
    mysql_query("delete from mt_punktetransfer where ablauf<'$idletime'");
}

$daten6 = mysql_query("select punktetransferg,punktetransferk from mt_settings");
$row6 = mysql_fetch_row($daten6);

$daten = mysql_query("select user,guthaben from mt_user where session='$sessionid'");
$row = mysql_fetch_row($daten);
if($row[1] > $row6[1]){
$row[1] -= $row6[1];
$update="<br>Sie können maximal <b>$row[1]</b> Punkte transferieren. Transferdaten bleiben <b>$row6[0]</b> Tage gespeichert. Ihnen werden pro transfer <b>$row6[1]</b> Punkte abgezogen.";

$daten4 = mysql_query("select user from mt_user where user='$user2'");
$row4 = mysql_num_rows($daten4);
$row5 = mysql_fetch_row($daten4);

if($ok == 'ok'){
if($user2 == ''){
$update2="Bitte einen User angeben.";
}elseif($row4 != 1){
$update2="User nicht gefunden.";
}elseif($row5[0] == $row[0]){
$update2="$row[0] ist Ihr Benutzername. Bitte einen anderen wählen.";
}elseif($punkte == ''){
$update2="Bitte die Anzahl der Punkte angeben.";
}elseif($punkte == "+-"){
$update2="Bitte die Anzahl der Punkte ohne + oder - angeben.";
}elseif($punkte <= 0){
$update2="Bitte mehr als 0 Punkte eingeben.";
}elseif($punkte > $row[1]){
$update2="Sie können maximal $row[1] Punkte transferieren.";
}else{
mysql_query("update mt_user set punkteabzug=punkteabzug-$punkte-$row6[1], guthaben=guthaben-$punkte-$row6[1] where user='$row[0]'");
mysql_query("update mt_user set punkteabzug=punkteabzug+$punkte, guthaben=guthaben+$punkte where user='$user2'");
mysql_query("insert into mt_punktetransfer (user,user2,punkte,grund,datum,ablauf) VALUES ('$row[0]','$user2','$punkte','$grund','$datum','$ablauf')");
$daten = mysql_query("select user,guthaben from mt_user where session='$sessionid'");
$row = mysql_fetch_row($daten);
$row[1] -= $row6[1];
}
if($row[1] < $row6[1]){
$update="<br><font color=\"#FF0000\">Sie haben nicht genug Punkte um welche zu transferieren.</font><br>Transferdaten bleiben <b>$row6[0]</b> Tage gespeichert. Ihnen werden pro transfer <b>$row6[1]</b> Punkte abgezogen.";
}else{
$update="<br>Sie können maximal <b>$row[1]</b> Punkte transferieren. Transferdaten bleiben <b>$row6[0]</b> Tage gespeichert. Ihnen werden pro transfer <b>$row6[1]</b> Punkte abgezogen.";
}}}else{
$update="<br><font color=\"#FF0000\">Sie haben nicht genug Punkte um welche zu transferieren.</font><br>Transferdaten bleiben <b>$row6[0]</b> Tage gespeichert. Ihnen werden pro transfer <b>$row6[1]</b> Punkte abgezogen.";
}
?>
<center><b><font face="Verdana" size="2">Punktetransfer</font></b><font size="2" face="Verdana"><b><br></b><?php echo"$update"; ?><br><br><font color="#FF0000"><b><?php echo"$update2"; ?></b></font>
<?php
$daten = mysql_query("select user,guthaben from mt_user where session='$sessionid'");
$row7 = mysql_fetch_row($daten);
if($row7[1] > $row6[1]){
echo"<form method=\"POST\" action=\"punktetransfer.php?sessionid=$sessionid\">
  <table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"250\">
    <tr>
      <td width=\"50%\"><font size=\"2\" face=\"Verdana\"><b>An User:</b></font></td>
      <td width=\"50%\"><font size=\"2\" face=\"Verdana\">
      <input type=\"text\" name=\"user2\" value=\"$user2\" size=\"20\"></font></td>
    </tr>
    <tr>
      <td width=\"50%\"><font size=\"2\" face=\"Verdana\"><b>Punkte:</b></font></td>
      <td width=\"50%\"><font size=\"2\" face=\"Verdana\">
      <input type=\"text\" name=\"punkte\" value=\"$punkte\" size=\"20\"></font></td>
    </tr>

    <tr>
      <td width=\"50%\"><b><font face=\"Verdana\" size=\"2\">Grund:</font></b></td>
      <td width=\"50%\"><font size=\"2\" face=\"Verdana\">
      <input type=\"text\" name=\"grund\" value=\"$grund\" size=\"20\"></font></td>
    </tr>
  </table>
  <p><input type=\"submit\" name=\"ok\" value=\"ok\"></p>
</center></form></font>";
}
echo"
<br><center>
   <table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"98%\">
    <tr>
      <td colspan=\"4\">
      <p align=\"center\"><b><font size=\"2\" face=\"Verdana\">Punkte übertragen</font></b></td>
    </tr>
    <tr>
      <td colspan=\"4\"><hr color=\"#000000\" size=\"0\"></td>
    </tr>
    <tr>
      <td width=\"20%\"><b><font size=\"2\" face=\"Verdana\">An User</font></b></td>
      <td width=\"20%\"><b><font size=\"2\" face=\"Verdana\">Punkte</font></b></td>
      <td width=\"40%\"><b><font size=\"2\" face=\"Verdana\">Grund</font></b></td>
      <td width=\"20%\"><b><font face=\"Verdana\" size=\"2\">Datum</font></b></td>
    </tr>";

$daten2 = mysql_query("select * from mt_punktetransfer where user='$row[0]'");
while($row2 = mysql_fetch_array($daten2)) {
echo"<tr>
      <td width=\"20%\"><font size=\"2\" face=\"Verdana\">$row2[user2]</font></td>
      <td width=\"20%\"><font size=\"2\" face=\"Verdana\">$row2[punkte]</font></td>
      <td width=\"40%\"><font size=\"2\" face=\"Verdana\">$row2[grund]</font></td>
      <td width=\"20%\"><font size=\"2\" face=\"Verdana\">$row2[datum]</font></td>
</tr>";
}
echo"</table></center>";
echo"<br><br><center>
  <table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\">
    <tr>
      <td colspan=\"4\">
      <p align=\"center\"><b><font size=\"2\" face=\"Verdana\">Punkte bekommen</font></b></td>
    </tr>
    <tr>
      <td colspan=\"4\"><hr color=\"#000000\" size=\"0\"></td>
    </tr>
    <tr>
      <td width=\"20%\"><b><font size=\"2\" face=\"Verdana\">Von User</font></b></td>
      <td width=\"20%\"><b><font size=\"2\" face=\"Verdana\">Punkte</font></b></td>
      <td width=\"40%\"><b><font size=\"2\" face=\"Verdana\">Grund</font></b></td>
      <td width=\"20%\"><b><font face=\"Verdana\" size=\"2\">Datum</font></b></td>
    </tr>";
$daten3 = mysql_query("select * from mt_punktetransfer where user2='$row[0]'");
while($row3 = mysql_fetch_array($daten3)) {
echo"<tr>
      <td width=\"20%\"><font size=\"2\" face=\"Verdana\">$row3[user]</font></td>
      <td width=\"20%\"><font size=\"2\" face=\"Verdana\">$row3[punkte]</font></td>
      <td width=\"40%\"><font size=\"2\" face=\"Verdana\">$row3[grund]</font></td>
      <td width=\"20%\"><font size=\"2\" face=\"Verdana\">$row3[datum]</font></td>
</tr>";
}
echo"</table></center>";
include("../footer.php");
?>
 
Zuletzt bearbeitet von einem Moderator:
versuch mal:
PHP:
}elseif($row5[0] == $row[0]){
in
PHP:
}elseif($user2 == $row[0]){
zu ändern. (zeile 44)

ohne Garantie, nur überflogen.
Da ist einiges... "kurios" (ich erspar dir den Monolog)
das könnte aber ggf. schon reichen.
 
Wenn schon beim Aufruf des Punktetransfers etwas im Feld "Username" steht, stimmt da aber etwas nicht, denn eine Variable namens "$user2" wird beim Aufruf eigentlich nicht übergeben.

Funktioniert denn der Rest des Scriptes einwandfrei ?

Grüsse
nephro
 
Hallo nephrotrans,

beim Aufruf des Punktetransfers steht immer ein Username drin. Und das will ich weghaben, glaube das dann auch die Punktetransfer funktioniert. Aber nur wie bekommt man das weg?

Mit dem Gewinnspiel Addon gibt es auch ein Problem, ansonsten keine Probleme.

Gruß
skyblue
 
Hi,

dann mach mal in Zeile 79 das:

PHP:
value=\\"$user2\"
weg, dann sollte das weg sein.

Ich habe das gesamte Script aber eh nur mit Register Globals auf ON fehlerfrei zum Laufen bekommen, diese Funktion wird allerdings nicht von allen Webspaceprovidern unterstützt.

Grüsse
nephro
 
Zuletzt bearbeitet:
-.-
1.
Welche Ergebnisse hast du durch Debugging bereits?
antwort?
dann schreibe mal Igor an das ist der Progger von dem Script er kann dir helfen
hier seine email adresse [email protected]
was kam raus?
Hallo sniper09,
vielen Dank, das werde ich jetzt mal machen.
schön :)
denn eine Variable namens "$user2" wird beim Aufruf eigentlich nicht übergeben.
das biest nennt sich register_globals
dann mach mal in Zeile 79 das:
PHP:
value=\\"$user2\"
weg, dann sollte das weg sein.
Ich habe das gesamte Script aber eh nur mit Register Globals auf ON fehlerfrei
deshalb sollte ja der verursacher auch support liefern.
das skript ist doch mindestens 5 jahre alt, liest sich total grausam und wundert mich dass das überhaupt noch läuft.
ne variable beim echo rauswerfen ändert nix dran dass da viel schief läuft, und offensichtlich keiner lust hat sich durch den käse da zu lesen.
woher kommt denn nun $user2 beim ersten aufruf? ist nicht ersichtlich...

(db struktur mt, include menu.php sieht nach jagusch aus, im threadtitel steht was von paidmail1.0...., wasn das nu für nen zusammengemixtes zeugs?)

der ganze thread gehört wohl eher in lose4scripts, da kommt ggf. noch was sinnvolles raus, oder irgendwer findet sich der das einfach neu tippelt (ja, auch sinnlos weil die seite demnächst zusammenfällt).

@ nephrotrans ich hätte gern ne liste aller seiten wo "aushilfst" bzw. geholfen hast. dann weiss ich wo ich mich nicht anmelde.
 
-.-
@ nephrotrans ich hätte gern ne liste aller seiten wo "aushilfst" bzw. geholfen hast. dann weiss ich wo ich mich nicht anmelde.

Warum sollte ich irgendwo aushelfen (ausser mal hinterm Tresen) ? Wer behauptet, ich wäre hilfsbereit, der lügt :D

Spaß beiseite, ich muss 12 Stunden am Tag Geld verdienen, da habe ich doch für sowas keine Zeit...

Um Deine Frage zu beantworten...Paidmail 1.0 geht ursprünglich aus dem MT-Script hervor, hier halt mit der Erweiterung zum Paidmailscript (es gibt wohl ein Addon, um die Punkte in Euro umzuwandeln etc., was den Mailtausch praktisch in einen Paidmailer verwandelt).

delicious schrieb:
woher kommt denn nun $user2 beim ersten aufruf? ist nicht ersichtlich...

Das ist die entscheidende Frage. Ein user2 kommt zumindest in keiner anderen Datei des Scripts vor und der Aufruf dieser Datei erfolgt einfach mit www.domain.xx/members/punktetransfer.php