Scoutnet vzw

We connect scouts!
Het is momenteel 27 Apr 2024 8:15

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 9 berichten ] 
Auteur Bericht
BerichtGeplaatst: 28 Feb 2007 13:21 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 06 Jan 2005 0:00
Berichten: 127
Woonplaats: Bredene
Yo,

Ik zit al een tijdje met dit probleem te worstelen.

De bedoeling is simpel: bericht versturen naar server (buiten eigen domein) en antwoord opvangen en interpreteren, alles in xml.

Dit werkt:

Code:
<html>
<head>
  <title>Online Check</title>
</head>
<body>

<form method='post' enctype='multipart/form-data' action='http://intcom.xml.techdata-europe.com:8080/Onlchk'>
<textarea id="TextAreaXML" name="xmlmsg" cols='100%' rows='20'></textarea>
<br /><br />
<input type='submit' name='action' value='Verstuur'>
</form>

</body>
</html>


en rechtsreeks naar http://intcom.xml.techdata-europe.com:8080/Onlchk gaan lukt ook.

Het probleem is dan natuurlijk dat je het antwoord te zien krijgt, maar nergens opvangt aangezien je je eigen pagina verlaat.

Ik heb geprobeert via curl:

Code:
<?php

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, "http://intcom.xml.techdata-europe.com:8080/Onlchk");

   curl_exec($ch);
   curl_close($ch);

   if( curl_errno($ch) )
   {
     echo curl_errno($ch).": ".curl_error($ch);
   }

?>


Al vanalles toegevoegd aan de opties, maar geen antwoord.

Via fsockopen:

Code:
<?php

  $host = "intcom.xml.techdata-europe.com/Onlchk";
  $port = 8080;
  $timeout = 5000;

  $fp = fsockopen( $host, $port, $errno, $errstr, $timeout );

  if( !$fp )
  {
    echo "Fout tijdens verbinden met ".$host." op poort ".$port.": ".$errstr." (".$errno.")<br />\n";
  }
  else
  {
    echo "Connectie gemaakt met ".$host." op poort ".$port." !<br />\n";

    print_r( stream_get_meta_data( $fp ) );
    echo "<br />\n";

    $out = "GET HTTP/1.0\r\n";
    $out .= "Host: ".$host."\r\n";
    $out .= "Connection: Close\r\n\r\n";

    fwrite( $fp, $out );

    while( !feof( $fp ) )
    {
      echo fgets( $fp, 128 );
    }

    fclose( $fp );
  }

?>


Via stream_socket_client:

Code:
<?php

  $fp = stream_socket_client( "tcp://intcom.xml.techdata-europe.com:8080/Onlchk", $errno, $errstr, 30 );

  if( !$fp )
  {
    echo "Fout: ".$errstr." (".$errno.")<br />\n";
  }
  else
  {
    fwrite( $fp, "GET / HTTP/1.0\r\nHost: intcom.xml.techdata-europe.com:8080\r\nAccept: */*\r\n\r\n" );

    while( !feof( $fp ) )
    {
      echo fgets( $fp, 1024 );
    }

    fclose( $fp );
  }

?>


Ofwel krijg ik connection refused ofwel een foutmelding waar ik geen info over vindt (errno: 536870912)

Via ASP.NET kan ik het antwoord wel opvangen, maar krijg dan de foutmelding dat er geen boundary meegegeven is met de data. Ik heb hierover al veel opgezocht, maar ook nog geen werkende oplossing kunnen maken. Ik zou liever een oplossing vinden in PHP.


Vraag voor scoutnet: wordt poort 8080 geblokeerd ? zo ja, waarom werkt het form dan die verstuurt naar het script op poort 8080 ? zo nee, waarom krijg ik geen verbinding via fsockopen ?

Ik ken niet zoveel van hoe protocollen alles in de achtergrond afhandelen...


Alvast bedankt !


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 18 Apr 2007 14:05 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 06 Jan 2005 0:00
Berichten: 127
Woonplaats: Bredene
ik heb wat zitten knoeien met curl en versta iets niet:

ik open een url met curl:

Code:
<?php

  $ch = curl_init( "http://integratex.quality.techdata.de:8080/ix/IxHttpGate" );
  curl_exec( $ch );
  curl_close( $ch );

?>


of

Code:
<?php

  shell_exec( "curl http://integratex.quality.techdata.de:8080/ix/IxHttpGate" );

?>



in mijn browser zie ik niks maar als ik het script uitvoer in de shell lukt het perfect

ligt dit aan een instelling van php ? ik moet echt een oplossing vinden om dit te laten werken

en waarom is curl_opt() niet beschikbaar ? -> Call to undefined function curl_opt()


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 18 Apr 2007 16:45 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
Velle schreef:
in mijn browser zie ik niks maar als ik het script uitvoer in de shell lukt het perfect

Dat komt omdat de functie shell_exec niet beschikbaar is op onze server (omwille van veiligheidsrisico; de safe-mode van PHP zit er voor iets tussen geloof ik).

Met curl heb ik geen ervaring.

To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Apr 2007 8:17 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 06 Jan 2005 0:00
Berichten: 127
Woonplaats: Bredene
als ik in de shell 'php -f curl.php' uitvoer lukt het wel, maar niet als ik het bestand oproep vanaf een browser

kunnen jullie eens kijken als dit ligt aan een instelling op de server ?

kunnen jullie eventueel even shell_exec activeren enkel voor mijn account ?


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Apr 2007 15:13 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 06 Jan 2005 0:00
Berichten: 127
Woonplaats: Bredene
Na nog wat prutsen, denk ik dat het probleem niet bij 'shell_exec' ligt:

Deze code werkt:

Code:
  echo shell_exec( 'curl --help' )


Deze niet:

Code:
  echo shell_exec( 'curl http://integratex.quality.techdata.de:8080/ix/IxHttpGate' )


Deze dan weer wel:

Code:
  echo shell_exec( "curl http://www.bartvandevelde.be/style.css" );


en

Code:
  $ch = curl_init( "http://www.bartvandevelde.be/style.css" );
  curl_exec( $ch );
  curl_close( $ch );


Dit werkt ook:

Code:
  echo shell_exec( "curl http://www.rialtooostende.be/release.html" );


en

Code:
  $ch = curl_init( "http://www.rialtooostende.be/release.html" );
  curl_exec( $ch );
  curl_close( $ch );


Wordt poort 8080 ergens geblokkeerd ?

Het rare blijft dat 'curl http://integratex.quality.techdata.de:8 ... xHttpGate' wel uitvoerbaar is via de shell dus daar wordt niks geblokkeerd...


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Apr 2007 16:40 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 06 Jan 2005 0:00
Berichten: 127
Woonplaats: Bredene
Lokaal lukt het me wel, dus zal het zo oplossen...


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Apr 2007 17:28 
Offline
Site Admin
Site Admin

Geregistreerd: 30 Sep 2002 23:00
Berichten: 1806
de php functie shell_exec() is wel degelijk beschikbaar.

verkeer vanaf 'apache' naar 8080 wordt geblokkeerd.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Apr 2007 20:13 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Jan 2004 0:00
Berichten: 773
jorisp schreef:
verkeer vanaf 'apache' naar 8080 wordt geblokkeerd.


Hoe doe je dat trouwens, heb nog nergens een manier gezien om met iptables 1 bepaald programma te blokkeren. Of vertrekt alle verkeer vanuit apache vanaf dezelfde poort (kan je volgens mij niet doen).

Of gebruik nog iets anders dan je firewall? (of een andere firewall?)


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 24 Apr 2007 18:58 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 31 Aug 2002 23:00
Berichten: 473
Woonplaats: Tongerlo
Onze firewall heeft een zogenaamde 'owner' match, waarmee je processen van die owner op netwerkniveau kan beperken.

Deze configuratie verhindert dat wormpjes en gehackte websites schade kunnen berokken aan externe sites.


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 9 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 33 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
cron
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.