elmoro Geplaatst: 19 mei 2011 Auteur Geplaatst: 19 mei 2011 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.
Puch Geplaatst: 19 mei 2011 Geplaatst: 19 mei 2011 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 SierraiPhone 5s iOS 10
elmoro Geplaatst: 21 mei 2011 Auteur Geplaatst: 21 mei 2011 @ 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.
Puch Geplaatst: 22 mei 2011 Geplaatst: 22 mei 2011 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 SierraiPhone 5s iOS 10
elmoro Geplaatst: 22 mei 2011 Auteur Geplaatst: 22 mei 2011 @ 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; } } }?>
Puch Geplaatst: 23 mei 2011 Geplaatst: 23 mei 2011 In jou code staat $rtlo = xxx; // Replace with your TargetPay layoutcode Daar moet een waarde worden ingevuld me dunkt. iMac 27" macOS SierraiPhone 5s iOS 10
Big fellow Geplaatst: 23 mei 2011 Geplaatst: 23 mei 2011 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
elmoro Geplaatst: 23 mei 2011 Auteur Geplaatst: 23 mei 2011 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
elmoro Geplaatst: 24 mei 2011 Auteur Geplaatst: 24 mei 2011 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??
Puch Geplaatst: 25 mei 2011 Geplaatst: 25 mei 2011 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 SierraiPhone 5s iOS 10
elmoro Geplaatst: 25 mei 2011 Auteur Geplaatst: 25 mei 2011 @ Puch Mijn dank is groot. Met $_post lukt het voor geen meter. Maar $_get werkte direct. Harstikke bedankt puch
elmoro Geplaatst: 25 mei 2011 Auteur Geplaatst: 25 mei 2011 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.
Puch Geplaatst: 26 mei 2011 Geplaatst: 26 mei 2011 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 SierraiPhone 5s iOS 10
elmoro Geplaatst: 26 mei 2011 Auteur Geplaatst: 26 mei 2011 @ 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
Aanbevolen berichten
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 accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen