Antworten auf deine Fragen:
Neues Thema erstellen

Warning: Division by zero - Ernüchterung stellt sich ein.

Dissolution

Freund und Helfer

Hallo zusammen!

Problem wurde gelöst. Für Erklärung bitte dem Thread folgen

Nachdem es einige Monate ruhig geworden ist, möchte ich mich nun wieder vermehrt mit PHP ausseinandersetzen. Durch andere Sprachen habe ich herausgefunden, dass die "learning by doing"-Variante bei mir am Besten fruchtet.

Nun denn, ich wollte ein einfaches Skript erstellen, welches bei jedem neuladen einer seite ein anderes Bild einfügt, also etwas sehr triviales möchte man meinen. Nun habe ich einige Tutorials durchgearbeitet, möchte aber ein Skript bauen, bei dem man den Bildern keine "eindeutigen" Namen wie 1.jpg, 2.jpg etc. geben muss.

Gut, gesagt getan. Leider findet sich darin irgendein dummer Denkfehler, auf den die Fehlermeldung "Warning: Division by zero in ... on line 31" hinweisen soll, nur finde ich den Fehler nicht. "Meiner Logik" nach wird da nicht nach 0 dividiert... aber vielleicht sitze ich einfach schon zu lange vor der Kiste.

Wäre wohl jemand so freundlich und würde mir Starthilfe geben?

PHP:
<?php

// Festlegen des Ordners aus dem wir unsere Bilder holen möchten
$random_media_folder = "images";

//Hier wird geprüft ob der Ordner auch ein Ordner ist
if (is_dir($random_media_folder) == false) 
    {echo 'Folder '.$random_media_folder.' is no directory' ;} 
    else { if (file_exists($random_media_folder) == false) {
            echo 'Cannot find folder '.$random_media_folder.''; }
            //Hier werden die Bilder in ein Array gepackt
    else { $filelist = array();
        if ($handle = opendir($random_media_folder)) {
            while (false !== ($file = readdir($handle))) {
            
                if ($file != "." && $file != ".." &&
                ((strpos($file, '.gif') == true) OR
                (strpos($file, '.jpg') == true) OR
                (strpos($file, '.png') == true))) {
                    $filelist[] = $file;
                }
            }
            closedir($handle);
        }
        
        //Wir zählen die Bilder im Array
        $quantity_of_array = count($filelist);
        
        //Da ein Array bei 0 beginnt ziehen wir 1 ab.
        $number_media = ($quantity_of_array-1);
        
        if ($quantity_of_array == 0) { echo 'There are no files in '.$random_media_folder.'';
                                    }
        else { echo 'In folder "'.$random_media_folder.'" there are a total of '.$quantity_of_array.' files.';
        
            $random_key = rand(0, $number_media);
            echo ('.$random_media_folder.'/'.$filelist[$random_key].');
        }
    }
}

//echo (<img src="'.$random_media_folder.'/'.$filelist[$random_key].'">);
?>
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Warning: Division by zero - Ernüchterung stellt sich ein.

Bist du sicher, dass du das richtige Script gepostet hast, bzw. dass die Fehlermeldung sich tatsächlich auf dieses bezieht? Ich sehe jedenfalls keine Division. Holst du vorher noch irgendwelche Dateien per include() rein o.ä.?


Duddle
 

ChrisvA

Aktives Mitglied

AW: Warning: Division by zero - Ernüchterung stellt sich ein.

Doch die Division gibt es, zumindest steht sie da: (wäre freundlich, falls du nächstes mal uns die Fehlerzeile markierst, z.B. mit //Fehler oder // Zeile 31)
PHP:
 echo ('.$random_media_folder.'/'.$filelist[$random_key].');
Schaue dir mal an, wie man mit Strings arbeitet.

PS: Die Färbung hier im Forum sollte dir schon helfen.

PS2: Ist dir die Funktion glob() bekannt. Für solche Aufgaben eigentlich ideal. zunächst alle Dateiendungen raussuchen, dann die Arrays zusammenführen und raus suchen.
 
Zuletzt bearbeitet:
M

M_Glauer

Guest

AW: Warning: Division by zero - Ernüchterung stellt sich ein.

Hallo erstmal!
Ich bin neu auf dieser Seite und in PHP und dementsprechend für Kritik offen ^^

Zu deinem Problem:
Ich denke es liegt an dieser Zeile:
PHP:
echo ('.$random_media_folder.'/'.$filelist[$random_key].');
Der Server interpretiert das "/" nicht als Zeichen, sondern als Rechenoperation. Somit entsteht auch die Division durch 0;

Ich denke mit
PHP:
 echo ("$random_media_folder/$filelist[$random_key]");
sollte es gehen.

Was willst du mit dieser Zeile eig bezwecken?
 

ChrisvA

Aktives Mitglied

AW: Warning: Division by zero - Ernüchterung stellt sich ein.

Der Zweck ist einfach; er möchte einen Dateinamen ausgeben, um zu überprüfen, ob das Skript richtig arbeitet.
Das ist für die Entwicklung schon sinnvoll. Er hat bloß beim Verkürzen von seiner ursprünglichen kompletten Ausgabe mit '<img src='.$var... einen Fehler gemacht.
 

Dissolution

Freund und Helfer

AW: Warning: Division by zero - Ernüchterung stellt sich ein.

Bist du sicher, dass du das richtige Script gepostet hast, bzw. dass die Fehlermeldung sich tatsächlich auf dieses bezieht? Ich sehe jedenfalls keine Division. Holst du vorher noch irgendwelche Dateien per include() rein o.ä.?


Duddle

Ja, sie bezieht sich auf dieses Skript und nur dieses Skript, ansonsten ist noch nichts vorhanden!

Doch die Division gibt es, zumindest steht sie da: (wäre freundlich, falls du nächstes mal uns die Fehlerzeile markierst, z.B. mit //Fehler oder // Zeile 31)
PHP:
 echo ('.$random_media_folder.'/'.$filelist[$random_key].');
Schaue dir mal an, wie man mit Strings arbeitet.

PS: Die Färbung hier im Forum sollte dir schon helfen.

PS2: Ist dir die Funktion glob() bekannt. Für solche Aufgaben eigentlich ideal. zunächst alle Dateiendungen raussuchen, dann die Arrays zusammenführen und raus suchen.

Dankeschön und pardon. Ja, mein Editor markiert mir auch alles so schön. Das bei diesem BB-Code keine Zeile mitgegeben wird habe ich verschlafen, pardon dafür.

Hallo erstmal!
Ich bin neu auf dieser Seite und in PHP und dementsprechend für Kritik offen ^^

Zu deinem Problem:
Ich denke es liegt an dieser Zeile:
PHP:
echo ('.$random_media_folder.'/'.$filelist[$random_key].');
Der Server interpretiert das "/" nicht als Zeichen, sondern als Rechenoperation. Somit entsteht auch die Division durch 0;

Ich denke mit
PHP:
 echo ("$random_media_folder/$filelist[$random_key]");
sollte es gehen.

Was willst du mit dieser Zeile eig bezwecken?

Dankeschön, das war tatsächlich des Rätsels Lösung.

Diese Zeile soll mir das Bild ausgeben. Ja, derzeit gibt sie mir nur den Namen des Bildes aus, aber das sollte ich gleich ändern, wenn ich es denn hinbekomme :)

Dankeschön
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben