php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
problem nach update auf php 7


 
marsuhuba
25-02-2017, 02:23 
 
Hallo
Ich habe ein Script zum auslesen und Links generieren von einen Ordner.
Fuktionierte mit php 5 einwandfrei.
nach Update auf php 7 leider nicht mehr.
Ich weiss leider nicht woran das liegt.
nach aufruf des Scripts wird nur folgendes angezeigt "> (http://www.h2666309.stratoserver.net/serien/bessy/daten/%3C?php%20echo%20$dateiinfo[%27dirname%27].) ( | kb)
<?php
// Ordnername
$ordner = "bessybis100"; //auch komplette Pfade möglich ($ordner = "download/files";)

// Ordner auslesen und Array in Variable speichern
$alledateien = scandir($ordner); // Sortierung A-Z
// Sortierung Z-A mit scandir($ordner, 1)

// Schleife um Array "$alledateien" aus scandir Funktion auszugeben
// Einzeldateien werden dabei in der Variabel $datei abgelegt
foreach ($alledateien as $datei) {

// Zusammentragen der Dateiinfo
$dateiinfo = pathinfo($ordner."/".$datei);
//Folgende Variablen stehen nach pathinfo zur Verfügung
// $dateiinfo['filename'] =Dateiname ohne Dateiendung *erst mit PHP 5.2
// $dateiinfo['dirname'] = Verzeichnisname
// $dateiinfo['extension'] = Dateityp -/endung
// $dateiinfo['basename'] = voller Dateiname mit Dateiendung

// Größe ermitteln zur Ausgabe
$size = ceil(filesize($ordner."/".$datei)/1024);
//1024 = kb | 1048576 = MB | 1073741824 = GB

// scandir liest alle Dateien im Ordner aus, zusätzlich noch "." , ".." als Ordner
// Nur echte Dateien anzeigen lassen und keine "Punkt" Ordner
// _notes ist eine Ergänzung für Dreamweaver Nutzer, denn DW legt zur besseren Synchronisation diese Datei in den Orndern ab
if ($datei != "." && $datei != ".." && $datei != "_notes") {
?>
<li><a href="<?php echo $dateiinfo['dirname']."/".$dateiinfo['basename'];?>"><?php echo $dateiinfo['filename']; ?></a> (<?php echo $dateiinfo['extension']; ?> | <?php echo $size ; ?>kb)</li>
<?php
};
};
?>

 
bandit600
25-02-2017, 10:29 
 
Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

 
marsuhuba
25-02-2017, 11:20 
 
sorry komme damit nicht klar
das script ist nicht von mir und ich habe fast keine ahnung von php
was mich nur wundert das es mit php 5 läuft mit php 7 nicht
es arbeitet ohne datenbank

so sieht es mit php 7 aus
Bessy Dateien (http://www.h2666309.stratoserver.net/serien/bessy/daten/bessybis100.php)

und so mit php 5
Bessy Dateien (http://h2572842.stratoserver.net/rest/bessy.php)

Ps habe folgenden code eingefügt
error_reporting(E_ALL);
ini_set('display_errors', 1);

macht keinen unterschied in der ausgabe der datei

Habe andere scripts getestet funzen auch nicht
mein verdacht ist das der server falsch konfiguriert ist
installiere und konfiguriere ihn nun neu

Habe jetzt ne andere version von ubuntu draufgemacht die gleiche die ich auf meinen anderen servern habe und eingerichtet
nun funktioniert das script

sorry das ich euch belästigt habe

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:12 Uhr.