Iemand anders gebruikt dit script maar kan alleen aan dit gedeelte iets toevoegen.
Voor mij is het iets te moeilijk om het zelf voor hem te kunnen oplossen.

In het commentaar van de bestelling moet het volgens de maker van het script toegevoegd worden.

Wat moet er gebeuren:

Als de bestelling afgerond is moet er in de database ook komen te staan:
* Herkomst pagina, zodat je kunt zien via welke pagina ze een bestelling doen.
*IP-adres
*Datum (als deze er al niet in zit)

Het script zet ik hier alvast neer maar moet nu even weg.


<?
# Bestelling doorgeven aan WeFact	
$Username = (isset($_SESSION['UserName']) && $_SESSION['UserName'] != '') ? $_SESSION['UserName'] : "" ;
$Password = (isset($_SESSION['Password']) && $_SESSION['Password'] != '') ? passcrypt($_SESSION['Password']) : "" ;

if($Username == "" || $Password == ""){
	// Indien nodig nieuwe klant aanmaken
	require_once $path.CLASS_DIR."/newcustomer.php";
	
	$newCustomer = new newcustomer();
		
	foreach($newCustomer->Variables as $v){
		// 0.2.9, enkel variabelen met een waarde overschrijven
		if(isset($_SESSION[$v]) && $_SESSION[$v])
			$newCustomer->{$v} = $_SESSION[$v];
	}
	/* 0.2.8 machtiging-betaalmethode */
	if($_SESSION['PaymentMethod'] == "auth"){
		$newCustomer->InvoiceAuthorisation = "yes";
	}
   /* 
	Onderstaande regels zijn voor het toekennen van een gebruikersnaam en wachtwoord,
	Hierbij wordt uitgegaan van instelling automatisering dat bestelling direct wordt doorgezet naar een factuur,
	zodat bij het aanroepen van cronjob.php direct de nieuwe bestelling doorgezet wordt en de klant een debiteurnummer krijgt.
	Later zal hier een optie komen om standaard het debiteurennummer te gebruiken.
	*/
	require_once $path.CLASS_DIR."/debtor.php";
	$debtor = new debtor();

	$newCustomer->Username = $debtor->newDebtorCode();
	$newCustomer->Password = passcrypt(substr(md5(rand(0,9999).time()),0,rand(6,8))); // 6 tot 8 karakters
   /* 
	Einde automatische toekenning gebruikersnaam en wachtwoord
	*/
		
	if($newCustomer->add())
		$customer = $newCustomer->Identifier;
	$type = "new";
		
}elseif($Username != "" && $Password != ""){
	// Of huidige klant opsporen
	require_once $path.CLASS_DIR."/debtor.php";		
		
	$debtor = new debtor();
	$customer = $debtor->search($Username,$Password);
	
	if(count($debtor->Error) == 0){
		$debtor->Identifier = $customer;
		$debtor->show();
	}
	
	$type = "debtor";
}else{
	$type = "";
}

