2010-01-13 7 views
0

Soirée tous. Ce que je veux faire, c'est après qu'un utilisateur a cliqué sur un bouton "buynow" pour paypal, d'abord aller à une page qui stocke les articles que vous avez achetés dans un db puis rediriger vers le paiement paypal.Rediriger vers paiement PayPal

C'est ce que j'ai:

<?php 

if(isset($_POST['cmd']) && isset($_POST['hosted_button_id']) && isset($_POST['diskSpace']) && isset($_POST['bandwidth']) && isset($_POST['subdomains']) && isset($_POST['additionalftp']) && isset($_POST['mysqldatabases']) && isset($_POST['emailforwarding']) && isset($_POST['autoresponders']) && isset($_POST['emaildistribution']) && isset($_POST['mailboxes']) && isset($_POST['oneclick']) && isset($_POST['operatingsystem'])){ 

    $cmd = $_POST['cmd']; 
    $custom = md5(date("his").microtime()); 
    $hosted_button_id = $_POST['hosted_button_id']; 

    $diskSpace = $_POST['diskSpace']; 
    $bandwidth = $_POST['bandwidth']; 
    $subdomains = $_POST['subdomains']; 
    $additionalftp = $_POST['additionalftp']; 
    $mysqldatabases = $_POST['mysqldatabases']; 
    $emailforwarding = $_POST['emailforwarding']; 
    $autoresponders = $_POST['autoresponders']; 
    $emaildistribution = $_POST['emaildistribution']; 
    $mailboxes = $_POST['mailboxes']; 
    $oneclick = $_POST['oneclick']; 
    $operatingsystem = $_POST['operatingsystem']; 

    $con = mysql_connect('localhost', '', ''); 
    $db = mysql_select_db('', $con);  

    if(!mysql_query("SELECT * FROM `hostingAccounts` ORDER BY id")){ 
     $createTable = ("CREATE TABLE IF NOT EXISTS `hostingAccounts` (
     `id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
     `ref` TEXT NOT NULL, 
     `disk_space` TEXT NOT NULL, 
     `bandwidth` TEXT NOT NULL, 
     `sub_domains` TEXT NOT NULL, 
     `additional_ftp` TEXT NOT NULL, 
     `mysql_databases` TEXT NOT NULL, 
     `email_forwarding` TEXT NOT NULL, 
     `auto_responders` TEXT NOT NULL, 
     `email_distribution` TEXT NOT NULL, 
     `mailboxes` TEXT NOT NULL, 
     `one_click_apps` TEXT NOT NULL, 
     `operating_system` TEXT NOT NULL, 
     `payer_email` TEXT NOT NULL, 
     `first_name` TEXT NOT NULL, 
     `last_name` TEXT NOT NULL, 
     `payer_id` TEXT NOT NULL, 
     `address_street` TEXT NOT NULL, 
     `address_city` TEXT NOT NULL, 
     `address_state` TEXT NOT NULL, 
     `address_zip` TEXT NOT NULL, 
     `address_country` TEXT NOT NULL 
     ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); 

     mysql_query($createTable); 
    } 

    mysql_query("INSERT INTO `hostingAccounts` (ref, disk_space, bandwidth, sub_domains, additional_ftp, mysql_databases, email_forwarding, auto_responders, email_distribution, mailboxes, one_click_apps, operating_system) VALUES ('$custom', '$diskspace', '$bandwidth', '$subdomains', '$additionalftp', '$mysqldatabases', '$emailforwarding', '$autoresponders', '$emaildistribution', '$mailboxes', '$oneclick', '$operatingsystem')") or die (mysql_error()); 

    $host = "https://www.paypal.com"; 
    $path = "/cgi-bin/webscr"; 
    $data = "cmd=".$cmd."&hosted_button_id=".$hosted_button_id."&custom=".$custom; 
    $data = urlencode($data); 

    header("POST $path HTTP/1.1\r\n"); 
    header("Host: $host\r\n"); 
    header("Content-type: application/x-www-form-urlencoded\r\n"); 
    header("Content-length: " . strlen($data) . "\r\n"); 
    header("Connection: close\r\n\r\n"); 
    header($data); 
} 
?> 
problème

étant, il vient juste avec "Internal Server Error". Quelqu'un peut-il voir ce que je fais mal?

Répondre

0

Edit:

header("POST $path HTTP/1.1\r\n"); 

Vous pouvez essayer en utilisant la curl_ * famille de fonctions si vous voulez un POST dans votre script.

De plus, vous devez essayer de désinfecter votre entrée du client:

$cmd = $_POST['cmd']; 

Aussi, pourquoi ne pas simplement créer la table vous-même. Son beaucoup de frais généraux inutiles à faire que sélectionner chaque demande: (sans parler assez bancale - vous avez votre schéma DB dans votre code ...)

if(!mysql_query("SELECT * FROM `hostingAccounts` ORDER BY id")){ 
     $createTable = ("CREATE TABLE IF NOT EXISTS `hostingAccounts` (
     `id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
+1

au moins, donner une solution em – ariefbayu

+1

heh ok ok Permettez-moi de modifier ma réponse –

+2

Faisons dissuadent pas les gens de poser des questions en se moquant d'eux, poser des questions est une façon que nous apprenons. Engageons-nous avec eux de manière constructive. (Et en effet, le PO doit apprendre sur les problèmes que vous avez aimablement fourni des liens.) –

0

Seriez-vous capable de me dire pourquoi cela ne redirige pas?

$sendTo = "https://www.paypal.com/cgi-bin/webscr" 
$header[] = "Content-type: text/html"; 

$dataArray[] = "cmd=".$cmd; 
$dataArray[] = "hosted_button_id=".$hosted_button_id; 
$dataArray[] = "custom=".$custom; 

$post = implode($dataArray, '&'); 
$post = urlencode($post); 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_CONNECTIONTIMEOUT, 30); 
curl_setopt($ch, CURLOPT_FAILONERROR, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 

die(); 
+0

Pourquoi appelez-vous "die();" ... vous ne donnerez pas le temps au script de terminer l'exécution. –

+0

Encore rien. Curl actualy redirige-t-il l'utilisateur? –

Questions connexes