PHP Befehl Datei wird nicht erstellt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Befehl Datei wird nicht erstellt

    HI!
    Ich hoffe mir es kann einer helfen. Die Datei die per PHP kopiert werden soll wird nicht erstellt. Danke im Voraus.

    Sascha

    <?php
    ob_start();
    session_start();
    $jahresmonat = array(1 => 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November','Dezember');
    echo "\r\nProtokoll vom Batchlauf Mitgliederdaten für die DBU-Rangliste einlesen am ".date ('d.m.Y')."\r\n";
    include("../verarbeitung.php");
    include("../funktionen.php");
    @mysql_query("TRUNCATE TABLE ranglistetemp");
    echo"\r\nBestandsdaten der einzelnen Bundesländer einlesen und verarbeiten\r\n";
    $result = @mysql_query("SELECT
    bundesland
    , land_steuerung
    , email
    from rlwarte
    Order by bundesland");
    if (!$result)
    {
    $_SESSION ['Fehlertext'] = "Fehler beim Ermitteln der Bundesländer";
    fehlermeldung();
    }
    $zaehler = 0;
    while ($ergebnis= mysql_fetch_array($result))
    {
    $zaehler++;
    echo "".$zaehler.". Bundesland: ".$ergebnis["bundesland"]."\r\n";
    $_SESSION ['usrland'] = $ergebnis["land_steuerung"];
    $Dateiname = "../rl/".$_SESSION ['usrland']."/".$_SESSION ['usrland'].".csv";
    if(is_file($Dateiname))
    {
    echo "Die Datei ".$Dateiname." ist vorhanden.\r\n";
    $alter_datei = date("d.m.Y, H:i:s", filemtime($Dateiname));
    echo "Letzte Änderung dieser Datei: ".date("d.m.Y H:i:s", filemtime($Dateiname))." Uhr\r\n";
    $result2 = @mysql_query("SELECT
    DATE_FORMAT(alter_datei, '%Y-%m-%d') AS Standdatum
    , TIME_FORMAT(alter_datei,'%H:%i:%s Uhr') AS Standzeit
    , alter_datei
    from rlwarte
    where land_steuerung = '".$_SESSION ['usrland']."'");
    if (!$result2)
    {
    $_SESSION ['Fehlertext'] = "Fehler beim Ermitteln des Updatedatums";
    fehlermeldung();
    }
    $ergebnis2= mysql_fetch_array($result2);
    $letzte_aenderung = "Letzte Aktualisierung der ".strtoupper($_SESSION ['usrland'])."-Daten: ". strftime('%d. '.$jahresmonat[date('n',strtotime($ergebnis2["Standdatum"]))].' %Y',strtotime($ergebnis2["Standdatum"])).", ".$ergebnis2["Standzeit"]."";
    echo "".$letzte_aenderung."\r\n";
    if(strtotime($ergebnis2["alter_datei"])< filemtime($Dateiname))
    {
    $rangliste_update = "Die Daten werden aktualisiert.";
    echo "".$rangliste_update."\r";
    $meldung_ok = datei_verarbeiten($Dateiname);
    $result3 = @mysql_query("UPDATE rlwarte
    SET alter_datei = '".date("Y-m-d H:i:s", filemtime($Dateiname))."'
    where land_steuerung = '".strtolower($_SESSION ['usrland'])."'");
    if (!$result3)
    {
    $_SESSION ['Fehlertext'] = "Letzte Änderung der Datei ermitteln";
    fehlermeldung();
    }
    ($Dateiname,$meldung_ok,$ergebnis["email"],$ergebnis["bundesland"],$letzte_aenderung,$rangliste_update,$alter_datei);
    }
    else
    {
    echo "Keine Änderung. Die Rangliste ist aktuell.\r\n";
    }
    }
    else
    {
    echo "Die Datei ".$Dateiname." ist nicht vorhanden.\r\n";
    }
    echo"--\r\n";
    }
    echo"\rDBU-Bestandsdatei für die FTP-Server erstellen\r";
    $result2 = @mysql_query("SELECT
    DATE_ADD(DATE_FORMAT(MAX(alter_datei), '%Y-%m-%d'), INTERVAL 1 DAY) AS Standdatum
    from rlwarte
    HAVING DATE_ADD(DATE_FORMAT(MAX(alter_datei), '%Y-%m-%d'), INTERVAL 1 DAY) <= CURDATE()
    UNION ALL
    SELECT
    DATE_FORMAT(MAX(alter_datei), '%Y-%m-%d') AS Standdatum
    from rlwarte
    HAVING DATE_FORMAT(MAX(alter_datei), '%Y-%m-%d') <= CURDATE()
    Order by Standdatum DESC
    LIMIT 1");
    if (!$result2)
    {
    $_SESSION ['Fehlertext'] = "Fehler beim Ermitteln des letzten Updatedatums";
    fehlermeldung();
    }
    $stand = mysql_fetch_object($result2);
    if($stand->Standdatum == date('Y-m-d'))
    {
    echo "Letzte Änderung der DBU-Bestandsdatei: ".date("d.m.Y H:i:s", filemtime("../rl/dbu/dbu.csv"))." Uhr. Die Datei wird aktualisiert.\r\n";
    $ausw = @mysql_query("select
    RIGHT(tabelle,4) AS wahljahr
    , bis
    from sportjahre
    where CURDATE() BETWEEN von AND bis");
    if (!$ausw )
    {
    $_SESSION ['Fehlertext'] = "Sportjahr für die Ranglistentabelle ermitteln";
    fehlermeldung();
    }
    else
    {
    $tbwahl = mysql_fetch_array($ausw);
    }
    A.edvnr AS 'EDV-Nr'
    , passnr AS 'Pass-Nr'
    , nachname
    , vorname
    , namenszusatz
    , A.geschlecht
    , DATE_FORMAT(geburtsdatum,'%d.%m.%Y') AS Geburtsdatum
    , club
    , verein
    , land AS 'Länderkürzel'
    , spiele
    , pins
    , DATE_FORMAT(sportjahr,'%d.%m.%Y') AS Sportjahr
    , aktiv
    , CASE WHEN rlkspiele > 0
    THEN
    rlkspiele END AS 'RLK-Spiele'
    , CASE WHEN rlkpins > 0
    THEN
    rlkpins END AS 'RLK-Pins'
    , CASE WHEN Schnitt_alt >= 100
    THEN
    CONCAT(LEFT(Schnitt_alt,3),',',RIGHT(Schnitt_alt,2))
    WHEN Schnitt_alt > 0
    THEN
    CONCAT(LEFT(Schnitt_alt,2),',',RIGHT(Schnitt_alt,2)) END AS 'RLK-Schnitt'
    , CASE WHEN rlkspiele >= 18
    THEN
    Klasse END AS 'RLK-Klasse'
    from rangliste".$tbwahl["wahljahr"]." A,
    (Select edvnr, geschlecht, CASE WHEN ROUND(rlkpins/rlkspiele,2) > 0 THEN (CASE WHEN rlkpins/rlkspiele < 100 THEN LEFT(rlkpins/rlkspiele,5) ELSE LEFT(rlkpins/rlkspiele,6) END) ELSE 0 END AS Schnitt_alt from rangliste".$tbwahl["wahljahr"]." group by edvnr HAVING MAX(ENDDAT)) AS B
    right join rgklasse AS C on C.Geschlecht=B.geschlecht
    where A.edvnr=B.edvnr
    AND Schnitt_alt BETWEEN C.Von AND C.Bis
    AND ENDDAT = '".$tbwahl["bis"]."'
    GROUP BY A.edvnr
    ORDER BY A.edvnr");
    if (!$result2)
    {
    $_SESSION ['Fehlertext'] = "DBU-Rangliste ermitteln";
    fehlermeldung();
    }
    $F = fopen("../rl/dbu/dbu.csv","w+");
    $myrow = mysql_fetch_array($result2);
    if (@mysql_num_rows($result2)> 0)
    {
    $fieldcounts = mysql_num_fields($result2);
    for($i = 0; $i < $fieldcounts; $i++) {
    $fieldtype = mysql_fetch_field($result2, $i);
    if ($i < ($fieldcounts-1)) fputs($F, ucfirst($fieldtype->name).";");
    else fputs($F, ucfirst($fieldtype->name)."\r\n");
    }
    do {
    for($i = 0; $i < $fieldcounts; $i++) {
    $fieldname = mysql_field_name($result2, $i);
    if ($i < ($fieldcounts-1)) fputs($F, $myrow[$fieldname] . ";");
    else fputs($F, $myrow[$fieldname] . "\r\n");
    }
    } while ($myrow = mysql_fetch_array($result2));
    }
    fclose($F);
    }
    else
    {
    echo "Keine Änderung. Die dbu.csv Datei ist aktuell.\r\n";
    }
    echo"-\r\n";
    // Log In Daten anzeigen
    echo"LogIn Daten anzeigen\r\r";
    $result = @mysql_query("SELECT
    mitusr
    , mitpsw
    , DATE_FORMAT(datum, '%d.%m.%Y') AS Logdatum
    , TIME_FORMAT(datum,'%H:%i:%s Uhr') AS Logzeit
    , CASE WHEN erfolg = 1
    THEN
    CONCAT('Ja')
    ELSE
    CONCAT('Nein')
    END AS erfolg
    from mblog
    ORDER by datum DESC");
    if (!$result)
    {
    $_SESSION ['Fehlertext'] = "Fehler beim Ermitteln der Einlogdaten";
    fehlermeldung();
    }
    echo "Datum Uhrzeit User Passwort Erfolg\r\n";
    $menge = mysql_num_rows($result);
    if ($menge == 0)
    {
    echo "Keine Einträge vorhanden.\r\n";
    }

  • #2
    Post den relevanten Code und keine 200 Zeilen Code. Formatiere außer dem den Code mit dem im Forum dafür vorgesehenen Code-Tags.

    Kommentar


    • #3
      Zitat von Sascha2001 Beitrag anzeigen
      HI!
      Ich hoffe mir es kann einer helfen. Die Datei die per PHP kopiert werden soll wird nicht erstellt.

      Sascha

      PHP-Code:
      <?php
      // ... wenig übersichtlicher Wust an Code ...
      // ... 
          
      $F fopen("../rl/dbu/dbu.csv","w+");
          
      $myrow mysql_fetch_array($result2);
              if (@
      mysql_num_rows($result2)> 0)
              {
                  
      $fieldcounts mysql_num_fields($result2);
                  for(
      $i 0$i $fieldcounts$i++) {
                      
      $fieldtype mysql_fetch_field($result2$i);
                      if (
      $i < ($fieldcounts-1)) fputs($Fucfirst($fieldtype->name).";");
                          else  
      fputs($Fucfirst($fieldtype->name)."\r\n");
                  }
                  do {
                      for(
      $i 0$i $fieldcounts$i++) {
                          
      $fieldname mysql_field_name($result2$i);
                          if (
      $i < ($fieldcounts-1)) fputs($F$myrow[$fieldname] . ";");
                              else 
      fputs($F$myrow[$fieldname] . "\r\n");
                      }
                  } while (
      $myrow mysql_fetch_array($result2));
              }
              
      fclose($F);
          }
          else {
              echo 
      "Keine Änderung. Die dbu.csv Datei ist aktuell.\r\n";
          }
      echo
      "-\r\n";
      // ...
      Da du an mehreren Stellen fleißig @ verwendest, gehe ich davon aus, dass dein Error-Reporting "voll aufgedreht" ist. Was sagt es zu dem einzigen fopen()-Aufruf in deinem Script? Wie ist der absolute Pfad zur Datei? Was steht dort? Darf dein Script in das entsprechende Verzeichnis schreiben?
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar

      Lädt...
      X