if($type != "" && (isset($newCustomer->Error) || isset($debtor->Error)) && (count($newCustomer->Error) == 0 && count($debtor->Error) == 0)){ /* 0.2.9 */
	
	if($_SESSION['Product_2']){
			$Products[] = array(
								"ProductCode" => $_SESSION['Product_2'],
								"Description" => $_SESSION['DomainName'].".".$_SESSION["Tld"],
								"Periods"     => $periodes_2,
								"Periodic"    => $periode_2
								);
	}
	if($_SESSION['Product_1']){
			/* Controle of hostingpakket reeds bestaat (voorkeur zelfde als debtorcode) */
			$number = ($type == "new") ? str_replace(DEBTORCODE_PREFIX,"",$newCustomer->Username) : str_replace(DEBTORCODE_PREFIX,"",$debtor->Username);
			$hosting_prefix = "id";
			require_once "class/hosting.php";
			$hosting = new hosting();
			if($hosting->is_free($hosting_prefix.$number)){
				$accountname = $hosting_prefix.$number;
			}else{
				while(!$hosting->is_free($hosting_prefix.$number)){
					$number = $number + 1;
					$number = str_repeat('0',strlen(DEBTORCODE_NUMBER)-strlen($number)).$number;
				}
				$accountname = $hosting_prefix.$number;
			}
			
			$Products[] = array(
								"ProductCode" => $_SESSION['Product_1'],
								"Description" => $_SESSION["H_Description"]." ".$accountname, // Gebruikersnaam gelijk stellen aan gebruikersnaam klantenpaneel
								"Periods"     => $periodes_1,
								"Periodic"    => $periode_1
								);
	}
	if(is_array($_SESSION['Product_3'])){
		foreach($_SESSION['Product_3'] as $k=>$v){
			$Products[] = array(
								"ProductCode" => $v,
								"Periods"     => $periodes_3,
								"Periodic"    => $periode_3
								);
		}
	}
	
	$newOrder 				= new neworder();
	$newOrder->Debtor 		= $customer;
	$newOrder->Type 		= $type;
	/* 0.2.8 machtiging-betaalmethode */
	if($_SESSION['PaymentMethod'] == "auth"){
		$newOrder->Authorisation 		= 'yes';
	}
	$newOrder->PaymentMethod 		= $_SESSION['PaymentMethod'];
	$newOrder->OrderCode 	= $newOrder->newOrderCode();
	$newOrder->Products 	= $Products;
	$newOrder->Comment		= $_SESSION['Comment']; /* Deze regel toegevoegd sinds versie 0.2.2, om de uitzondering van automatisering te laten werken */
	/* 0.2.8 machtiging-betaalmethode */
	if($type == "debtor" && $_SESSION['AccountNumber'] != $debtor->AccountNumber){
		$newOrder->Comment		.= "\n\nMachtiging via rekeningnummer: ".$_SESSION['AccountNumber'];
	} 
	
	if($_SESSION['PaymentMethod'] == "ideal" || $_SESSION['PaymentMethod'] == "paypal"){
		$newOrder->TransactionID = "nog niet verkregen";
	}
	$newOrder->place();
	
	if(count($newOrder->Error) == 0){
	    /* 0.2.8: ideal integratie */ 
		if($_SESSION['PaymentMethod'] == "ideal"){
			$_SESSION['OrderCode'] = passcrypt($newOrder->OrderCode);
			$_SESSION['OrderCode2'] = $newOrder->Identifier;
			
			# E-mail naar beheerder, indien gewenst
			if($i_a_mail !== ""){
				$i_bedrijfsmail		= split("@", $i_a_mail);
				/* aangepast 0.2.8: verbeterde mail */
				mail($i_a_mail, "[WeFact] Nieuwe bestelling (iDeal)", $_SESSION['mail_content'], "from: noreply@" . $i_bedrijfsmail[1] . " <noreply@" . $i_bedrijfsmail[1] . ">\nContent-type: text/html");
			}
			?>
			<div id="commentaar" style="border: 0px;">
			<br>
			<div class="sub">Stap 5 - Bestelling betalen</div><br>
			Uw bestelling wordt momenteel opgeslagen, binnen enkele seconden wordt u doorverwezen naar uw bank!<br>
			<br>
			</div>
			<META HTTP-EQUIV="refresh" CONTENT="3;URL=bestellen.php?payment=ideal">  
			<?
		}elseif($_SESSION['PaymentMethod'] == "paypal"){
			$_SESSION['OrderCode'] = passcrypt($newOrder->OrderCode);
			$_SESSION['OrderCode2'] = $newOrder->Identifier;
			
			# E-mail naar beheerder, indien gewenst
			if($i_a_mail !== ""){
				$i_bedrijfsmail		= split("@", $i_a_mail);
				/* aangepast 0.2.8: verbeterde mail */
				mail($i_a_mail, "[WeFact] Nieuwe bestelling (PayPal)", $_SESSION['mail_content'], "from: noreply@" . $i_bedrijfsmail[1] . " <noreply@" . $i_bedrijfsmail[1] . ">\nContent-type: text/html");
			}
			?>
			<div id="commentaar" style="border: 0px;">
			<br>
			<div class="sub">Stap 5 - Bestelling betalen</div><br>
			Uw bestelling wordt momenteel opgeslagen, binnen enkele seconden wordt u doorverwezen naar PayPal!<br>
			<br>
			</div>
			<META HTTP-EQUIV="refresh" CONTENT="3;URL=bestellen.php?payment=paypal">  
			<?
		}else{

			getContent("../Pro/cronjob.php"); // Ervoor zorgen dat de cronjob geopend wordt, correct pad nodig.

			# E-mail naar beheerder, indien gewenst
			if($i_a_mail !== ""){
				$i_bedrijfsmail		= split("@", $i_a_mail);
				/* aangepast 0.2.8: verbeterde mail */
				mail($i_a_mail, "[WeFact] Nieuwe bestelling", $_SESSION['mail_content'], "from: noreply@" . $i_bedrijfsmail[1] . " <noreply@" . $i_bedrijfsmail[1] . ">\nContent-type: text/html");
			}
		
			
			session_unset();
			session_destroy();
			?>
			<div id="commentaar" style="border: 0px;">
			<br>
			<div class="sub">Stap 5 - Bevestiging bestelling</div><br>
			Uw bestelling is verwerkt. Er zal zo spoedig mogelijk met u contact op worden genomen!<br>
			<br>
			</div>
	<?
		}
	}else{
	?>
	<div id="fout">
	Er is een fout opgetreden:<br>
	<? foreach($newOrder->Error as $v){ ?>
	- <?=$v ?><br>
	<? } ?>
	</div>
	<?
	}
}else{
	?>
	<div id="fout">
	Er is een fout opgetreden:<br>
	<? if(isset($newCustomer->Error)){  /* 0.2.9 */
	foreach($newCustomer->Error as $v){  /* 0.2.4 */ ?>
	- <?=$v ?><br>
	<? } } ?>
	<? if(isset($debtor->Error)){ /* 0.2.9 */
	foreach($debtor->Error as $v){ ?>
	- <?=$v ?><br>
	<? } } ?>	
	</div>
	<?
}
	


// Begin van de output met bestelformulier en foutmeldingen.
// Om een foutmeldingenscherm te krijgen kan de variabele $resultmessage worden geprint.

//if(isset($newOrder) && count($newOrder->Error) == 0){

# E-mail naar nieuwe klant
/*
$e_inhoud					= "Beste " . $_SESSION["voorletters"] . " " . $_SESSION["achternaam"] . ",\r\n\r\nBedankt voor uw bestelling bij " . $i_bedrijfsnaam . "! \r\n\r\nUw bestelling is alsvolgt door ons ontvangen:\r\nPakket: " . $f_webhostingpakket . "\r\nDomeinnaam: " . $_SESSION["domein"] . "." . $f_extensie . "\r\nTotaalkosten: € " . $b_totaal . " incl. BTW\r\n\r\n";

if($_SESSION["bedrijfsnaam"] && $_SESSION["kvk"]){
$e_inhoud					.= "Bedrijfsnaam: " . $_SESSION["bedrijfsnaam"] . "\r\nKvK nummer: " . $_SESSION["kvk"] . "\r\n";
}

$e_inhoud					.= "Naam: " . $_SESSION["voorletters"] . " " . $_SESSION["achternaam"] . "\r\nAdres: " . $_SESSION["adres"] . "\r\nPostcode: " . $_SESSION["postcode"] . "\r\nPlaats: " . $_SESSION["plaats"] . "\r\nLand: " . $_SESSION["land"] . "\r\nE-mailadres: " . $_SESSION["emailadres"] . "\r\nTelefoonnummer: " . $_SESSION["telefoonnummer"] . "\r\nFaxnummer: " . $_SESSION["faxnummer"] . "\r\nOpmerking: " . $_SESSION["opmerking"] . "\r\n\r\nIndien de ingevoerde gegevens niet kloppen, wordt u verzocht contact met ons op te nemen.\r\n\r\nUw bestelling zal binnen 24 uur behandeld worden.\r\n\r\nIndien u nog vragen heeft, kunt u altijd met ons contact opnemen!\r\n\r\nMet vriendelijke groet,\r\n\r\n" . $i_bedrijfsnaam ."";
								
mail($_SESSION["emailadres"], "Bestelling ontvangen", $e_inhoud, "from: " . $i_email . " <" . $i_email . ">");
*/
?>

EDIT: Maar misschien hoeft het helemaal niet in een database maar kun je de herkomst pagina in het mailtje verwerken.
Want voor zover ik kan zien gaat het om een mailtje dat verstuurd moet worden.


Aan dit script kun je alleen iets toevoegen in het commentaar gedeelte.
Ik denk het id=commentaar.

En dan het volgende moet erin komen:


Als de bestelling afgerond is moet er in de database ook komen te staan:
* Herkomst pagina, zodat je kunt zien via welke pagina ze een bestelling doen. (zo kunnen ze affiliates uitbetalen)
*IP-adres
*Datum (als deze er al niet in zit)

Ik weet niet goed hoe je dat in dit bestaande script moet passen.
Heel vreemd dat je alleen wat mag doen in het commentaar gedeelte, weet je dat zeker? Als dat zo is, dan gaat het waarschijinlijk niet lukken. Het commentaar wordt namelijk naar de gebruiker gestuurd en de mail naar de beheerder.

