elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Pasar variable al siguiente .php - paypal - custom
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar variable al siguiente .php - paypal - custom  (Leído 6,349 veces)
extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Pasar variable al siguiente .php - paypal - custom
« en: 27 Mayo 2012, 10:48 am »

Tengo que pasar el contenido de 2 textboxes de un .php al siguiente y de ese .php al siguiente.

Entremedio del segundo y tercer .php (en orden de ejecución) se realiza un pago de PayPal, siendo el tercer .php el destino final del usuario luego del pago.

Hasta ahora venía usando 1 sólo textbox, usaba:

Código:
$textbox1 = $_POST['textbox1'];

Eso en el primer .php.

Y $_GET en el segundo .php, luego metía el $_GET en "custom" en el form de paypal para que paypal me pasara los datos al .php de destino luego del pago:

Código:
<input type="hidden" name="custom" value="$_REQUEST["fname"]">

............

Pero ahora que necesito 2 textboxes, no sé como hacer.

Aclaración: NO puedo usar base de datos, tiene que ser puro php.

¿Será que puedo simplemente duplicar el código y agregar un "custom2" y luego en el tercer .php luego del pago de paypal recuperar los datos de ambas variables?

¿Por ejemplo así?:

Primer .php:
Código:
$textbox1 = $_POST['textbox1'];
$textbox2 = $_POST['textbox2'];

Segundo .php:
Código:
$textbox1 = $_GET['textbox1'];
$textbox2 = $_GET['textbox2'];

paypal.php:
Código:
<input type="hidden" name="custom" value="<?=$_REQUEST["textbox1"]?>
<input type="hidden" name="custom2" value="<?=$_REQUEST["textbox2"]?>

Tercer .php (success.php):
Código:
$customdata = $_REQUEST['custom'];
$customdata2 = $_REQUEST['custom2'];


Sino no sé como hacer... :S


