Pr1me
16.09.2008, 13:06
Hi,
ich benutze ein paypalscript, ja immer noch am selben ich dran bin XD, problem ist nun das anscheinend alles geht ^bis auf... ja :D
Also bezahl und bestellvorgang fluppt rund, problem ist nun das die logindaten die per mail nach bestellung an den user gehn zwar in die htgroup werden jedoch in der htpasswd zwar eingetragen jedoch ohne frei bzw leerzeichen (falls das leerzeichen in dem falle überhaupt eine roll spielt), interessant ist das ich mich nach der bestellung nicht mit den daten einloggen kann, erzeuge ich jedoch einen user manuell und trage die daten in die entsprechenden .ht-files ein gehts reibungslos.
Ich vermute daher da die einzige datei die für die daten-weitergabe und bearbeitung die paypal.php ist dort der fehler liegt, vermutlich aufgrund der tatsache das vieles in php4 ist bzw war ich zum großteil auch schon angepasst habe jedoch dieser teil des scriptes nicht so zu funktionieren scheint wie es sollte. Evtl fällt jemandem noch was zu ein.
<?
$E_INSTELLUNGEN = "/srv/www/htdocs/shop/einstellungen_03e9ff23l.php";
include($E_INSTELLUNGEN);
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
$custom = $_POST['custom'];
$EXPLODE = explode("|||", $custom);
$gruppe = $EXPLODE[0];
$usersname = $EXPLODE[1];
if (!$fp)
{
// HTTP ERROR
}
else
{
fputs ($fp, $header . $req);
while (!feof($fp))
{
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0)
{
if($item_name == "PASSWORT KAUFEN")
{
$passwortLogDatei = $PFAD.$daten;
$daten2 = $PFAD.".htpasswd";
$daten3 = $PFAD.".htgroup";
@include($PFAD.'gruppen/'.$gruppe.'.php');
if($payment_amount == $PREIS_01) {$sekunden = $SEKUNDEN_01;}
elseif($payment_amount == $PREIS_02) {$sekunden = $SEKUNDEN_02;}
elseif($payment_amount == $PREIS_03) {$sekunden = $SEKUNDEN_03;}
elseif($payment_amount == $PREIS_04) {$sekunden = $SEKUNDEN_04;}
elseif($payment_amount == $PREIS_05) {$sekunden = $SEKUNDEN_05;}
elseif($payment_amount == $PREIS_06) {$sekunden = $SEKUNDEN_06;}
elseif($payment_amount == $PREIS_07) {$sekunden = $SEKUNDEN_07;}
elseif($payment_amount == $PREIS_08) {$sekunden = $SEKUNDEN_08;}
elseif($payment_amount == $PREIS_09) {$sekunden = $SEKUNDEN_09;}
elseif($payment_amount == $PREIS_10) {$sekunden = $SEKUNDEN_10;}
function ZZ2($EinstPass=0)
{
$EinstPass2 = "8";
$EinstPass = "";
$zeichen2 = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9";
$array_r = explode(",",$zeichen2);
for($g=0;$g<$EinstPass2;$g++)
{
srand((double)microtime()*1000000);
$x = rand(0,35);
$EinstPass .= "".$array_r[$x]."";
}
return $EinstPass;
}
$passwort2 = ZZ2();
if($pw_verschluesseln == "JA")
{
$passwort_x = crypt($passwort2,"33");
}
else
{
$passwort_x = $passwort2;
}
$time = time();
$endet_am = $time + $sekunden;
$fp = fopen($passwortLogDatei, "a+");
flock($fp,2);
fputs ($fp, "$endet_am&&$payer_email&&$usersname&&$passwort2&&\n");
flock($fp,3);
fclose ($fp);
$fpx = fopen($daten2, "a+");
flock($fpx,2);
fputs ($fpx, "$usersname:$passwort_x");
flock($fpx,3);
fclose ($fpx);
$fxp3 = fopen($daten3,"r");
$contents3 = fread($fxp3, filesize($daten3));
fclose($fxp3);
$replace3 = ereg_replace($gruppe.": ",$gruppe.": ".$usersname." ", $contents3);
$fh=fopen($daten3, "w");
@flock($fp,2);
fputs($fh, $replace3);
@flock($fp,3);
fclose($fh);
$pruefung = @file($passwortLogDatei);
$tester = $endet_am;
while(list ($line_num, $line) = @each($pruefung))
{
$zeiten = explode("&&",$line);
if($zeiten[0] <= $tester)
{
$tester = $zeiten[0];
}
}
$C_datei = fopen($PFAD.$NEXT,"r");
$C_ounterstand = fgets($C_datei, 12);
fclose($C_datei);
if($C_ounterstand >= $tester)
{
unlink($PFAD.$NEXT);
$fpx = fopen($PFAD.$NEXT, "w+");
fputs ($fpx, "$tester");
fclose ($fpx);
chmod($PFAD.$NEXT,0777);
}
$Datum = date("d",$endet_am).".".date("n",$endet_am).".".date("Y",$endet_am)." at ".date("G",$endet_am).".".date("i",$endet_am).".".date("s",$endet_am)." o`clock";
$text = $derPaypal_EmailText."\n\nyour password: ".$passwort2."\n your username: ".$usersname."\n\n your password expiring at: ".$Datum."\n\n".$EMAIL_FOOTER;
$text = str_replace('\n','',$text);
$text = wordwrap($text, 70);
$header = "From: \"".$deine_absendermail."\" <".$deine_absendermail.">\n";
@mail($payer_email, $MAILBETREFF, $text, $header);
if($BestaetigungsMailSchicken == "JA")
{
$betreff2 = "Ein Passwort wurde via Paypal generiert";
$header = "From: \"".$deine_absendermail."\" <".$deine_absendermail.">\n";
@mail($deine_absendermail, $betreff2, $text, $header);
}
}
}
else if (strcmp ($res, "INVALID") == 0)
{
// log for manual investigation
}
}
fclose ($fp);
}
?>
in der datei einstellungen.php sind nur texte zu finden die dann eingetragen werden in die email und andere .php denke mal diese spielt keine rolle.
--======================================--
--== automatische Beitragszusammenführung ==--
--======================================--
Pr1me schrieb nach 32 Stunden, 8 Minuten und 5 Sekunden:
fixed, war ein \n zuwenig ^^ *g
plz closen
ich benutze ein paypalscript, ja immer noch am selben ich dran bin XD, problem ist nun das anscheinend alles geht ^bis auf... ja :D
Also bezahl und bestellvorgang fluppt rund, problem ist nun das die logindaten die per mail nach bestellung an den user gehn zwar in die htgroup werden jedoch in der htpasswd zwar eingetragen jedoch ohne frei bzw leerzeichen (falls das leerzeichen in dem falle überhaupt eine roll spielt), interessant ist das ich mich nach der bestellung nicht mit den daten einloggen kann, erzeuge ich jedoch einen user manuell und trage die daten in die entsprechenden .ht-files ein gehts reibungslos.
Ich vermute daher da die einzige datei die für die daten-weitergabe und bearbeitung die paypal.php ist dort der fehler liegt, vermutlich aufgrund der tatsache das vieles in php4 ist bzw war ich zum großteil auch schon angepasst habe jedoch dieser teil des scriptes nicht so zu funktionieren scheint wie es sollte. Evtl fällt jemandem noch was zu ein.
<?
$E_INSTELLUNGEN = "/srv/www/htdocs/shop/einstellungen_03e9ff23l.php";
include($E_INSTELLUNGEN);
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
$custom = $_POST['custom'];
$EXPLODE = explode("|||", $custom);
$gruppe = $EXPLODE[0];
$usersname = $EXPLODE[1];
if (!$fp)
{
// HTTP ERROR
}
else
{
fputs ($fp, $header . $req);
while (!feof($fp))
{
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0)
{
if($item_name == "PASSWORT KAUFEN")
{
$passwortLogDatei = $PFAD.$daten;
$daten2 = $PFAD.".htpasswd";
$daten3 = $PFAD.".htgroup";
@include($PFAD.'gruppen/'.$gruppe.'.php');
if($payment_amount == $PREIS_01) {$sekunden = $SEKUNDEN_01;}
elseif($payment_amount == $PREIS_02) {$sekunden = $SEKUNDEN_02;}
elseif($payment_amount == $PREIS_03) {$sekunden = $SEKUNDEN_03;}
elseif($payment_amount == $PREIS_04) {$sekunden = $SEKUNDEN_04;}
elseif($payment_amount == $PREIS_05) {$sekunden = $SEKUNDEN_05;}
elseif($payment_amount == $PREIS_06) {$sekunden = $SEKUNDEN_06;}
elseif($payment_amount == $PREIS_07) {$sekunden = $SEKUNDEN_07;}
elseif($payment_amount == $PREIS_08) {$sekunden = $SEKUNDEN_08;}
elseif($payment_amount == $PREIS_09) {$sekunden = $SEKUNDEN_09;}
elseif($payment_amount == $PREIS_10) {$sekunden = $SEKUNDEN_10;}
function ZZ2($EinstPass=0)
{
$EinstPass2 = "8";
$EinstPass = "";
$zeichen2 = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9";
$array_r = explode(",",$zeichen2);
for($g=0;$g<$EinstPass2;$g++)
{
srand((double)microtime()*1000000);
$x = rand(0,35);
$EinstPass .= "".$array_r[$x]."";
}
return $EinstPass;
}
$passwort2 = ZZ2();
if($pw_verschluesseln == "JA")
{
$passwort_x = crypt($passwort2,"33");
}
else
{
$passwort_x = $passwort2;
}
$time = time();
$endet_am = $time + $sekunden;
$fp = fopen($passwortLogDatei, "a+");
flock($fp,2);
fputs ($fp, "$endet_am&&$payer_email&&$usersname&&$passwort2&&\n");
flock($fp,3);
fclose ($fp);
$fpx = fopen($daten2, "a+");
flock($fpx,2);
fputs ($fpx, "$usersname:$passwort_x");
flock($fpx,3);
fclose ($fpx);
$fxp3 = fopen($daten3,"r");
$contents3 = fread($fxp3, filesize($daten3));
fclose($fxp3);
$replace3 = ereg_replace($gruppe.": ",$gruppe.": ".$usersname." ", $contents3);
$fh=fopen($daten3, "w");
@flock($fp,2);
fputs($fh, $replace3);
@flock($fp,3);
fclose($fh);
$pruefung = @file($passwortLogDatei);
$tester = $endet_am;
while(list ($line_num, $line) = @each($pruefung))
{
$zeiten = explode("&&",$line);
if($zeiten[0] <= $tester)
{
$tester = $zeiten[0];
}
}
$C_datei = fopen($PFAD.$NEXT,"r");
$C_ounterstand = fgets($C_datei, 12);
fclose($C_datei);
if($C_ounterstand >= $tester)
{
unlink($PFAD.$NEXT);
$fpx = fopen($PFAD.$NEXT, "w+");
fputs ($fpx, "$tester");
fclose ($fpx);
chmod($PFAD.$NEXT,0777);
}
$Datum = date("d",$endet_am).".".date("n",$endet_am).".".date("Y",$endet_am)." at ".date("G",$endet_am).".".date("i",$endet_am).".".date("s",$endet_am)." o`clock";
$text = $derPaypal_EmailText."\n\nyour password: ".$passwort2."\n your username: ".$usersname."\n\n your password expiring at: ".$Datum."\n\n".$EMAIL_FOOTER;
$text = str_replace('\n','',$text);
$text = wordwrap($text, 70);
$header = "From: \"".$deine_absendermail."\" <".$deine_absendermail.">\n";
@mail($payer_email, $MAILBETREFF, $text, $header);
if($BestaetigungsMailSchicken == "JA")
{
$betreff2 = "Ein Passwort wurde via Paypal generiert";
$header = "From: \"".$deine_absendermail."\" <".$deine_absendermail.">\n";
@mail($deine_absendermail, $betreff2, $text, $header);
}
}
}
else if (strcmp ($res, "INVALID") == 0)
{
// log for manual investigation
}
}
fclose ($fp);
}
?>
in der datei einstellungen.php sind nur texte zu finden die dann eingetragen werden in die email und andere .php denke mal diese spielt keine rolle.
--======================================--
--== automatische Beitragszusammenführung ==--
--======================================--
Pr1me schrieb nach 32 Stunden, 8 Minuten und 5 Sekunden:
fixed, war ein \n zuwenig ^^ *g
plz closen