comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO][PHP] Error: Undefined offset: 1

  • 6 Respuestas
  • 5492 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado $francisco

  • *
  • Underc0der
  • Mensajes: 191
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: hackloper
« en: Noviembre 04, 2014, 07:39:50 pm »
Muy buenas y saludos a todos.

función php:

Código: PHP
  1. function getData($data){
  2.         $lines = explode("\n", $data);
  3.         $keyarray = array();
  4.         $num = count($lines);
  5.  
  6.         for($i=1; $i<$num;$i++){
  7.                 //list($key,$var) = split("=",$lines[$i],2);
  8.                 $works = split("=",$lines[$i]);
  9.                 $keyArray[$works[0]] = $works[1];
  10.                 echo("key: ".$works[0]." value: ".$works[1]);
  11.                 }
  12.         return array($lines[0],$keyArray);
  13.         }

mas código:

Código: PHP
  1. $responsePaypal = getData($var);
  2.  
  3. if(strpos($responsePaypal[0],'SUCCESS') === 0 AND $code == 200){
  4.         echo "SUCCESS!!!";
  5. }

texto que recive en la variable data:

Código: [Seleccionar]
SUCCESS\n
mc_gross=20.00\n
invoice=AF000001\n
protection_eligibility=Eligible\n
address_status=confirmed\n
payer_id=ADSZV7LHTCJM4\n
tax=0.00\n
address_street=Candy+Road+77\n
payment_date=12%3A04%3A18+Oct+19%2C+2010+PDT\n
payment_status=Completed\n
charset=windows-1252\n
address_zip=99501\n
first_name=Alice\n
mc_fee=0.88\n
address_country_code=US\n
address_name=Alice+Foobar\n
custom=\n
payer_status=unverified\n
business=paypal%40business.example.com\n
address_country=United+States\n
address_city=Anchorage\n
quantity=1\n
payer_email=alice.foobar%40example.com\n
txn_id=6BC88318RN685282M\n
payment_type=instant\n
last_name=Foobar\n
address_state=AK\n
receiver_email=paypal%40business.example.com\n
payment_fee=0.88\n
receiver_id=JNNUMM42GJB9U\n
txn_type=web_accept\n
item_name=Stuffed+bear\n
mc_currency=USD\n
item_number=BEAR05\n
residence_country=US\n
receipt_id=3354-8100-5749-2926\n
handling_amount=0.00\n
transaction_subject=Stuffed+bear\n
payment_gross=20.00\n
shipping=0.00\n

me imprime todo esto:

Código: [Seleccionar]
......
......
......
......
Notice: Undefined offset: 1 in /var/www/pay/index.php on line 82
key: value: key: payment_gross value: 20.00
Notice: Undefined offset: 1 in /var/www/pay/index.php on line 81

Notice: Undefined offset: 1 in /var/www/pay/index.php on line 82
key: value: key: shipping value: 0.00
Notice: Undefined offset: 1 in /var/www/pay/index.php on line 81

Notice: Undefined offset: 1 in /var/www/pay/index.php on line 82
key: value: SUCCESS!!!

Como podéis ver al final de todo me llega como si todo estuviera bien, pero me dice que esta indefinido la offset 1, pero para depurar el código hice unas impresiones como podéis ver de el contenido de el array que devuelve la función split, y el array esta ocupando el offset 0 y el 1 entonces ¿A que se debe el error?

gracias.

« Última modificación: Noviembre 18, 2014, 05:10:52 pm por blackdrake »

Desconectado fermino

  • *
  • Underc0der
  • Mensajes: 330
  • Actividad:
    0%
  • Reputación 1
  • Aprendiz de todo, maestro de nada...
    • Ver Perfil
    • In The Middle Of Knowledge
« Respuesta #1 en: Noviembre 04, 2014, 09:32:51 pm »
¿Qué código está en la línea 82 del index?

Desconectado $francisco

  • *
  • Underc0der
  • Mensajes: 191
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: hackloper
« Respuesta #2 en: Noviembre 06, 2014, 06:56:38 am »
En la linea 8 del codigo php que puse en
Código: PHP
  1. $works = split("=",$lines[$i]);

Desconectado kid_goth

  • *
  • Underc0der
  • Mensajes: 201
  • Actividad:
    0%
  • Reputación 3
  • Tu conocimiento se limita cuando dices NO PUEDO...
    • Ver Perfil
    • DC Projects
    • Email
« Respuesta #3 en: Noviembre 06, 2014, 01:32:14 pm »
en el For, no lo inicies desde 1 ponlo desde 0 :)

Código: PHP
  1. for($i=0; $i<$num;$i++){
  2. //...

y por otro lado creyendo que es mejor usa preg_split en vez de explode (aunque bueno daría casi igual)

[Edito]

Si es el offset 1 es que no te esta haciendo el explode... pregunta... el $data viene tal cual lo muestras o sea con el \n?? si es asi intenta explode("\\n", $data) o con comillas simples explode('\n', $data);
« Última modificación: Noviembre 06, 2014, 01:37:11 pm por kid_goth »



Acepta con humildad y aprecio que en la vida la muerte es inevitable y amarás ésta, adorando la muerte

Desconectado $francisco

  • *
  • Underc0der
  • Mensajes: 191
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: hackloper
« Respuesta #4 en: Noviembre 11, 2014, 01:35:50 pm »
Gracias, todo solucionado, lo solucioné cambiando en el for el inicio como me dijisteis desde 0 y cambiando el explode poniendo comillas simples quedo de la siguiente manera.

Código: PHP
  1. function getData($data){
  2.         $lines = explode('\n', $data);
  3.         $keyarray = array();
  4.         $num = count($lines);
  5.  
  6.         for($i=0; $i<$num;$i++){
  7.                 $works = split("=",$lines[$i]);
  8.                 $keyArray[$works[0]] = $works[1];
  9.                 }
  10.         return array($lines[0],$keyArray);
  11.         }

y otra cosa, ¿cual es la diferencia entre usar comillas simples y dobles en el caso de explode para palabras reservadas como "\n"?

en el código que yo tengo si esta "\n" porque es una simulación que estoy haciendo ha paypal, lo almaceno en una variable.

Código: PHP
  1. $var = <<<EOT
  2. SUCCESS\n
  3. mc_gross=20.00\n
  4. invoice=AF000001\n
  5. protection_eligibility=Eligible\n
  6. address_status=confirmed\n
  7. payer_id=ADSZV7LHTCJM4\n
  8. tax=0.00\n
  9. address_street=Candy+Road+77\n
  10. payment_date=12%3A04%3A18+Oct+19%2C+2010+PDT\n
  11. payment_status=Completed\n
  12. charset=windows-1252\n
  13. address_zip=99501\n
  14. first_name=Alice\n
  15. mc_fee=0.88\n
  16. address_country_code=US\n
  17. address_name=Alice+Foobar\n
  18. custom=\n
  19. payer_status=unverified\n
  20. business=paypal%40business.example.com\n
  21. address_country=United+States\n
  22. address_city=Anchorage\n
  23. quantity=1\n
  24. payer_email=alice.foobar%40example.com\n
  25. txn_id=6BC88318RN685282M\n
  26. payment_type=instant\n
  27. last_name=Foobar\n
  28. address_state=AK\n
  29. receiver_email=paypal%40business.example.com\n
  30. payment_fee=0.88\n
  31. receiver_id=JNNUMM42GJB9U\n
  32. txn_type=web_accept\n
  33. item_name=Stuffed+bear\n
  34. mc_currency=USD\n
  35. item_number=BEAR05\n
  36. residence_country=US\n
  37. receipt_id=3354-8100-5749-2926\n
  38. handling_amount=0.00\n
  39. transaction_subject=Stuffed+bear\n
  40. payment_gross=20.00\n
  41. shipping=0.00\n
  42. EOT;

Desconectado kid_goth

  • *
  • Underc0der
  • Mensajes: 201
  • Actividad:
    0%
  • Reputación 3
  • Tu conocimiento se limita cuando dices NO PUEDO...
    • Ver Perfil
    • DC Projects
    • Email
« Respuesta #5 en: Noviembre 11, 2014, 04:50:14 pm »
las comillas dobles interpretan mientras las simples no, puede probar asi y veras la diferencia:

var $proof = 'hola';
echo "$proof \r\n Otra Linea?\n";
echo '$proof \r\n Otra Linea?';

la salida seria:

hola
Otra Linea?
$proof \r\n Otra Linea?

:)



Acepta con humildad y aprecio que en la vida la muerte es inevitable y amarás ésta, adorando la muerte

Desconectado $francisco

  • *
  • Underc0der
  • Mensajes: 191
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: hackloper
« Respuesta #6 en: Noviembre 18, 2014, 01:28:50 pm »
Pues todo aclarado  :)

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 8485
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1722
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2308
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3230
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3581
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon