Foros del Web » Programando para Internet » PHP »

Variables de sesion ¿correcto?

Estas en el tema de Variables de sesion ¿correcto? en el foro de PHP en Foros del Web. Quería definir unas varibles de sesion a partir de otras variable me podéis decir si es correcto esto, payer_email me llega por post. $payer_email = ...
  #1 (permalink)  
Antiguo 03/12/2006, 03:34
 
Fecha de Ingreso: noviembre-2006
Mensajes: 87
Antigüedad: 17 años, 5 meses
Puntos: 0
Variables de sesion ¿correcto?

Quería definir unas varibles de sesion a partir de otras variable me podéis decir si es correcto esto, payer_email me llega por post.
$payer_email = $_POST['payer_email'];
$session_payer_email=$_SESSION["$payer_email"];

saludos,
y gracias
  #2 (permalink)  
Antiguo 03/12/2006, 04:00
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Cita:
Iniciado por aprender06 Ver Mensaje
Quería definir unas varibles de sesion a partir de otras variable me podéis decir si es correcto esto, payer_email me llega por post.
$payer_email = $_POST['payer_email'];
$session_payer_email=$_SESSION["$payer_email"];

saludos,
y gracias
Para definerla sería algo así:
Código PHP:
$_SESSION['payer_email']="lo que sea";
       
     
o en el ejemplo que pones

$_SESSION
['payer_email']=$_POST['payer_email'];; 
Y para usarla:
Código PHP:
$session_payer_email=$_SESSION["payer_email"]; 
Al final, obtendrías sobre $session_payer_email el valor "lo que sea" (o lo que has recibido del POST según tu ejemplo).

Realmente la variable de sesión es $_SESSION['payer_email'], y $session_payer_email es una variable local aunque le hayas dado ese nombre.

Ten en cuenta, que a partir del momento en que has dado un valor a tu variable de session, ya la puedes utilizar en cualquiera de tus páginas siempre y cuando la session no expire.

Última edición por holahola; 03/12/2006 a las 04:14 Razón: aclaración
  #3 (permalink)  
Antiguo 03/12/2006, 08:30
 
Fecha de Ingreso: noviembre-2006
Mensajes: 87
Antigüedad: 17 años, 5 meses
Puntos: 0
Gracias por la respuesta, lo he intentado pero no hay manera,mira como lo he puesto:
<?php
session_start();
/////////////////////////////////////////////////
/////////////Begin Script below./////////////////
/////////////////////////////////////////////////

// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST 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 ('paypal.com', 80, $errno, $errstr, 30);


// assign posted variables to local variables
$item_name = $_POST['item_name'];
$business = $_POST['business'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$mc_gross = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$receiver_id = $_POST['receiver_id'];
$quantity = $_POST['quantity'];
$num_cart_items = $_POST['num_cart_items'];
$payment_date = $_POST['payment_date'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$payment_type = $_POST['payment_type'];
$payment_status = $_POST['payment_status'];
$payment_gross = $_POST['payment_gross'];
$payment_fee = $_POST['payment_fee'];
$settle_amount = $_POST['settle_amount'];
$memo = $_POST['memo'];
$payer_email = $_POST['payer_email'];
$txn_type = $_POST['txn_type'];
$payer_status = $_POST['payer_status'];
$address_street = $_POST['address_street'];
$address_city = $_POST['address_city'];
$address_state = $_POST['address_state'];
$address_zip = $_POST['address_zip'];
$address_country = $_POST['address_country'];
$address_status = $_POST['address_status'];
$item_number = $_POST['item_number'];
$tax = $_POST['tax'];
$option_name1 = $_POST['option_name1'];
$option_selection1 = $_POST['option_selection1'];
$option_name2 = $_POST['option_name2'];
$option_selection2 = $_POST['option_selection2'];
$for_auction = $_POST['for_auction'];
$invoice = $_POST['invoice'];
$custom = $_POST['custom'];
$notify_version = $_POST['notify_version'];
$verify_sign = $_POST['verify_sign'];
$payer_business_name = $_POST['payer_business_name'];
$payer_id =$_POST['payer_id'];
$mc_currency = $_POST['mc_currency'];
$mc_fee = $_POST['mc_fee'];
$exchange_rate = $_POST['exchange_rate'];
$settle_currency = $_POST['settle_currency'];
$parent_txn_id = $_POST['parent_txn_id'];
//TEST SESSION:
$_SESSION['session_payer_email']="$payer_email";
//$session_first_name = $_SESSION["$first_names"];
//$session_payment_date = $_SESSION["$payment_date"];
//$session_txn_id = $_SESSION["$txn_id"];
//$session_address_name = $_SESSION["$address_name"];
//$session_address_street = $_SESSION["$address_street"];
//$session_address_zip = $_SESSION["$address_zip"];
//$session_address_city = $_SESSION["$address_city"];
//$session_address_state = $_SESSION["$address_state"];
//$session_address_country =$_SESSION["$address_country"];

// subscription specific vars

$subscr_id = $_POST['subscr_id'];
$subscr_date = $_POST['subscr_date'];
$subscr_effective = $_POST['subscr_effective'];
$period1 = $_POST['period1'];
$period2 = $_POST['period2'];
$period3 = $_POST['period3'];
$amount1 = $_POST['amount1'];
$amount2 = $_POST['amount2'];
$amount3 = $_POST['amount3'];
$mc_amount1 = $_POST['mc_amount1'];
$mc_amount2 = $_POST['mc_amount2'];
$mc_amount3 = $_POST['mcamount3'];
$recurring = $_POST['recurring'];
$reattempt = $_POST['reattempt'];
$retry_at = $_POST['retry_at'];
$recur_times = $_POST['recur_times'];
$username = $_POST['username'];
$password = $_POST['password'];

//auction specific vars

$for_auction = $_POST['for_auction'];
$auction_closing_date = $_POST['auction_closing_date'];
$auction_multi_item = $_POST['auction_multi_item'];
$auction_buyer_id = $_POST['auction_buyer_id'];



if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {

$notify_email = "[email protected]"; //email address to which debug emails are sent to

$DB_Server = ""; //your MySQL Server
$DB_Username = ""; //your MySQL User Name
$DB_Password = ""; //your MySQL Password
$DB_DBName = ""; //your MySQL Database Name



//create MySQL connection
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)
or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());


//select database
$Db = @mysql_select_db($DB_DBName, $Connect)
or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());


