salve.
in uno script php ho necessità a richiamare un'altra pagina php passando dei parametri col metodo post (e non get).
quindi... a header('Location: http://www.example.com/'); cosa dovrei aggiungere?
salve.
in uno script php ho necessità a richiamare un'altra pagina php passando dei parametri col metodo post (e non get).
quindi... a header('Location: http://www.example.com/'); cosa dovrei aggiungere?
Non puoi effettuare un redirect passando dati POST. Puoi passare solo dati tramite la query string.
Per fare quello che chiedi:
1. O utilizzi Javascript (od equivalente lato client).
2. Utilizzi fsockopen/curl etc. per effettuare la richiesta POST direttamente dallo script PHP.
bene.
allora ho scritto:
passando per 'POST' e dove $data è:Codice PHP:
function sendToHost($host,$method,$path,$data,$useragent=0)
{
$buf = '';
// Supply a default method of GET if the one passed was empty
if (empty($method)) {
$method = 'GET';
}
$method = strtoupper($method);
$fp = fsockopen ($host, 80, $errno, $errstr, 30);
if (!$fp) {
$buf.= "$errstr ($errno)
\n";
} else {
if ($method == 'GET') {
$path .= '?' . $data;
}
fputs($fp, "$method $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp,"Content-type: application/x-www-form- urlencoded\r\n");
fputs($fp, "Content-length: " . strlen($data) . "\r\n");
if ($useragent) {
fputs($fp, "User-Agent: MSIE\r\n");
}
fputs($fp, "Connection: close\r\n\r\n");
if ($method == 'POST') {
fputs($fp, $data);
}
while (!feof($fp)) {
$buf .= fgets($fp,128);
}
fclose($fp);
}
return $buf;
}
$data = "Content-Disposition: form-data; name=\"".'pippo'."\"\r\n";
$data .= "\r\n".'valorepippo'."\r\n";
ma ottengo errore 400 Bad Request !!
come mai?
Ciao,
sono interessato anche io a capire bene come funziona sto benedetto POST in php.
Vi giuro che fin'ora ancora non sono riuscito a trovare una cosa che me lo faccia capire bene.
Io vorrei tradurre il programma galicesms da Perl a PHP, ma non conoscendo il perl, e non essendo un mostro di php mi sono sorti dei dubbi che hanno scatenato in me una confusione enorme.
In pratica vorrei fare un POST e tradurre questo pezzo di codice da perl a php per il momento.
Codice Perl:
Il codice PHP che ho fatto io invece è questa cosa quà:codice:my $uname = $self->{username}."\@alice.it"; $res = $ua->post("http://authsrs.alice.it/aap/validatecredential", { URL_OK => 'http://portale.rossoalice.alice.it/ps/HomePS.do?area=posta&settore=sms', URL_KO => 'http://portale.rossoalice.alice.it/ps/ManageCodError.do?channel=mail_ra&area=posta&settore=sms', usr => $self->{username}, channel => 'mail_ra', login => $uname, password => $self->{passwd}, });
Dove la funzione post è la stessa che ho preso da questo sito.Codice PHP:
$username = $_POST['username'];
$email = "$username@alice.it";
$values = array(
$url_ok,
$url_ko,
$_POST['username'],
"mail_ra",
$email,
$_POST['passwd']
);
post($auth_url,$values);
Non lo so.. io sto solo facendo delle prove, ma visto che nulla va per il verso giusto mi sa che ho imboccato la strada sbagliata.
PS: ovviamente le variabili username e passwd sono in un form html.