Ga naar inhoud


Donatie integratie in pagina


elmoro

Aanbevolen berichten


  • Reacties 33
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Puch, vraagje hierover.

 

 

Php Code:
}	else { 	header("location: stap1.php"); 	die();}?> 

 

 

 

Waarom die laatste "else"? Het is of fout of goed? ALs het fout is, ga naar stap 1, als het goed is voer functie EuroNaarCent uit.

 

Overigens. Als ik ze zo uitvoer, dan 'loopt' ie terug naar stap 1.

 

 

 

 

Link naar reactie
Delen op andere sites

Die laatste else is er net om ervoor te zorgen dat je niet rechtstreeks naar stap2.php pagina kan surfen (veiligheid). Die stap 2 is namelijk een verwerk pagina van stap 1 en heeft de invulde velden nodig om het script uit te voeren.

 

Onderstaand gedeelte controleert als erop de knop met naam "submit" werd geklikt. Indien ok, voer script uit.

Php Code:
if (isset($_POST['submit'])){ //hier wordt het script uitgevoerd indien er op submit werd geklikt} 

 

Indien niet op de knop is geklikt (nl rechtstreekse url naar stap 2) voer het script niet uit en ga naar stap 1.

 

Php Code:
else { 	header("location: index.php"); 	die();} 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

@ puch

 

Bedankt voor de uileg. Na veel worstellen kom ik er helaas nog steeds niet uit. $amount wordt goed gedefinieerd. Ik kan het uilezen met echo. Krijg netjes het getal.

 

Echter volgende script nog steeds niet:

Php Code:
include ("class.ideal.php");$rtlo = xxx;  // Replace with your TargetPay layoutcode$description = "Donatie";		// Description (will appear on receipt)//$amount = is al gedefinieerd;							$returnurl = 'http://'.$_SERVER['HTTP_HOST'].''.$_SERVER['REQUEST_URI'].'?checkpayment=1'; // URL to return$myiDEAL = new iDEAL ($rtlo);if (isset($_GET["checkpayment"])) { $step = 3; } else	if (isset($_POST["bank"])) { $step = 2; } else		{ $step = 1; }if ($step==1) {				echo "<form name=\"bankselect\" method=\"POST\">";	echo "Kies uw bank: ";	echo "<select name=bank onChange=\"document.bankselect.submit();\">";	echo "<script src=\"http://www.targetpay.nl/ideal/issuers-nl.js\"></script>";	echo "</select>";	echo "</form>";				}if ($step==2) {	$result = $myiDEAL->GetLink ($_POST["bank"], $description, $amount, $returnurl);	if (!$result) {		echo "Er kon geen verbinding gemaakt worden met de site van je bank.<br><br>";		echo "<a href=\"javascript: history.go(-1);\">Terug naar de vorige pagina...</a>";		} else {		setcookie ("trxid", $myiDEAL->trxid, time()+86400);		echo "Je wordt nu doorverwezen naar de site van je bank.<br><br>";		echo "<a href=\"$myiDEAL->url\">Klik hier om verder te gaan...</a>";		echo "<br><br><font size=-2>Transactie ID: ".$myiDEAL->trxid;		}	}if ($step==3) {	$trxid = ($_COOKIE["trxid"]) ? $_COOKIE["trxid"] : $_GET["trxid"];	$result = $myiDEAL->CheckPayment ($trxid, 1);	if (!$result) {		echo "De betaling is niet voltooid, of al eerder verwerkt...<br><br>";		echo "Foutmelding: ".$myiDEAL->error;		} else {		echo "Je betaling is verwerkt!";		// dankje verwijzing hier plaatsen!		}	} 

 

Ik krijg gewoon foutcode ( "Er kon geen verbinding gemaakt worden met de site van je bank.). Terwijl als ik $amount gewoon invul, runt ie wel mooi.

 

Ik heb een gevoel dat $amount in stap2 als string wordt opgeslagen?? Terwijl Ideal een integer nodig heeft.

Link naar reactie
Delen op andere sites

In de functie het eindresultaat omzetten naar een integer.

Probeer dan eens

 

function EuroNaarCent ($getal1, $getal2){

$getal1 = $getal1 * 100;

$som = $getal1 + $getal2;

$som = intval($som);

return $som;

}

 

Edit

 

Ik heb het eens nog eens nader bekeken en je krijgt reeds een integer terug uit deze functie, dus daaraan kan het niet liggen en bovenstaande kan je negeren.

 

Zet eens die class.ideal.php hier.

 

 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

@ Puch

 

Inderdaad het werkte niet. Vreemd geval. Ik ben nogal nieuw bij PHP, maar kan het niet gerunt worden in een debug mode?

 

de class.ideal.php

Php Code:

<?include ("class.httprequest.php");class iDEAL {	var $rtlo;		  // TargetPay Layoutcode	var $error;	 // Error....	var $callduration;	// Callduration in seconds returned by TargetPay;	var $calltariff;	// Call tariff returned by TargetPay;	var $trxid;	 // iDEAL Transaction ID	var $url;		 // iDEAL URL to online banking	function iDEAL ($rtlo) {		$this->rtlo = $rtlo;		}	function GetLink ($bank, $description, $amount, $returnurl, $currency="EUR", $language="nl") {		$dataToSend = array(			"rtlo" => $this->rtlo,			"bank" => $bank,			"description" => $description,			"amount" => $amount,			"returnurl" => $returnurl,			"currency" => $currency,			"language" => $language			);		$api = new httpRequest ("http://www.targetpay.nl/ideal/start", $dataToSend);		list ($resultcode, $result) = explode(" ", $api->response,2);		list ($trxid, $url) = explode("|", $result);		if ($resultcode=="000000") {			$this->trxid = $trxid;			$this->url = $url;			return true;			} else {			$this->error = $result;			return false;			}		}	function CheckPayment ($trxid, $once=1) {		$dataToSend = array(			"rtlo" => $this->rtlo,			"trxid" => $trxid,			"once" => $once			);		$api = new httpRequest ("http://www.targetpay.nl/ideal/check", $dataToSend);		list ($resultcode, $result) = explode(" ", $api->response,2);		list ($trxid, $url) = explode("|", $result);		if ($resultcode=="000000") {			$this->trxid = $trxid;			$this->url = $url;			return true;			} else {			$this->error = $result;			return false;			}		}	}?>

 

Link naar reactie
Delen op andere sites

Origineel bericht van: Puch
In jou code staat
$rtlo = xxx; // Replace with your TargetPay layoutcode


Daar moet een waarde worden ingevuld me dunkt.

Dat "komt" door mij:
Origineel bericht van: Big fellow
Laat je complete scripts eens zien.
Als er login codes o.i.d. instaan, vervang die dan met "xxx"...

Want ik begrijp niet echt wat je schrijft...

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Origineel bericht van: Big fellow
Origineel bericht van: Puch
In jou code staat
$rtlo = xxx; // Replace with your TargetPay layoutcode


Daar moet een waarde worden ingevuld me dunkt.

Dat "komt" door mij:
Origineel bericht van: Big fellow
Laat je complete scripts eens zien.
Als er login codes o.i.d. instaan, vervang die dan met "xxx"...

Want ik begrijp niet echt wat je schrijft...


Inderdaad. Om privacy redenen heb ik het foor xxx vervangen.
Maar bij het testen wel netjes ingevuld
Link naar reactie
Delen op andere sites

Is het niet mogelijk om het in 3 stappen te doen?

 

Laten we zeggen stap 1 blijft hetzelfde. Stap 2 ook. Alleen kan ik bij stap 2 doorsturen naar stap 3 en de waarde amount doorsturen?

 

De fout zit hem namelijk in het feit dat ie het Ideal gedeelte niet goed uitvoert. Maar als ik dat in stap 3 doe, dan zou het wel moeten lukken.

 

Dus wat ik in gedachten had is:

 

Stap 1: Bedrag defieneren en doorsturen naar stap 2

Stap 2: Bedrag omzetten naar centen en doorsturen naar 3

Stap 3: $amount oproepen en Ideal gedeelte uitvoeren

 

misschien erg omslachtig, maar het zou moeten werken. Heb alleen geen idee hoe ik bij stap 2 naar doorstuur als het centen goed is. En hoe ik $amount bij stap 3 oproep, aangezien ik het niet heb gepost??

Link naar reactie
Delen op andere sites

Stap 1 blijft altijd dezelfde

Php Code:

<?php session_start();if (isset($_SESSION['fout'])) { echo $_SESSION['fout'] . "<br>"; }?><html><form action="stap2.php" method="post" enctype="multipart/form-data" name="EuroNaarCent"><input name="euro" type="text" size="5">,  <input name="cent" type="text" size="3" maxlength="2"><br><input type="submit" name="submit" value="Bereken" ></form></html>

 

De 3 meest gebruikte manieren om gegevens door te sturen naar een andere pagina zijn:

 

1. Via $_POST

In stap 2 maak je onderaan opnieuw formulier aan om de gegevens naar stap 3 door te sturen.

Php Code:

<?phpsession_start();//functie voor omrekenen naar centenfunction EuroNaarCent ($getal_1, $getal_2){	$getal_1 = $getal_1 * 100;	$som = $getal_1 + $getal_2;	return $som;		}	//einde functie// is er op de knop bereken geklikt	if (isset($_POST['submit'])){ 	$euro = $_POST['euro'];	$cent = $_POST['cent'];	// opvangen van leeg gelaten cent text vakif (empty($cent)){	$cent = "00";}	//controle als alles correct is ingevuld	if (empty($euro) || (!is_numeric($euro)) || empty($cent) || !is_numeric($cent)){		//indien niet correct stuur terug naar pagina 1		$_SESSION['fout'] = "Vul een correct bedrag in tot 2 cijfers na de komma";		header("location: stap1.php");		die(); // die() is niet echt nodig	}	else {		//indien correct bereken euro naar cent		$amount = EuroNaarCent($euro, $cent);			}	echo "Bedrag in centen is ".$amount."<br>";	echo'<form action="stap3.php" method="post" enctype="multipart/form-data" ><input type="hidden" name="amount" value="'.$amount.'" /><br><input type="submit" name="submit" value="Ga naar stap 3" ></form>';	}	else { 	header("location: stap1.php"); 	die();}?>

 

In stap3 lees je de $_POST uit en gebruik je amount verder

Php Code:

<?phpif (isset($_POST['submit'])){ $amount = $_POST[’amount’];//de rest van de code}?>

 

2. Via $_GET

 

In stap 2 geef je het aantal centen mee in de url

 

Php Code:

<?phpsession_start();//functie voor omrekenen naar centenfunction EuroNaarCent ($getal_1, $getal_2){	$getal_1 = $getal_1 * 100;	$som = $getal_1 + $getal_2;	return $som;		}	//einde functie// is er op de knop bereken geklikt	if (isset($_POST['submit'])){ 	$euro = $_POST['euro'];	$cent = $_POST['cent'];	// opvangen van leeg gelaten cent text vakif (empty($cent)){	$cent = "00";}	//controle als alles correct is ingevuld	if (empty($euro) || (!is_numeric($euro)) || empty($cent) || !is_numeric($cent)){		//indien niet correct stuur terug naar pagina 1		$_SESSION['fout'] = "Vul een correct bedrag in tot 2 cijfers na de komma";		header("location: stap1.php");		die(); // die() is niet echt nodig	}	else {		//indien correct bereken euro naar cent		$amount = EuroNaarCent($euro, $cent);		$_SESSION['amount'] = $amount;			}	//geef $amount mee in de url	echo "Bedrag in centen is ".$amount."<br><a href=\"stap3.php?amount=".$amount."\">Ga naar stap 3</a> ";	}	else { 	header("location: stap1.php"); 	die();}?>

 

In stap 3 haal je amount op via GET

 

Php Code:

<?php$amount = $_GET[’amount’];//de rest van de code?>

 

3. Via sessions

 

In stap 2 maak je een session aan met als waarde de waarde van $amount

Php Code:

<?phpsession_start();//functie voor omrekenen naar centenfunction EuroNaarCent ($getal_1, $getal_2){	$getal_1 = $getal_1 * 100;	$som = $getal_1 + $getal_2;	return $som;		}	//einde functie// is er op de knop bereken geklikt	if (isset($_POST['submit'])){ 	$euro = $_POST['euro'];	$cent = $_POST['cent'];	// opvangen van leeg gelaten cent text vakif (empty($cent)){	$cent = "00";}	//controle als alles correct is ingevuld	if (empty($euro) || (!is_numeric($euro)) || empty($cent) || !is_numeric($cent)){		//indien niet correct stuur terug naar pagina 1		$_SESSION['fout'] = "Vul een correct bedrag in tot 2 cijfers na de komma";		header("location: stap1.php");		die(); // die() is niet echt nodig	}	else {		//indien correct bereken euro naar cent en maak session aan		$amount = EuroNaarCent($euro, $cent);		$_SESSION['amount'] = $amount;			}		echo "Bedrag in centen is ".$amount."<br><a href=\"stap3.php\">Ga naar stap 3</a> ";	}	else { 	header("location: stap1.php"); 	die();}?>

 

In stap 3 gebruik je de aangemaakte session

Php Code:

<?phpsession_start();$amount = $_SESSION[’amount’];//de rest van de verwerkcode?>

 

 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Nog klein vraagje Puch,

 

is het mogelijk om stap 2 als het ware direct door te vewijzen naar de link die je krijgt?

 

Php Code:
//geef $amount mee in de url	echo "Bedrag in centen is ".$amount."<br><a href=\"stap3.php?amount=".$amount."\">Ga door naar volgende stap</a> "; 

 

Dus die gelijk redirecten naar 'stap3.php?amount=".$amount.' , dus dat de user niet eerst op die link klikt.

 

Ik heb het geprobeerd met header, maar het wil niet zo goed lukken

Php Code:
header("location: stap3.php?amount=".$amount."); 

 

 

Alvast bedankt voor het meedenken.

 

 

Link naar reactie
Delen op andere sites

moet zijn

 

header("location: stap3.php?amount=".$amount);

 

Geen concat puntje + " meer achteraan.

 

 

Maar ik zou daar wel nog een extra controle op plaatsen, hoeft niet, maar je kan niet veilig genoeg zijn

Php Code:

<?phpsession_start();//functie voor omrekenen naar centenfunction EuroNaarCent ($getal_1, $getal_2){	$getal_1 = $getal_1 * 100;	$som = $getal_1 + $getal_2;	return $som;		}	//einde functie// is er op de knop bereken geklikt	if (isset($_POST['submit'])){ 	$euro = $_POST['euro'];	$cent = $_POST['cent'];	// opvangen van leeg gelaten cent text vakif (empty($cent)){	$cent = "00";}	//controle als alles correct is ingevuld	if (empty($euro) || (!is_numeric($euro)) || empty($cent) || !is_numeric($cent)){		//indien niet correct stuur terug naar pagina 1		$_SESSION['fout'] = "Vul een correct bedrag in tot 2 cijfers na de komma";		header("location: stap1.php");		die(); // die() is niet echt nodig	}	else {		//indien correct bereken euro naar cent		$amount = EuroNaarCent($euro, $cent);					}	// als $amount groter is dan 0 geef $amount mee in de url en ga naar stap 3if ($amount > 0){	header("location: stap3.php?amount=".$amount);	}	  else{	  echo "$amount is leeg";	  die();	}}	else { 	header("location: stap1.php"); 	die();}?>

 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

@ Puch

 

Nogmaal mijn dank is zeer groot. Het is voor allemaal even wennen, maar ben een hoop opgestoken.

 

Ik heb het nu helemaal in orde. Vroeg me alleen het volgende af. Is het ook mogelijk om hier te automatisch te verwijzen:

Php Code:
if ($step==2) {	$result = $myiDEAL->GetLink ($_POST["bank"], $description, $amount, $returnurl);	if (!$result) {		echo "Er kon geen verbinding gemaakt worden met de site van je bank.<br><br>";		echo "<a href=\"javascript: history.go(-1);\">Terug naar de vorige pagina...</a>";		} else {		setcookie ("trxid", $myiDEAL->trxid, time()+86400);		echo "Je wordt nu doorverwezen naar de site van je bank.<br><br>";		echo "<a href=\"$myiDEAL->url\">Klik hier om verder te gaan...</a>";		echo "<br><br><font size=-2>Transactie ID: ".$myiDEAL->trxid;		}	} 

 

De volgende link dus:

Php Code:
<a href=\"$myiDEAL->url\"> 

 

Is het ook hier mogelijk om een header to gebruiken? Mijn pogingen zijn mislukt. En na wat google werk, kwam ik op auto submit, wordt er eigenlijk niet veel wijzer van

 

 

 

 

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...