$fecha = date("m")."/".date("d")."/".date("Y");
$fecha = date("Y").date("m").date("d");

//check if transaction ID has been processed before
$checkquery = "select txnid from paypal_payment_info where txnid='".$txn_id."'";
$sihay = mysql_query($checkquery) or die("Duplicate txn id check query failed:<br>" . mysql_error() . "<br>" . mysql_errno());
$nm = mysql_num_rows($sihay);
if ($nm == 0){

//execute query



if ($txn_type == "cart"){
$strQuery = "insert into paypal_payment_info(paymentstatus,buyer_email,firs tname,lastname,street,city,state,zipcode,country,m c_gross,mc_fee,memo,paymenttype,paymentdate,txnid, pendingreason,reasoncode,tax,datecreation) values ('".$payment_status."','".$payer_email."','".$firs t_name."','".$last_name."','".$address_street."',' ".$address_city."','".$address_state."','".$addres s_zip."','".$address_country."','".$mc_gross."','" .$mc_fee."','".$memo."','".$payment_type."','".$pa yment_date."','".$txn_id."','".$pending_reason."', '".$reason_code."','".$tax."','".$fecha."')";

$result = mysql_query($strQuery) or die("Cart - paypal_payment_info, Query failed:<br>" . mysql_error() . "<br>" . mysql_errno());
for ($i = 1; $i <= $num_cart_items; $i++) {
$itemname = "item_name".$i;
$itemnumber = "item_number".$i;
$on0 = "option_name1_".$i;
$os0 = "option_selection1_".$i;
$on1 = "option_name2_".$i;
$os1 = "option_selection2_".$i;
$quantity = "quantity".$i;
.....
}
}
fclose ($fp);
}
?>
  #4 (permalink)  
Antiguo 05/12/2006, 02:05
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Donde pones:
$_SESSION['session_payer_email']="$payer_email";
yo pondría:

Código PHP:
$_SESSION['session_payer_email']=$payer_email
Sin comillas. Aunque, como pones comillas dobles, SI QUE TE FUNCIONA.

De todas formas en el código que muestras no veo donde usas la variable de sesión, ya que veo que la recojes en la sentencia que estoy comentando, pero luego no veo donde la usas para poder comprobar si te funciona o no.

Revisa el flujo de tu script para ver si en el insert que tienes después, en vez de utilizar la variable $payer_email, quizás tengas que utilizar su correspondiente variable de sessión $_SESSION['session_payer_email']:

Código PHP:
$strQuery "insert into paypal_payment_info
(paymentstatus,buyer_email,firs tname,lastname,street,city,state,zipcode,country,m c_gross,mc_fee,memo,paymenttype,paymentdate,txnid, pendingreason,reasoncode,tax,datecreation) 
values ('"
.$payment_status."','".$payer_email."','".$first_name."','".$last_name."','".$address_street."',' ".$address_city."','".$address_state."','".$addres s_zip."','".$address_country."','".$mc_gross."','" .$mc_fee."','".$memo."','".$payment_type."','".$pa yment_date."','".$txn_id."','".$pending_reason."', '".$reason_code."','".$tax."','".$fecha."')"

Un saludo.

Última edición por holahola; 05/12/2006 a las 02:34 Razón: Aclaración dobles comillas
  #5 (permalink)  
Antiguo 06/12/2006, 10:08
 
Fecha de Ingreso: noviembre-2006
Mensajes: 87
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Variables de sesion ¿correcto?

Gracias por la paciencia de leer el código, ahora he conseguido arreglarlo.
  #6 (permalink)  
Antiguo 06/12/2006, 10:20
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Variables de sesion ¿correcto?

Y el problema era....?
  #7 (permalink)  
Antiguo 07/12/2006, 03:43
 
Fecha de Ingreso: noviembre-2006
Mensajes: 87
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Variables de sesion ¿correcto?

El problema era que luego empleaba las variables dentro de una función pero a dicha función se las estaba pasando mal, todo funiconaba correctamente con
el formato $_SESSION['payer_email']=$_POST['payer_email'];
el problema es que al pasar por esa función perdía el valor de esa variable a primeras me pareciía un error de no haber definido bien la varible de sesión pero el problema era que dentro de la función no tenía valor porque no la llamaba correctamente,

Muchísimas gracias por tu ayuda me has ayudado mucho da gusto ver gente que realmente quiere aprender y se preocupa por ver como acaban los hilos.

Salu2!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:01.