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 . ">");
*/
?>

Ik bedenk me ineens, het zou eventueel toch wel kunnen. In JavaScript heb je het history object. Als je daarin teruggaat, totdat je een ander domein tegenkomt dan je eigen, heb je je referer. Ga ik even op snuffelen.
Jan Koehoorn schreef op 19.07.2007 22:38
Ik bedenk me ineens, het zou eventueel toch wel kunnen. In JavaScript heb je het history object. Als je daarin teruggaat, totdat je een ander domein tegenkomt dan je eigen, heb je je referer. Ga ik even op snuffelen.

Zeer interessant idee, vriend Jan. Ik ben wel zeer benieuwd naar de resultaten van jouw 'gesnuffel'.
@Jan

Volgens mij is het wegens het niet mogen bekijken van het surfgedrag van je bezoekers in moderne browsers niet toegestaan om in het geschiedenis object te kijken.

Wanneer je een code als onderstaand gebruikt krijg je (in FF) dat er een uncaught exeption on history.item is. Googlen laat je dan vrij snel zien dat dit wegens beveiligingsredenen niet meer kan:

<script language="javascript" type="text/javascript">
document.write(window.history[0]);
</script>


Er zal dus wat anders op moeten worden gevonden, bijvoorbeeld de referrer opslaan in een sessie.
Het is gelukt, bedankt voor alle hulp.
@Elsy

Hoe heb je het nu gedaan? ben wel erg benieuwd namelijk ;)
@Robert

Tja, dat weet ik niet precies.
Ik heb alleen doorgegeven dat hij op de eerste pagina een sessie moest maken die de gegevens op de 5de pagina onthoud.

Ik zal hem nog eens vragen hoe hij het uiteindelijk heeft gedaan.

Wordt vervolgd.......
Hij heeft een subsomein aangemaakt die alleen voor mij is.
Dus dan maakt het niet uit waar de bezoeker vandaan komt omdat ik een persoonlijk subdomein bij hen heb.
De refferer word in de database gezet.

Reageren