Ja alleen in dat gedeelte mocht iets gewijzigd worden.

Misschien moet er dan toch iets tussen gefrutseld worden waardoor die gegevens in een database komen van de beheerder. Zal hij er nog wel eentje aan moeten maken.
Als je het aan 'commentaar' moet toevoegen dat je het moet doen waar de Class newOrder wordt gebruikt. Daarin staat onder andere:
<?php
$newOrder->Comment = $_SESSION['Comment']; /* Deze regel toegevoegd sinds versie 0.2.2, om de uitzondering van automatisering te laten werken */
/* 0.2.8 machtiging-betaalmethode */
if($type == "debtor" && $_SESSION['AccountNumber'] != $debtor->AccountNumber){
$newOrder->Comment .= "\n\nMachtiging via rekeningnummer: ".$_SESSION['AccountNumber'];
}
?>

Ik denk dat je nog zoiets kan toevoegen:
<?php
$newOrder->Comment .= "\n\nDatum: ".date('d-m-Y');
$newOrder->Comment .= "\nIp-adres: ".$_SERVER['REMOTE_ADDR'];
$newOrder->Comment .= "Herkomst: Tsjah, hoe je die ophaalt ligt aan je systeem"; // En dat weet ik dus niet
?>

Elwin
Ik kan dit zelf niet testen dus ik zal het even doorgeven.
Ik heb er dit nu van gemaakt, afwachten of het gaat werken.


<?php
$newOrder->Comment		= $_SESSION['Comment']; /* Deze regel toegevoegd sinds versie 0.2.2, om de uitzondering van automatisering te laten werken */
	/* 0.2.8 machtiging-betaalmethode */
	if($type == "debtor" && $_SESSION['AccountNumber'] != $debtor->AccountNumber){
		$newOrder->Comment		.= "\n\nMachtiging via rekeningnummer: ".$_SESSION['AccountNumber'];
		$newOrder->Comment        .= "\n\nDatum: ".date('d-m-Y');
        $newOrder->Comment        .= "\nIp-adres: ".$_SERVER['REMOTE_ADDR'];
        $newOrder->Comment        .= "\nHerkomst: ".$_SERVER['HTTP_REFERER'];
	} 
?>
Er zijn twee foutmeldingen die ik doorkreeg van mijn klant.

Het geeft 2 foutmeldingen op de '*' die er in zijn geplaatst.

Als ik dan b.v. $_SERVER['HTTP_REFERER'] iets hoger plaats in $newOrder->Comment werkt het wel, maar geeft hij echter als referentie de vorige pagina mee.
Daar het bestelsysyteem uit 5 stappen bestaat geeft hij als referentie dan bestellen.stap.4.php
/////////
$newOrder->Comment = $_SESSION['Comment']."
".$_SERVER['HTTP_REFERER']; /* Deze regel toegevoegd sinds versie 0.2.2, om de uitzondering van automatisering te laten werken
*/ Hierin wordt de ref. wel opgeslagen, echter de vorige pagina dus...
@Elsy: Ook voor jou geldt uiteraard: Bumpen is pas toegestaan na 24 uur.

$_SERVER['HTTP_REFERER'] geeft de pagina waar je vandaan komt.
Dus als je op bestellen.stap.5.php zit is het logisch dat bestellen.stap.4.php het antwoord is.
Wil je de referer die naar de eerste formulierpagina wijst, dan zal je die ook op de eerste pagina moeten opvragen. Misschien even bewaren in een sessie.

Edit: Typo.
@SanThe

De klant wil graag weten van welke pagina de klant komt. Dus op welke pagina heeft de klant op de link geklikt.
Hij zegt dat hij alleen bij pagina 5 iets toe mag voegen in het script dat niet van hem is.
Is hier geen andere oplossing voor?

(sorry voor het bumpen, niet bij stilgestaan.)
Je kunt niet op een vijfde pagina opvragen hoe iemand op pagina één is terechtgekomen Elsy. Dan moet je bij de code van die pagina één kunnen komen.

Een datum in je database invoegen is simpel; maak een veld van het type DATE en zet CURDATE() in je INSERT query. Mocht je ook de tijd nodig hebben, dan maak je een DATETIME veld en zet je NOW() in je INSERT query.
Ik heb het diegene voorgelegd en krijg vast morgen wel antwoord of hij ook iets op de eerste pagina mag neerzetten.

Anders is er waarschijnlijk geen manier om te achterhalen vanaf welke pagina de mensen een bestelling plaatsen.

Reageren