La otra que ya probé y no me funcionó fue hacer un $_POST del $_GET en cada página luego de la primera que contiene el formulario con los 2 textboxes, pero sólo funciona del primer al segundo .php, luego deja de hacer el POST :(

Probé así:

$textbox1 = $_POST[$_GET['textbox1']];
$textbox2 = $_POST[$_GET['textbox2']];

Y así:


$textbox1 = $_POST[$_GET[$textbox1]];
$textbox2 = $_POST[$_GET[$textbox2]];

¿Me dan una manito?


En línea

extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Pasar variable al siguiente .php - paypal - custom
« Respuesta #1 en: 27 Mayo 2012, 11:32 am »

¿Con session lo podré arreglar?

EDIT: Probé y no pude :S


« Última modificación: 27 Mayo 2012, 12:16 pm por extreme69 » En línea

WarGhost
I love basket


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Pasar variable al siguiente .php - paypal - custom
« Respuesta #2 en: 27 Mayo 2012, 12:43 pm »

Bueno primero que nada tenemos que diferenciar el etiquetado HTML del script PHP.
la verdad no he entendido nada, no sé si me he levantado algo lento hoy o que xD.

Si puedes explicarte un poco mejor gustosamente te ayudo.

Qué tienes tres formularios distintos, o sea que el usuario tiene que interaccionar en tres paginas tuyas?
Si es así, podrías hacerlo en un solo fichero php, simplemente asignado una variable:
$_GET["setp"]=1, $_GET["setp"]=2 etc... e ir guardado los datos de cada input en una variable de session que expire cada 10 min por ejemplo.

Un saludo y lo siento por no poderte ayudar más, pero como te digo no se si te explicaste mal o estoy muy espeso yo.
En línea

extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Pasar variable al siguiente .php - paypal - custom
« Respuesta #3 en: 27 Mayo 2012, 14:06 pm »

Está todo desorganizado y en partes.

Pagina1.php:

Código:
<style type="text/css">
submit {
background-image:url(proceed.gif);
background-repeat:no-repeat;
width:146px;
height:30px;
border:none;
}
</style>

<?PHP
$textbox1 = $_POST['textbox1'];
$textbox2 = $_POST['textbox2'];
?>


<FORM ID="" ACTION="pagina2.php">
<label class="contact">Textbox1:</label>
<INPUT TYPE=TEXT class="textboxstyle" NAME="textbox1" MAXLENGTH=30><BR><BR>
<label class="contact">Textbox2:</label>
<INPUT TYPE=TEXT class="textboxstyle" NAME="textbox2" MAXLENGTH=40>
<br><br>
<INPUT TYPE=SUBMIT VALUE="" class="textboxstyle">
</FORM>

Pagina1 me manda a miweb/pagina2.php?textbox1=LoQuePuso&textbox2=LoQueHayaPuesto

Pagina2.php:

Código:
<style type="text/css">
.submit2 {
background-image:url(proceed.gif);
background-repeat:no-repeat;
width:146px;
height:30px;
border:none;
}
.submit3 {
background-image:url(back.gif);
background-repeat:no-repeat;
width:146px;
height:30px;
border:none;
}
</style>

<?php
if (empty($textbox1)) {
echo "<h2>Sorry! Textbox1 should not be empty</h2><br>";
}
?>

<?php
if (empty($textbox2)) {
echo "<h2>Sorry! Textbox2 should not be empty</h2><br>";
}
?>


<?php
if (empty($textbox1) || (empty($textbox2))){
}
else{
echo "<h2>Your text is ok!</h2>";
}
?>


<br><br>

Please Check Your Text:
<?php
echo $_GET['textbox1'];
?>
<br>
Your Slogan:
<?php
echo $_GET['textbox2'];
?>

<br><br><br>

<a href="pagina1.php">
<?php
if (empty($textbox1) || (empty($textbox2))){
echo "<input type=button name=back class=submit3>";
}
else{
}
?>
</a>


<a href="paypal.php">
<?php
if (empty($textbox1) || (empty($textbox2))){
}
else{
echo "<input type=button name=proceed class=submit2>";
}
?>
</a>

Paypal.php:

Código:

<?php
session_start();
//--------------------------------------------------------------------------------------------//
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
$i = 0;
foreach ($_REQUEST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}

// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" name="paypal">
<? $url=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$url = "http://".substr($url,0,strlen($url)-11)."/"; ?>
<? $url2="http://".$_SERVER['HTTP_HOST'];?>
 <input type="hidden" name="cmd" value="_cart">
 <input type="hidden" name="upload" value="1">
  <input type="hidden" name="business" value="xxx@xxx.xxx">
 <input type="hidden" name="currency_code" value="USD">
 <input type="hidden" name="custom" value="<?=$_REQUEST["textbox1"]?>">
 <input type="hidden" name="return" value="<?=$url?>succpaid.php" />
 <input type="hidden" name="notify_url" value="<?=$url?>success.php">
 <input type="hidden" name="cancel_return" value="<?=$url?>failure.php" />
 <input type="hidden" name="receiver_email" value="" />
 <input type="hidden" name="merchant_product_description" value="Photo Upload">
 <input type="hidden" name="item_name_1" value="<?=$item?>" />
 <input type="hidden" name="item_number_1" value="<?=$orderid?>" />
 <input type="hidden" name="quantity_1" value="1" />
 <input type="hidden" name="packageid_1" value="<?=$orderid?>" />
 <input type="hidden" name="amount_1" value="259" />
 </form>

bla bla bla...

<input type="submit" value="Submit" name='submit'>

Paypal.php me manda a success.php donde se determina si el pago fue realizado.


Success.php:

Código:
$item_name = $_REQUEST['item_name_1'];
$item_number = $_REQUEST['quantity_1'];
$payment_amount = $_REQUEST['amount_1'];

$payment_status = $_REQUEST['payment_status'];
$payment_currency = $_REQUEST['mc_currency'];
$txn_id = $_REQUEST['txn_id'];
$receiver_email = $_REQUEST['receiver_email'];
$payer_email = $_REQUEST['payer_email'];
$customdata = $_REQUEST['custom'];

$listing_id = $_REQUEST['list_1'];
$subscription_id =$_REQUEST['item_number1'];
$email = $_REQUEST['payer_email'];


if($payment_status=="Completed")
{

Y acá le manda un mail al admin con el contenido de los 2 textbox entre otras cosas.


Yo quiero, durante toda esta trayectoria, conservar el valor de $textbox1 y $textbox2, estos valores son el texto de los casilleros, que hasta la página 2 la pude pasar, pero de pagina2.php a paypal.php no logro pasar el valor, los ejemplos de lo que probé están más arriba en mi primer thread.

Paypal.php envia a paypal.com a realizar el pago, vuelve a success.php y chequea que se haya completado el pago para enviar el mail con los valores de $textbox1 y $textbox2, pero como el usuario sale de la página, va a paypal y vuelve, se me pierde el valor de las variables incluso si lograra llegar a pasarlas a paypal.php.

Lo que hacía cuando era una sóla linea de texto era utilizar en success.php:

Código:
$customdata = $_REQUEST['custom'];

pero PayPal permite sólo 1 linea de texto para el custom, no puedo poner custom2 por ejemplo.

« Última modificación: 27 Mayo 2012, 14:08 pm por extreme69 » En línea

WarGhost
I love basket


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Pasar variable al siguiente .php - paypal - custom
« Respuesta #4 en: 27 Mayo 2012, 14:34 pm »

uffff, la verdad yo cambiaba todo el código xD, pero bueno lo puedes hacer de muchas formas o con variables de session o bien hacer un formulario en pagina2.php para que envie los valores a paypal.php

Y para hacerlo con session en pagina dos nada mas empezar el script pon:
Código:
<?php session_start(); ?>


y luego una vez verifiques los datos:

Código:
$_SESSION['textbox2'] = $_GET['textbox2'];
$_SESSION['textbox1'] = $_GET['textbox1'];

y en el fichero paypal.php lo mismo, utiliza la variables ya asignadas.

pero como te digo, si quieres hacerlo bien, tienes que cambiar prácticamente todo el código, separando bien el html del php, filtrando bien todo.

Un saludo.
En línea

extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Pasar variable al siguiente .php - paypal - custom
« Respuesta #5 en: 27 Mayo 2012, 14:50 pm »

uffff, la verdad yo cambiaba todo el código xD, pero bueno lo puedes hacer de muchas formas o con variables de session o bien hacer un formulario en pagina2.php para que envie los valores a paypal.php

Y para hacerlo con session en pagina dos nada mas empezar el script pon:
Código:
<?php session_start(); ?>


y luego una vez verifiques los datos:

Código:
$_SESSION['textbox2'] = $_GET['textbox2'];
$_SESSION['textbox1'] = $_GET['textbox1'];

y en el fichero paypal.php lo mismo, utiliza la variables ya asignadas.

pero como te digo, si quieres hacerlo bien, tienes que cambiar prácticamente todo el código, separando bien el html del php, filtrando bien todo.

Un saludo.

Gracias, ahí funcionó creo, pero ya no doy más del sueño :( lo voy a ver mañana más fresquito.

¿El session start va sólo donde empieza la sesión o en cada php que le sigue queriendo conservar los datos?
« Última modificación: 27 Mayo 2012, 14:52 pm por extreme69 » En línea

WarGhost
I love basket


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Pasar variable al siguiente .php - paypal - custom
« Respuesta #6 en: 27 Mayo 2012, 15:06 pm »

En cada pagina php tendrás que poner session_start();, para iniciar la session a no ser que utilices algún tipo de metodología par ano tener que hacerlo.

Por ejemplo, añadir nu fichero global y ahí iniciarla, entonces solo tendrás que añadir los require en cada fichero.
En línea

extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Pasar variable al siguiente .php - paypal - custom
« Respuesta #7 en: 28 Mayo 2012, 02:30 am »

En cada pagina php tendrás que poner session_start();, para iniciar la session a no ser que utilices algún tipo de metodología par ano tener que hacerlo.

Por ejemplo, añadir nu fichero global y ahí iniciarla, entonces solo tendrás que añadir los require en cada fichero.

Gracias Shelly, quedó funcionando y arreglé un poco el relajo que tenía.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pasar deudas al año siguiente
PHP
RedZer 1 2,131 Último mensaje 7 Julio 2011, 01:01 am
por ferarteclasico
pasar variable javascript a php
PHP
soru13 1 3,239 Último mensaje 12 Abril 2012, 18:43 pm
por Shell Root
pasar variable javascript a php
Desarrollo Web
soru13 1 3,917 Último mensaje 23 Abril 2012, 19:07 pm
por hanschrome
Puedo pasar dinero de paypal a moneybrokers/neteller?
Foro Libre
ps3ps3ps3 1 2,549 Último mensaje 9 Julio 2012, 01:17 am
por reagea
¿Cómo evitar pasar a una siguiente opción cuando no hayan ingresado datos?
Programación C/C++
Juancho25 3 2,600 Último mensaje 2 Noviembre 2012, 10:29 am
por NeoB
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines