form data posten dmv fsockopen
Code (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
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$host = "www.domainname.com";
$page = "/cgi-bin/script.cgi";
$params = "param1=value1¶m2=value2";
$port = 80:
$timeout = 60;
$header = "POST $page HTTP/1.0\r\nHost: $host\r\n";
$fp = fsockopen ($host, $port, $errno, $errstr, $timeout);
if ($fp === FALSE) {
die ("$errstr ($errno)");
}
else {
fputs($fp, $header);
fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-Length: " . strlen ($params) . "\r\n");
fputs($fp, "User-Agent: MSIE\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $params);
}
while (!feof($fp)) {
$res = fgets ($fp, 1024);
echo($res);
}
fclose ($fp);
?>
$host = "www.domainname.com";
$page = "/cgi-bin/script.cgi";
$params = "param1=value1¶m2=value2";
$port = 80:
$timeout = 60;
$header = "POST $page HTTP/1.0\r\nHost: $host\r\n";
$fp = fsockopen ($host, $port, $errno, $errstr, $timeout);
if ($fp === FALSE) {
die ("$errstr ($errno)");
}
else {
fputs($fp, $header);
fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-Length: " . strlen ($params) . "\r\n");
fputs($fp, "User-Agent: MSIE\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $params);
}
while (!feof($fp)) {
$res = fgets ($fp, 1024);
echo($res);
}
fclose ($fp);
?>
Ik heb hier een aantal vragen over:
Wat is het verschil tussen HTTP/1.0 en HTTP/1.1? Maakt het in dit geval uit welke er gebruikt wordt?
Als ik x-www-url-encoded gebruik ipv x-www-form-urlencoded maakt dat uit?
Is het dan noodzakelijk (om de buffer te legen??) om dit te doen?
while (!feof($fp)) {
$res = fgets ($fp, 1024);
echo($res);
}
of kan ik dat er gewoon uitlaten?
Alvast bedankt!
Groeten Danielle
Quote:
fockopen
lolletjes (Y)
het moet zijn: fs(!!!!!)ockopen
maar ik kan je helaas niet helpen...
form-encoded is dus voor <form>'s.. formulieren.. Dat andere alleen voor URL adressen, kun je gebruiken als je GET gebruikt in de <form> tag..
de while() loopt is om de content (die de header stuurt etc) te laten zien, kun je dus niet weglaten..
ken het scriptje niet maar denk dat dit het ongeveer doet :)
Ik gebruik deze script binnen een while loop om diverse forms achter elkaar te posten naar een programma. Ik heb dat stukje met fgets eruit gelaten want het vertraagd de hele script .. Op zich werkt het .. alleen af en toe worden niet alle forms verstuurd dan houdt hij er gewoon mee op .. ik probeer er achter te komen waardoor dat zou kunnen komen.
In ieder geval bedankt.
Groeten Dani
Mag ik weten wat je precies wilt doen?? want misschien is er ook nog wel een simpelere oplossing voor :)
Ik ben een script aan het maken die berichten gaat posten naar een programma die dat opvangt en daarop sms berichten gaat verzenden. Ik post de informatie mbt inhoud van de smsberichten en gsm nummer etc. als een url naar het programma. Vooraf verzamel ik een lijst met gsm nummers en een lijst met namen, voor ieder sms bericht zet ik de naam van de persoon van wie het gsm nummer is. Dit gaat allemaal prima .. maar soms dan moeten er bijv. 30 berichten verzonden worden en dan houdt hij er na 10 mee op. En soms dan versturen wij er 75 en dan gaat het allemaal goed. Het is dus een onlogische probleem. Hieronder heb ik een stukje code van mijn script gezet.
elseif ($aanhef == "voornaam") {
$voornamen = explode (",", $voornlijst);
foreach($voornamen as $key => $naam){
$volledigetekst = "".$naam.", ".$tekst."";
$gsm = explode (",", $multilijst);
for($i=0;$i<(count($gsm)-1);$i++){
if ($i == $key) {
$telefoon = $gsm[$i];
$data="userid=$userid&listid=$developerid&gsm=$telefoon&text=$volledigetekst&sender=$sender";
$fp = fsockopen($host, 80);
if (!fsockopen) {
echo "connectie faalt na ".$key." keer";
}
fputs($fp, "POST ".$path." HTTP/1.0\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");
fputs($fp, "\r\n");
fputs($fp, $data."\r\n");
fputs($fp, "\r\n");
if (!fputs) {
echo "verzenden faalt na ".$key." keer";
}
fclose($fp);
}
}
}
}
Misschien weet jij wat hier fout gaat? Of misschien heb je een simplere oplossing voor het versturen van de formdata?
Groeten Dani
Als je een bestaande gebruikt dan kan het zo zijn dat je een aantal smsjes per keer mag sturen.. Daardoor kan dus het probleem ontstaan dat je de ene keer wel 20 smsjes kunt sturen, en de andere keer niet..
ik weet niet of je het wil en of je het liever voor jezelf houdt maar ik heb wel interesse in dat script.. ben benieuwd welke service je gebruikt en hoe het script er verder uit ziet :) als je tijd hebt (en het dus leuk vind) mag je hem hier wel posten..
Gewijzigd op 13/10/2003 10:44:00 door B a s
Ik maak gebruik van mijn eigen sms service. Ik werk voor een bedrijf dat sms diensten aanbiedt op internet. Ik kan helaas niet deze script posten. Maar ik heb wel een aantal andere leuke scripts en functies die geen betrekking hebben met sms die ik zou kunnen posten. Je hoort nog van me!
Groeten Dani
voor welk bedrijf werk je precies?
De fgets vertraagd idd, maar het zorgt ook dat je een controle kunt uitvoeren, hierdoor zou je er dus achter kunnen komen WAAR, WANNEER en WAAROM hij stopt :)