Jump to content
php.lv forumi

POST header()


d_01

Recommended Posts

Sveiki!

Es vēlos redirektēt lietotāju ar POST datiem uz $URL neizmantojot <form> submit`u.

Ja būtu nepieciešams izmantot GET, tad būtu lietojis

<? header( "Location:".$url."?a=1&b=2"); ?>

Jautājums: Vai var nosūtīt POST vērtības izmantojot to pašu header() ? un ja var, tad kā?

 

un ko Jūs man ieteiktu ? Varbūt <form method='POST'> javascript myform.submit() nav ne vainas :?

 

Paldies!

Link to comment
Share on other sites

 

Paldies marci par atbildi!

Jā, ar http_post_fields() POST notiek

+ content URL lapai es varu dabūt

 

bet kā lai aizsūta pašu lietotāju uz turieni.? jo šādā veidā lietotājs paliek manā pusē

 

echo http_post_fields('http://saite.lv' , array('a' => 1, 'b' => 2));

Edited by d_01
Link to comment
Share on other sites

Tad jau jāprasa, kur bija problēma nosubmitēt formu uzreiz uz citu lapu? Kaut kāds submits jau tev tev notiek jebkurā gadījumā, ne?

 

pirms nosūtīt uz citu lapu vaig iziet cauri logout.php.

uz logout.php nosūtas masīvs, kurā ir lauki tālākam POST submit. Ja lietotājam nav javascript, tad ar js submit() nedrīkst, jo tad viņš vispār nekur nenokļūs.

 

vaig lai strādātu bez js

Link to comment
Share on other sites

Tad izmanto to pašu header();

$data = urlencode("lauks1=vertiba&lauks2=vertiba");
header("POST /posta/ceļš/fails.php HTTP/1.1\r\n" );
header("Host: www.citalapa.lv\r\n" );
header("Content-type: application/x-www-form-urlencoded\r\n" );
header("Content-length: ".strlen($data)."\r\n" );
header("Connection: close\r\n\r\n" );
echo $data;

Link to comment
Share on other sites

a tā strādā? :)

šitādus headerus sūta browseris, kas submito formu, bet kad browserim ar tādiem atbild, vai šis zinās, ka viņam uzreiz jāizsūta pieprasījums ar tādiem headeriem? ff3 toč neko nesūta.

 

ja tiešām vajag post un negribi padot tos argumentus ar get, tad var ar curl mēģināt.

// t.php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/t2.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "a=1&b=2");
curl_exec($ch);
curl_close($ch);

 

//t2.php
print_r($_POST);

Edited by v3rb0
Link to comment
Share on other sites

Tad izmanto to pašu header();

$data = urlencode("lauks1=vertiba&lauks2=vertiba");
header("POST /posta/ceļš/fails.php HTTP/1.1\r\n" );
header("Host: www.citalapa.lv\r\n" );
header("Content-type: application/x-www-form-urlencoded\r\n" );
header("Content-length: ".strlen($data)."\r\n" );
header("Connection: close\r\n\r\n" );
echo $data;

 

šito variantu jau mēģināju.

diemžēl arī ar otro piegājienu nenotiek kā gribēts. izmēģinājos visādi.

 

un cik nu es saprotu ir tas ka pārlūkprograma

Content-type: application/x-www-form-urlencoded\r\n

uztver kā kaut ko kas ir kaut kā jāatver. un ja nevar atvērt tad uzreiz piedāvā saglabāt kaut kur.

 

v3rb0 laikam pareizi runā, ka tas ir tas kas sūtas prom, bet ne pretēji

Edited by d_01
Link to comment
Share on other sites

Paldies par atsaucību!

 

bet cik zinu, tad curl izpilda pieprasijumu, bet pašu lietotāju ar pārlūkprogramu neredirektē nekur.

 

ok..

ja šitais neiet cauri, tad kā varētu savādāk to pašu problēmu atrisināt., bez šitā visa (protams neatsakos arī no šī risinājuma)

kā lai izveido darbību: lietotājs spiež iet uz citu lapu un kad viņš to nospiež, pie viena arī nostrādā logout, kurš izpilda session_destroy(); unset($_COOKIE);

 

viens kas uzreiz prātā -> ajax.. bet tas nav vēlams,. noteikti ka var kā savādāk.

Edited by d_01
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...