Forum » Server-Side scripting » Pagina met POST openen
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privebericht
Beste,

Hoe kan ik het beste een POST request versturen via PHP naar een PHP script op een andere server?

Dit heb ik nodig om een serial te checken.

Lars
26-08-2010 16:20
Dit topic is 336 keer bekeken door 49 verschillende leden
Reacties op: "Pagina met POST openen"
1 | 2 Volgende pagina
BOE!
Berichten: 459
avatar
Offline Stuur privébericht
Kun je dit niet door:

Code | Selecteer Alles
minimaliseren
1
<form method="post" action="Hier de site waar de serials zijn"></form>


Denkt dat dit zo wel kan.
26-08-2010 16:22
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
26-08-2010 16:25
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
@TCBhome,
Nee, je moet de pagina zelf niet zien

@Darsstar,
Ik ga er eens naar kijken.

Werkt dit op elke server, ongeacht die dingen niet heeft geinstalleerd?
(zoals een .dll ofzo?)

Lars
26-08-2010 17:10
Berichten: 2123
avatar
Offline Stuur privébericht
Nee, het werkt alleen als de cURL library is geïnstalleerd. Op veel servers is dat helaas niet het geval.

Kun je echt niet overstappen op GET requests?
26-08-2010 17:12
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
@Killingdevil,

Dit is mogelijk, maar is wel minder veilig
Ik had al wel gekeken naar een HTTP Request, maar daarvoor moet je wel iets installeren (een .dll ofzo).
Ik had bij targetpay wel een http class, misschien kan ik die gebruiken..

Maar, wat kan dan wel met een GET request?

Lars
26-08-2010 17:16
Berichten: 2123
avatar
Offline Stuur privébericht
file_get_contents werkt prima als je een GET request doet. En dat GET minder veilig is als POST is regelrechte onzin... Of je nu in je HTTP header POST of GET zet, dat maakt helemaal niks uit.
26-08-2010 17:25
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
@killingdevil,
Ik probeer het hier lokaal, en hij blijft maar laden

Dit is het script:
Code | Selecteer Alles
minimaliseren
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
if(isset($_POST['submit'])){

$con file_get_contents("http://planemania.nl/gs/check_serial.php?serial=".$_POST['serial']."&login=".$_POST['login']."&logincode=".$_POST['logincode']."&server=".$_SERVER['SERVER_ADDR']);
$site explode(","$con);
if(
$site[0] == "OK"){
echo 
'<font color="green"><b>Serial bevestigd.</b></font>
<table>
<tr>
<td>Serial:</td>
<td>'
.$_POST['serial'].'</td>
</tr>
<tr>
<td>Gebruikersnaam:</td>
<td>'
.$_POST['login'].'</td>
</tr>
<tr>
<td>Logincode:</td>
<td>'
.$_POST['logincode'].'</td>
</tr>
</table>
U kunt nog <b>'
.$site[1].' websites</b> registreren.
Websites verwijderen kan op <a href="http://grootscripting.nl">http://grootscripting.nl</a>
'
;
} else if(
$site[0] == "ERROR1"){
echo 
'<font color="red">U heeft al 5 websites geregistreerd, verwijder een of meerdere websites op: <a href="http://grootscripting.nl">http://grootscripting.nl</a></font>';
} else{
echo 
'<font color="red">Dit is geen geldige serial, gebruikersnaam of logincode.</font>';
}
} else{
echo 
'
<form method="post">
<table>
<tr>
<td>Serial:</td>
<td><input type="text" name="serial" value="XXXX-XXXX-XXXX-XXXX" size="20"></td>
</tr>
<tr>
<td>Gebruikersnaam:</td>
<td><input type="text" name="login" value="" size="15"></td>
</tr>
<tr>
<td>Logincode:</td>
<td><input type="text" name="logincode" value="XXXXXX-XXXXXX" size="25"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Activate"></td>
</tr>
</table>
</form>
'
;
}
?>


Op de server staat dit:
Code | Selecteer Alles
minimaliseren
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
<?php
$server 
"SECRETSERVER";
$login "SECRETLOGIN";
$password "SECRETPASS";
$database "SECRETDATABASE";
$con mysql_connect($server$login$password);
mysql_select_db($database$con);

if(isset(
$_GET['serial'])){
$res mysql_query("SELECT login, serial, logincode, max FROM gs_buyed WHERE login='".$_GET['login']."' AND serial='".$_GET['serial']."' AND logincode='".$_GET['logincode']."'");
$sel mysql_fetch_array($res);

if(
mysql_num_rows($res) == 1){

$res2 mysql_query("SELECT login, server, serial, logincode FROM gs_using WHERE login='".$_GET['login']."' AND serial='".$_GET['serial']."' AND logincode='".$_GET['logincode']."' AND server='".$_GET['server']."'");

if(
mysql_num_rows($res2) < $sel['max']){
echo 
'OK,'.$sel['max']-mysql_num_rows($res2);
mysql_query("INSERT INTO gs_using (login, server, serial, logincode) VALUES ('".$_GET['login']."', '".$_GET['server']."', '".$_GET['serial']."', '".$_GET['logincode']."')");
} else{
echo 
'ERROR2,'.$sel['max'];
// Server maximum is reached.
}


} else{
echo 
'ERROR1,0';
// Serial didn't exist.
}
}
?>


Nieuwe reactie samengevoegd met originele reactie op 26.08.10 19:17:25:
Het is opgelost.
Op andere sites werkt het wel

Nu nog 2 vragen aan jullie:
1) Wat is de makkelijkste, en altijd al geinstalleerde (of via class die ik erbij kan leveren) encodeer programma?
Dus bijv. zend ofzo, waarmee ik dus php bestanden kan encoderen?
2) Hoe kan ik een website identificeren, dus wat is uniek per website / PHP installatie?
Via $_SERVER['SERVER_ADDR'] kan ik het server IP opvragen, echter is dat bij bijv. localhost altijd hetzelfde (127.0.0.1) wat ik dus liever niet wil.
Ik wil dan dus het IP van het huishouden / domein waar het staat geregistreert.
Dus wat je met de BAT "ping google.nl" als IP krijgt.

Lars
26-08-2010 17:45
Berichten: 2177
avatar
Offline Stuur privébericht
Op je 1e vraag kan ik je antwoord geven, gewoon een class.
26-08-2010 19:27
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
@Robin,

Welk systeem, en is dit goed waterdicht / bijna on encodeer baar?

En niet onbelangrijk: Gratis of betaald

Lars
26-08-2010 19:34
Berichten: 2123
avatar
Offline Stuur privébericht
1) Vertel ons eerst eens wat het precieze doel van het script is, dat kan het wel eens makkelijker maken.
2) Heel simpel: Op jou server kijk je wat de waarde van $_SERVER['REMOTE_ADDR'] is, en dat is de cliënt waar je mee communiceert.
26-08-2010 20:39
Reageer op: "Pagina met POST openen"
1 | 2 Volgende pagina
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden