Heim  >  Fragen und Antworten  >  Hauptteil

TXT-Datei fehlt im PHP-Formular. Irgendeine Idee, was es enthalten sollte?

Ich habe diesen Code auf einem PHP-Mail-Formular, das ich bis vor kurzem nicht verwendet habe.

//Open last-order.txt file for getting the order number
    $readFile = fopen("./order.txt", "r") or die("Unable to open file!");
    $orden= fread($readFile,filesize("./order.txt"));
    fclose($readFile);
    ++$orden;
    $writeFile= fopen("./order.txt", "w") or die("Unable to open file!");
    fwrite($writeFile, $orden);
    fclose($writeFile);
            
    if (!preg_match("~^(?:f|ht)tps?://~i", $website)) $website = "http://" . $website;
    
    $website = filter_var($website, FILTER_VALIDATE_URL);
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
    $participantes = filter_var($_POST["participantes"], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);

Es verweist auf eine TXT-Datei namens order.txt, die die Datei liest und die Nummer bei jedem Lesen um eins erhöht. Leider verlor ich diese Datei, als mir der Hosting-Anbieter die kalte Schulter zeigte, und konnte weder auf den Server noch auf seine Backups zugreifen.

Dies ist der Text, den ich in die TXT-Datei eingefügt habe:

Orden: 8000

Ich bin kein wirklich begabter PHP-Programmierer, also habe ich versucht, es neu zu erstellen oder zum Laufen zu bringen, aber ohne Erfolg.

Das ist der Fehler:

[03-Jan-2023 13:29:22 America/Mexico_City] PHP Warning:  Undefined variable $email_content in /home/guillerm/iefa.com.mx/rsvp/php/reserve.php on line 78
[03-Jan-2023 13:29:22 America/Mexico_City] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/guillerm/iefa.com.mx/rsvp/php/reserve.php:78) in /home/guillerm/iefa.com.mx/rsvp/php/reserve.php on line 149

Jede Hilfe, die mir den richtigen Weg weist, wäre sehr dankbar. Vielen Dank, dass Sie sich diesen Inhalt angesehen haben.

P粉717595985P粉717595985173 Tage vor394

Antworte allen(1)Ich werde antworten

  • P粉825079798

    P粉8250797982024-04-03 00:59:44

    it's literally just supposed to be a number. replace Orden: 8000 with just 8000.

    顺便说一句,该代码是线程不安全,如果您运行,数字可能会发生冲突/重复同时执行多个代码实例;如果需要线程安全,您可以这样做

    $readFile = fopen("./order.txt", "c+b") or die("Unable to open file!");
    flock($readFile, LOCK_EX);
    $orden = (int)stream_get_contents($readFile);
    ++$orden;
    rewind($readFile);
    fwrite($readFile, (string) $orden);
    flock($readFile, LOCK_UN);
    fclose($readFile);

    Antwort
    0
  • StornierenAntwort