Autor Zpráva
m_stehlik
Profil
Zdravim vsechny,
poradte s nasledujicim problemem:
mam napsany nejaky skript, ktery overuje existenci udaju a overuje je oproti udajum ulozenym
v databazi (overeni vybraneho zbozi) a potrebuju pri shode udaju odeslat nejaky potvrzovaci kod
rekneme "[OK]" metodou POST. Ten skript nema zadny vystup na monitor, tak mi neni jasne jak to
udelat, aby to probehlo automaticky - jediny vystup je v pripade, ze se udaje neshoduji, to pak vybehne hlaska, ze transakce byla z nejakeho duvodu prerusena. Diky
Leo
Profil
Vubec jsem nepochopil, co to ma delat. Leo
m_stehlik
Profil
Pro leo:
if ( jestlli existuje promenna a neni prazdna){
if(kontrola shodnosti s databazi){
odeslat "[OK]"
}else{
vypsat hlasku, ze udaje nesouhlasi a ukoncit
}
}else{
odeslat hlasku na monitor a ukoncit
}
Leo
Profil
Nerozumi tomu "odeslat OK". Kam odeslat? Jak? A cemu rikate OK? Leo
m_stehlik
Profil
to "[OK]" je pouze potvrzovaci rekneme kod a potrebuji ho poslat nejakemu skriptu v platebnim
centru myslim za se jmenuje http://www.csas.cz/../validation.php.
Leo
Profil
Metodou POST? Pak si nastudujte co je to curl, to je knihovna pro PHP, ktera slouzi k posilani pozadavku po siti, slo by to delat i rucne (pres fsockopen apod.), ale tady v tom je to uz hotovy, Leo
m_stehlik
Profil
a neslo by nejakym zpusobem imitovat POST prenos jako z formulare hidden pole? ?
j_hajsl
Profil
a proč ... nechápu důvod něco odesílat ...
Leo
Profil
"a neslo by nejakym zpusobem imitovat POST prenos jako z formulare hidden pole? ?"

Neslo, to byste musel udelat vystup do prohlizece, kde je ten formular, a ten z prohlizece treba JavaScriptem odeslat :-) Leo
WertriK
Profil *
...
<body onLoad="ok.submit();">
...

if ( jestlli existuje promenna a neni prazdna){
if(kontrola shodnosti s databazi){

<form name="ok" method="post" action="http://csas.cz/blabla">
<input type="hidden" name="treba_ok" value="ok">
</form>

bla bla bylo odeslano

}else{
vypsat hlasku, ze udaje nesouhlasi a ukoncit
}
}else{
odeslat hlasku na monitor a ukoncit
}
m_stehlik
Profil
diky to me nenapadlo.
m_stehlik
Profil
to: j_hasl
aby mi banka prijala tu platbu tak je to nutne. je to pro ne potvrzeni, ze nekdo nepozmenil
odeslane udaje.
llook
Profil
Pokud by ses rozhodl pro cestu přes fsockopen, tak by to vypadalo asi takhle:

if (($fp = fsockopen('csas.cz', 80)) !== false) {
fwrite($fp, 'POST /validation.php HTTP/1.0
Host: csas.cz

');
} else {
trigger_error('Nepodařilo se spojit se serverem.');
}


Jestli se mají předávat ještě nějaké parametry, tak to bude o něco složitější:

/* Tyhle parametry se posílají */
$parametry = array(
'název parametru' => 'jeho hodnota',
'nazev' => 'hodnota',
'blabla' => 'bleble',
);

/* Tady si z nich vytvoříme řetězec $content */
$encoded = array();
foreach ($parametry as $key => $value) {
$encoded[] = rawurlencode($key).'='.rawurlencode($value);
}
$content = implode('&', $encoded);

/* Navážeme spojení a pošleme požadavek */
if (($fp = fsockopen('csas.cz', 80)) !== false) {
fwrite($fp, 'POST /validation.php HTTP/1.0
Host: csas.cz
Content-type: application/x-www-form-urlencoded
Content-length: '.strlen($content).'

'.$content);
} else {
trigger_error('Nepodařilo se spojit se serverem.');
}


Pak by to ještě chtělo funkcí fread načíst odpověď a zjistit, jestli byl vrácen stav 200 Ok, ale už mě to nebaví;)
m_stehlik
Profil
diky, naprosto vycerpavajici
Toto téma je uzamčeno. Odpověď nelze zaslat.

0