php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-10-2007, 15:31
wkamdem
 Newbie
Links : Onlinestatus : wkamdem ist offline
Registriert seit: Aug 2007
Beiträge: 26
wkamdem ist zur Zeit noch ein unbeschriebenes Blatt
Standard fgets schlägt fehl

Hallo Leute,

ich bin langsam am Ende... Ich will von PHP aus, einen java Servlet aufrufen... habe den unten stehenden Code benutzt.. Es hat vor 4 Tagen noch richtig funktioniert aber seit einige tagen schlägt einfach fgets fehl... Ich habe keine änderungen am code durchgeführt. Es liegt auch nicht am tomcat-server, denn ich habe auch auf einen anderen rechner mit einen neuen tomcat versucht aber ohne erfolg..

Hier ist der Code

PHP-Code:
<?php

$data 
"name=tcha&vorname=will";

$response postDataToHost("localhost""8080""/Test/Test"$data);

  function 
postDataToHost($host$port$path$data_to_send) {

        
$fp fsockopen($host$port);
        
$referer "http://".$host.":".$port."".$path;
    
if (!
$fp) {
    echo 
$errstr" : " .$errno ."<br />\n";
} else {
    
$out "POST $path HTTP/1.1\r\n";
    
$out .= "Host: $host\r\n";
    
$out .= "Referer: $referer\r\n";
    
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
    
$out .= "Content-length: "strlen($data_to_send) ."\r\n";
    
$out .= "Connection: close\r\n";
    
$out .= $data_to_send;
    
        
fwrite($fp$out);

    
$res fgets($fp1);
    if (!
$res) {
        echo 
"fgets fehlgeschlagen"; die();
    }
        
    while(!
feof($fp)) {
        
$res .= fgets($fp128);
        if (!
$res) { echo "fgets fehlgeschlagen"; die(); }
    }
    
fclose($fp);
}
        
        echo 
"Response : " .$res;
        return 
$res;                  
    }
?>
Wie gesagt, ich bekomme nur auf dem bildschirm zu sehen, dass fgets fehlgeschlagen.. Mein servlet wird gar nicht angesprochen..

Kann bitte jemand mir sagen warum oder ein anderer weg zeigen wie ich von php aus eine java klasse bzw. servlet aufrufen kann..

Danke für eure Antwort

Mfg

William

