ilch Forum » Allgemein » HTML, PHP, SQL,... » problem mit fopen

Geschlossen
  1. #1
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    servus

    hab da ein probelm mit einem script und zwar mit http geht es und mit geht die überprüfung nicht.

    ps:bei ftp hab ich die login daten mit in dem link angegeben
    fehlermeldung:[function.fopen]: failed to open stream: FTP server reports 550
    not a plain file. in D:\xampp\htdocs\include\boxes\status.php on line 7

    <?php
    
    
       function urlfind2($link){
          if($link) {
             $file = fopen ($link, "r");
          }
          if($file){
             return true;
             fclose($file);
          } 
          else {
             return false;
          }
       }
    
        
       $link = "http://";
       if(urlfind2($link)){
          echo '<table width="163" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="center"><b>Server1</b></td>
                    <tr>
                      <td align="center"><img src="online.gif"></td>
                  </tr></tr>
                </table>';
       } 
       
       
       else {
          echo '<table width="163" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="center"><b>Server1</b></td>
                   <tr>
                    <td align="center"><img src="offline.gif"></td>
                  </tr></tr>
                </table>';
       }
    
    
        
    
      
       
       $link = "http://";
       if(urlfind2($link)){
          echo '<table width="163" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="center"><b>Server2</b></td>
                  <tr>
                    <td align="center"><img src="online.gif"></td>
                  </tr></tr>
                </table>';
       } 
       else {
          echo '<table width="163" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="center"><b>Server2</b></td>
                   <tr>
                    <td align="center"><img src="offline.gif"></td>
                  </tr></tr>
                </table>';
       }
       
       $link = "ftp://";
       if(urlfind2($link)){
          echo '<table width="163" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="center"><b>UPLOAD</b></td>
                  <tr>
                    <td align="center"><img src="online.gif"></td>
                  </tr></tr>
                </table>';
       } 
       else {
          echo '<table width="163" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="center"><b>UPLOAD</b></td>
                   <tr>
                    <td align="center"><img src="offline.gif"></td>
                  </tr></tr>
                </table>';
       }
       
       
     
    ?>

    Zuletzt modifiziert von Vips am 25.04.2009 - 17:29:13
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Flomavali gelöschter User
    Eine PHP-Info?
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    ähm... du übergibst bei urlfind2 immer als argument $link.. jedoch definierst du $link einmal als und einmal als

    Was genau soll das System bewirken?

    Desweiteren bricht ein return jegliche weitere Ausführung ab:

    ...
          if($file){
             return true;
             fclose($file); // wird nicht mehr ausgeführt
          }
    ...
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    @Ithron

    naja denn status der ersten zwei server überprüfe ich mit http links über eine datei auf den jeweiligen server, und bei dem dritten server kann ich nur über den stauts abfragen der aber auch wieder über eine datei ermittelt wir.

    die ersten zwei abfragen funktionieren, nur den dritten server muss ich über ansprechen das funktioniert aber nicht und ich bekomme die fehlermeldung:
    [function.fopen]: failed to open stream: FTP server reports 550
    not a plain file. in D:\xampp\htdocs\include\boxes\status.php on line 7


    Zuletzt modifiziert von Vips am 26.04.2009 - 10:17:58
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    ftp ist ja auch File Transfer Protocol, HTTP hingegen ein Hyper Text Transfer Protocol.

    mit fopen glaube kannst du keine ftp öffnen.
    ich habs zwar nicht getestet aber da würde ich als erstes den fehler suchen.

    $link = str_replace("ftp://", "http://", $link );

    vllt geht es so wenn deine url's soweit den gleichen pfad haben ansonsten musste mal ein ftp pfad und ein http pfad von den datein zeigen.

       function urlfind2($link){
       		$link = str_replace("ftp://", "http://", $link );
    	 	 
          	if($file = fopen ($link, "r") AND !empty($link) ) {
    			fclose( $file );
    	  		return true;
          	}else{
    	  		return false;
    	  	}
       }


    und wenn du kein http pfad hast dann ftp_connect!


    Zuletzt modifiziert von Balthazar3k am 26.04.2009 - 12:44:01
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    @Balthazar3k

    wenn ich das richtig verstanden habe sollte es eigentlich gehen
    fopen mit
    siehe:
    de3.php.net/manual/de/function.fopen.php

    die links hab ich dir per PrivMsgs geschickt


    Zuletzt modifiziert von Vips am 26.04.2009 - 13:35:01
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    hab jetzt noch einbisschen probiert und es liegt auf jedenfall an der zeile:
    $file = fopen ($link, "r") ;


    Zuletzt modifiziert von Vips am 26.04.2009 - 14:17:35
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    danke euch für eure hilfe hab es gelöst und zwar mit ftp_chdir()
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    die lösung finde ich nicht so gut aber naja

    zu fopen ok wusst nicht meist nutz ich doch file_get_contents

    aber vllt sind auch nur unerwartete zeichen drinne kein plan

    de.php.net/urlencode
    de.php.net/urldecode

    vllt hilft das ja auch
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    warum ist das nicht so gut?
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    naja weil du wieder mal ftp starten must.
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    Du willst nur eine Online / Offline Status abfrage? Warum machst du es nicht so (geht nicht bei funpic o.ä. freehostern):

    <?php
    $link = 'http://www.google.de';
    $on = @fsockopen($link, 2594, &$errno, &$errstr, 1);
    
    if($on)
    {
        echo '<font color="green">online</font>';
    }
    else
    {
        echo '<font color="red">offline</font>';
    }
    ?>
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    wird da doch immer noch das gleiche problem haben mit der url oder nicht?
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    ja hab es mal ausprobiert das geht auch nicht ohne einen ftp_connect


    Zuletzt modifiziert von Vips am 27.04.2009 - 18:19:54
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    Du kannst bei fsockopen auch einfach die serverip eingeben.
    fsockopen versucht eine Verbindung zu dem Server herzustellen, nicht zu Apache, FTP Server oder eine bestimmte Datei.
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    thx
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten