[PHP] Require zonder vars

Pagina: 1
Acties:

  • bop
  • Registratie: Juni 2001
  • Laatst online: 19-08-2024

bop

VisualWeb

Topicstarter
Het andere topic van mij is opgelost, maar heb nieuw probleempje... moest bij de andere uiteindelijk deel van script veranderen, ik heb nu:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
  require_once('includes/application_top2.php');

if (IsSet($order)) {
    $query = tep_db_query("select sessionid from payments where id = '" . $HTTP_GET_VARS['order'] . "'");
    $values = tep_db_fetch_array($query);
     $oscsid = $values['sessionid'];
    $order = null;
    require_once(tep_href_link('pm4b_cart.php', '', 'SSL', false, false));

  } else {

    require('includes/classes/order.php');
    $order = new order;
    Header('Content-type: text/plain');
    echo 'M978' . ($order->info['total'] * 100) . "\n";
    echo sizeof($order->products) . "\n";
    for ($i=0; $i<sizeof($order->products); $i++) {
      echo $order->products[$i]['model'] . "\n";
      echo $order->products[$i]['name'] . "\n";
      echo $order->products[$i]['qty'] . "\n";
      echo tep_add_tax($order->products[$i]['final_price'], tep_get_tax_rate($order->products[$i]['id'])) * 100 . "\n";
    }
  }
?>


Als je het zo gebruikt staat er niet veel.

ik laat hem pm4b_cart.php nog een keer includen met andere info

PHP:
1
2
3
    $oscsid = $values['sessionid'];
    $order = null;
    require_once(tep_href_link('pm4b_cart.php', '', 'SSL', false, false));


zou ik het zo doen:
PHP:
1
 require(tep_href_link('pm4b_cart.php', tep_session_name() . '=' . $values['sessionid'], 'NONSSL', false, false));

dan zou het werken, mits ik geen SSL beveiligde server had, die variabele in de link zelf niet toelaat, op dit moment zou hij zoeken naar de file:
pm4b_cart.php?ocscid=hier_de_sessie_id
die natuurlijk niet bestaat

Nou moet ik door middel van een scriptje of wat dan ook zorgen, dat hij het inleest alsof er staat pm4b_cart.php?ocscid=hier_de_sessie_id...
hoop dat weer iemand snapt wat ik bedoel...

doe niet aan signatures.. uhhh, arghhh


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Met require include je over het algemeen een file niet een uri

En ik snap eerlijk gezegd je probleem niet...
Waarom kan je niet je eerste code toepassen?

Of een variant erop, met een array (desnoods zelfs $_GET/HTTP_GET_VARS['oscsid'] = ...)

andere optie is om niet de complete werking van de code vast te leggen in die pm4b_cart.php maar alleen een functie die dat verwerkt.

En dat je het in de files die de boel includen dan gewoon die functie met de juiste parameters aanroept...

  • bop
  • Registratie: Juni 2001
  • Laatst online: 19-08-2024

bop

VisualWeb

Topicstarter
Nou het schijnt zegmaar dat hij het niet uit een losse variabel wil lezen, dus niet

$oscsid = $values['sessionid'];

Dan gaat hij niet de goede gegevens bij de sessie id zoeken, zou het sessieid, in de include link staan, dus zeg maar

pm4b_cart.php?oscsid=hier_het_sessie_id
dan zou je alle gegeven krijgen die je erbij wilt,
doe je pm4b_cart.php, en geef je $oscsid het sessie-id dan leest hij het niet uit...

hoop dat het nu wat duidelijker is

[ Voor 0% gewijzigd door bop op 22-09-2002 19:17 . Reden: typo ]

doe niet aan signatures.. uhhh, arghhh


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Onzin, dan heb je ergens anders een programmeerfout gemaakt :)

Als jij een var ergens declareerd is ie in de includes/requires die je daarna doet net zo goed beschikbaar.

  • gvdh81
  • Registratie: Juli 2001
  • Laatst online: 13-08 18:15

gvdh81

To got or not to got..

als ie inderdaad global is wel ja.. ook gehoord van $PHPSESSID ?

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Begrijp ik het nou goed dat je een PHP bestand code laat generen en die vervolgens wil includen in een andere PHP-file? Als dat het geval is heb je inderdaad een probleem met het overhevelen van variabelen, al kan dat wel via de URL .. Maar voordat ik daar over ga kletsen, klopt wat ik zeg?

|_____vakje______|


  • bop
  • Registratie: Juni 2001
  • Laatst online: 19-08-2024

bop

VisualWeb

Topicstarter
CyberSnooP je hebt gelijk ja... maar dat via URL kan dus niet door SSL...

doe niet aan signatures.. uhhh, arghhh


  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Bij mijn weten is de tep_* functie verzameling geen standaard onderdeel van PHP, en ik kan er ook zo snel geen documentatie over vinden. Maar ik verwacht dat er toch wel functies zijn die diezelfde gegevens overdragen via een POST request.

Verder zie ik het verband tussen URL-variabelen en SSL niet echt. Is het niet zo dat het uiteindelijk gewoon een irritant geconfigureerde SSL-server is?

Je kunt ook nog alternatieve oplossingen bedenken als het overdragen van de gegevens via een file of shared memory (shm_* zooi) als het op dezelfde computer draait. Of je kunt de pm4b_cart.php een request terug laten doen om de informatie op te vragen (al begin ik nu een beetje te twijfelen hoe de server dan weet welke informatie hij moet geven)

Conclusie: Geef wat meer info over die tep_href_link functie(s) en in hoeverre je daar aanvast zit. (Mocht je op andere manieren een http-request kunnen doen zijn er oplossingen genoeg om met POST variabelen over te dragen.

|_____vakje______|


  • bop
  • Registratie: Juni 2001
  • Laatst online: 19-08-2024

bop

VisualWeb

Topicstarter
ik zit helemaal niet vast aan die tep_href_link, is gewoon iets van de shop, heb dat ook al is geprobeerd weg te halen, en gewoon

require("pm4b_cart.php");

maar daar merk je verder nix van...
en volgens mij is het niet een irritant geconfigureerde SSL-server :P
najah irritant wel, maar niet op die manier, ik zal daarover morgen maar even argeweb bellen (webhoster) of ze dat kunnen veranderen, dat hoop ik dan maar..

maar ik snap gewoon niet waarom het niet gewoon werkt zoals ik het doe, want hij heeft de goede variabele en alles, want daar heb ik nix aan veranderd, alleen geef ik het dus door via een losse variabele en niet in de URL van de include...

doe niet aan signatures.. uhhh, arghhh

Pagina: 1