Geändert von wkamdem (21-10-2007 um 15:35 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 21-10-2007, 15:42
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Kannst du das Servlet im Browser aufrufen?
Mit Zitat antworten
  #3 (permalink)  
Alt 21-10-2007, 16:31
wkamdem
 Newbie
Links : Onlinestatus : wkamdem ist offline
Registriert seit: Aug 2007
Beiträge: 26
wkamdem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja ich kann das servlet im browser aufrufen...
Mit Zitat antworten
  #4 (permalink)  
Alt 21-10-2007, 16:55
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

($out .= "Connection: close\r\n";) nach dem letzten header gehört ein doppelter crlf

und $res = fgets($fp, 1); und dann fgets in einer schleife ist mir auch nicht so ganz klar.
Mit Zitat antworten
  #5 (permalink)  
Alt 21-10-2007, 17:08
wkamdem
 Newbie
Links : Onlinestatus : wkamdem ist offline
Registriert seit: Aug 2007
Beiträge: 26
wkamdem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich hatte vorher erst nur die while schleife ohne $res = fgets($fp, 1);

Ich dachte, es liegt vielleicht an der while-schleife bzw. die 128, das ich bei fegts() migegeben habe...

deshalb habe ich $res = fgets($fp, 1);eingeführt nur zum testen...

Wenn man sieht, ich landet ich in der if-Abfrage
PHP-Code:
$res fgets($fp1);
    if (!
$res) {
        echo 
"fgets fehlgeschlagen"; die();
    } 
bekomme ich dann auf dem bildschirm "fgets fehlgeschlagen" und das skript wird beendet... Also es war nur zum testzweck...
Mit Zitat antworten
  #6 (permalink)  
Alt 21-10-2007, 17:13
wkamdem
 Newbie
Links : Onlinestatus : wkamdem ist offline
Registriert seit: Aug 2007
Beiträge: 26
wkamdem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo 3DMax,

ich habe doppelter crlf hinzugefügt.... bekomme immer "fgets fehlgeschlagen"

Der code sieht jetzt so aus
PHP-Code:
<?php
error_reporting
(E_ALL);
$data "name=tcha&vorname=will";

$response postDataToHost("localhost""8080""/Test/Test"$data);

  function 
postDataToHost($host$port$path$data_to_send) {

        
$fp fsockopen($host$port);
        
$referer "http://".$host.":".$port."".$path;
    
if (!
$fp) {
    echo 
$errstr" : " .$errno ."<br />\n";
} else {
    
$out "POST $path HTTP/1.1\r\n";
    
$out .= "Host: $host\r\n";
    
$out .= "Referer: $referer\r\n";
    
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
    
$out .= "Content-length: "strlen($data_to_send) ."\r\n";
    
$out .= "Connection: close\r\n\r\n";
    
$out .= $data_to_send;
    
        
fwrite($fp$out);

    
$res fgets($fp1);
    if (!
$res) {
        echo 
"fgets fehlgeschlagen"; die();
    }
        
//    while(!feof($fp)) {
//        $res .= fgets($fp, 128);
//        if (!$res) { echo "fgets fehlgeschlagen"; die(); }
//    }
    
fclose($fp);
}
        
        echo 
"Response : " .$res;
        return 
$res;                  
    }
?>

Geändert von wkamdem (21-10-2007 um 19:41 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 21-10-2007, 19:09
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
    $res fgets($fp1);
    if (
$res===false) {
        echo 
"fgets fehlgeschlagen"; die();
    } 
Schlägt die Abfrage immer noch fehl? error_reporting oben?
Mit Zitat antworten
  #8 (permalink)  
Alt 21-10-2007, 19:23
wkamdem
 Newbie
Links : Onlinestatus : wkamdem ist offline
Registriert seit: Aug 2007
Beiträge: 26
wkamdem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja es schlägt immer fehl...

Was meinst du mit error_reporting??
Mit Zitat antworten
  #9 (permalink)  
Alt 21-10-2007, 19:29
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ja es schlägt immer fehl...
Ich meine, ob sie nach meiner Änderung immer noch fehlt schlägt!!
-> if ($res===false)

Zitat:
Was meinst du mit error_reporting??
Siehe Regeln!
Mit Zitat antworten
  #10 (permalink)  
Alt 21-10-2007, 19:31
wkamdem
 Newbie
Links : Onlinestatus : wkamdem ist offline
Registriert seit: Aug 2007
Beiträge: 26
wkamdem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja ich habe deine änderungen hinzugefügt und es schlägt immer fehl...
Mit Zitat antworten
  #11 (permalink)  
Alt 22-10-2007, 00:02
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #12 (permalink)  
Alt 22-10-2007, 12:22
wkamdem
 Newbie
Links : Onlinestatus : wkamdem ist offline
Registriert seit: Aug 2007
Beiträge: 26
wkamdem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo, ich habe error_reporting eingebaut... Es kam dann am bildschirm dass die variable $res nicht deklariert ist....

Jetzt kann ich mein servlet ansprechen...

Danke für eure Hilfe

mfg

william
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Plates native PHP template system

Plates ist ein natives PHP-Vorlagensystem, das schnell, einfach zu verwenden und einfach zu erweitern ist.

24.05.2019 Berni | Kategorie: PHP/ Framework
Maqetta Open Source  HTML5-Editor ansehen Maqetta Open Source HTML5-Editor

Einen WYSIWYG-Editor zur visuellen Erstellung von Userinterfaces in HTML5 (Drag-and-Drop)

13.05.2019 Berni | Kategorie: HTML5/ EDITOR
NodeBB

NodeBB ist eine Foren-Software auf NodeJS-Basis

13.05.2019 Berni | Kategorie: PHP/ Forum PHP Software
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:00 Uhr.