Mit Javascript prüfen ob Datei erstellt wurde

Ok.

Javascript:
var interval = window.setInterval(function ()
{
  $.post('file-exists.php', { filename: filename }, function (data)
  {
    if(data == 1)
    {
      $('#wait').css('display', 'none');
      window.clearInterval(interval);
    }
  });
}, 1000);
$('#form-avatar-generator').submit(function (e)
{
  e.preventDefault();
  $('#wait').css('display', 'block');
  $.post('generator.php', $(this).serialize());
  return false;
});

Könntest du mir bitte kurz erläutern (z.B. im Code) was in diesem Code genau passiert? Ist der so Einbaufertig?
 
In Zeile 1 definiere ich eine anonyme Funktion, die in einem Intervall von einer Sekunde (1000 Millisekunden) aufgerufen wird. In Zeile 3 setze ich einen AJAX-Request via POST, der als Parameter den gesuchten Dateinamen übergibt. Die darauf folgende anonyme Funktion nimmt den Rückgabewert entgegen. In dieser Funktion überprüfe ich dann, ob die Datei existiert (Zeile 5). Der Rückgabewert ist 1, wenn die Datei existiert, ansonsten 0. In Zeile 7 blende ich das Element mit der ID #wait aus. In Zeile 8 lösche ich den Intervall, da die Datei jetzt existiert und somit keine weiteren Anfragen nötig sind.

In Zeile 12 definiere ich einen Event-Listener auf das SUBMIT-Ereignis. In Zeile 14 definiere ich, dass die eigentliche Ereignisaktion nicht ausgeführt wird (also die Daten verschicken und die Seite neu laden). In Zeile 15 blende ich das Element mit der ID #wait ein. In Zeile 16 schicke ich die Daten aus den Eingabefeldern serialisiert per AJAX-Request via POST an das Skript generator.php. Und Zeile 17 macht in etwa das Gleiche wie Zeile 14.
 
Das wird nicht funktionieren, da der APC nicht zum Standardumfang von PHP gehört und dementsprechend explizit mitkompiliert werden muss. Da du aber selber nicht dazu in der Lage bist, den PHP-Parser auf deinem Server neuzukompilieren, wirst du den APC nicht nutzen können. Außerdem nutzt dir der APC nur etwas, wenn du Dateien hochladen willst, was bei dir nicht der Fall ist.

Wenn ich detailierte Informationen über deine Verzeichnisstruktur und deine Skripte erhalten könnte, dann könnte ich die Lösung bestmöglich für deinen Fall anpassen.
 
Ok dann versuche ist es mal best möglich zu beschreiben.

1.) In "meinem" Root-Verzeichnis ist die avatar-maker.php gespeichert. Diese PHP-Datei ist die Brücke zwischen meinem Skript und dem vBulletin-Forum. In dieser PHP-Datei wird z.B. die Global.php vom Forum geladen. Wichtig zu erwähnen wäre das der "Name in der URL" von dieser PHP-Datei erzeugt wird. Es steht dann "avatar-maker.php" wenn man das Skript benutzt. Jedoch setze ich vBSeo ein und deswegen wird die PHP-Datei in "the-avatar-maker.html" umgeschrieben.

/avatar-maker.php
/the-avatar-maker.html

2.) Das HTML-Formular inkl. Header, Footer usw. wird in einem Template (von vBulletin) gebildet. Dort kann ich auch alles (z.B. Javascript) einbauen.

3.) Das eigentliche Skript ist unter "/images/ava/create-avatar.php" gespeichert. Beim direkten aufrufen dieser PHP-Datei KANN es zu Fehlern kommen. Es ist so ausgelegt das es das vBulletin braucht. Es läuft ohne vBulletin nicht (ist so gewollt).

/images/ava/create-avatar.php

4.) Dann gibt es noch die "svg2png.php" unter "/images/ava/tmp/svg2png.php". Hier mit Hilfe eines GET-Befehls die SVG-Dateien in PNG-Dateien konvertiert. User die von dieser PHP-Datei wissen, könnten diese evtl. "zum ärger machen" verwenden. Lieber wäre mir wenn diese PHP-Datei kein User zu gesicht bekommen würde.

/images/ava/tmp/svg2png.php
 
Ja klar.

Für den Besucher ist "the-avatar-maker.html" alles in einem.

Die Bilder werden unter "/images/ava/tmp" gespeichert.
 
Zuletzt bearbeitet:
Und ich hätte gerne noch dein/deine Formular(e), also die Eingabefelder die der Nutzer angezeigt bekommt um seinen Avatar zu erstellen.
 
Wie?

Soll ich jetzt alle aufzählen? Namen? Funktion? Anzahl?

Edit:

5x Input-Felder (input01, input02, input03...)
15x Option-Felder (option01, option02, option03...)

Reichen die Angaben nicht?
 
Zuletzt bearbeitet von einem Moderator:
Hilfst du mir noch mit dem Code oder nicht?

Ich habe es jetzt hinbekommen das ich die konvertierung von SVG zu PNG direkt im Skript ausführe.
Da dies jedoch auch etwas länger dauert würde ich gerne beim ausführen des Skriptes einen "Status" (so etwas wie ein Ladebalken) oder ähnliches anzeigen.
 
Zurück