PHP – die neusten Beiträge

Warum ist $_POST hier leer?

Hi, arbeite gerade an nem Kontaktformular, welches mit JQuery und Ajax gesendet werden soll. Hier der Code:

let form = $(this);
let actionUrl = "assets/php/contact.php";

$.ajax({
    type: "POST",
    url: actionUrl,
    contentType: "application/json",
    data: form.serialize(),
    success: function (backendError) {
        console.log(backendError);
        errorHandler(backendError);
    },
    error: function () {
        console.log("failure");
        alert("Internal Error occured. Please try again later");
    }
});

hier der PHP Code zum senden:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    try {
        $errors = array();
        $name = "";
        $email = "";
        $human = "";
        $message = "";

        if (empty($_POST["name"])) {
            $errors[] = "name";
        } else {
            $name = $_POST["name"];
        }

        if (empty($_POST["email"])) {
            $errors[] = "email";
        } else {
            $email = $_POST["email"];
        }

        if (empty($_POST["human"])) {
            $errors[] = "human";
        }

        if (empty($_POST["message"])) {
            $errors[] = "message";
        } else {
            $message = $_POST["message"];
        }

        if (count($errors) === 0) {
            $to = "my@email.de";
            $subject = "Kontaktformular - " . $name;
            $message = "";
            $additional_headers = array(
                "From" => $email,
                "Reply-To" => $email,
                "X-Mailer" => phpversion()
            );

            mail($to, $subject, $message, $additional_headers);
            $response["error"] = false;
            echo json_encode($response);
            exit;
        } else {
            $response["error"] = $errors;
            echo json_encode($response);
            exit;
        }
    } catch (Exception $exception) {
        // in Log File Time + Error + IP
        exit;
    }
}

mein Problem: das POST Array is leer. Habs mir mal ganz oben ausgeben lassen, und stand nix drin, obwohl jquery die inputfelder per POST an das PHP File sendet. Ich denke, dass ich irgendwas bei der $ajax methode falsch gemacht habe, und es deshalb net funktioniert. bin am verzweifeln :) danke für jede Hilfe!

Computer, HTML, Webseite, programmieren, JavaScript, AJAX, JQuery, PHP

Umstellung auf PHP 8.0 funktioniert nicht. Was muss ich tun?

Hallo zusammen,

wir haben die Website [...] unseres Kunden bei Strato liegen. Hier möchten wir nun die PHP Version von 7.3 auf 8.0 umstellen. Leider zerschießt es immer beim Umstellen die Seite und es wird folgendes angezeigt:

"
Deprecated: Required parameter $handle follows optional parameter $condition in /mnt/web203/d0/72/54211272/htdocs/wp-content/themes/enfold/framework/php/function-set-avia-frontend.php on line 1565

Deprecated: Required parameter $handle follows optional parameter $condition in /mnt/web203/d0/72/54211272/htdocs/wp-content/themes/enfold/framework/php/function-set-avia-frontend.php on line 1588

Deprecated: Required parameter $overwrite_key follows optional parameter $params in /mnt/web203/d0/72/54211272/htdocs/wp-content/themes/enfold/config-woocommerce/config-356.php on line 1433

Deprecated: Required parameter $overwrite_value follows optional parameter $params in /mnt/web203/d0/72/54211272/htdocs/wp-content/themes/enfold/config-woocommerce/config-356.php on line 1433 Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in /mnt/web203/d0/72/54211272/htdocs/wp-content/themes/enfold/functions-enfold.php on line 324
"

Im Backend in WordPress ist alles (Theme, WordPress, PlugIns) auf dem aktuelle Stand:

WordPress selbst schreibt dies dazu:

Der Strato-Support hat mir ncoh diese veralteten Link geschickt wodurch ich nicht schlauer geworden bin:
https://www.strato.de/blog/wordpress-auf-aktuelle-php-version-umstellen/

https://www.strato.de/faq/hosting/so-stellen-sie-ihre-php-version-manuell-um/

Kennt jemand das Problem und hat ggf. eine Lösung dazu?

Vielen Dank schonmal!

Bild zum Beitrag
Computer, HTML, programmieren, WordPress, PHP, Strato

PHP XLSX Writer überspringt erste Zeile - was tun?

Hey!

Ich habe gestern die Erweiterung PHP XLSX Writer gefunden und meinem System hinzugefügt. Ziel: Datenbank mit PHP (und mysqli) in ein Excel Dokument umwandeln. Irgendwie überspringt er die erste Zeile und spuckt mir im Dokument erst alles ab id=2 aus... Wisst ihr woran das liegt?

Danke schonmal für eure Antworten!

Hier noch der Quellcode von meiner export.php:

<?php
include "config.php";
include_once("../includes/excel/xlsxwriter.class.php");
//ini_set('display_errors', 0);
//ini_set('log_errors', 1);
//error_reporting(E_ALL & ~E_NOTICE);


    date_default_timezone_set('Europe/Berlin');
    $filename = "PZUS_" . date('Y-m-d') . ".xlsx";


    header('Content-disposition: attachment; filename="'.XLSXWriter::sanitize_filename($filename).'"');
    header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    header('Content-Transfer-Encoding: binary');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');   
    $sql="SELECT * FROM tbl_contact";
    $result = $link->query($sql); 
    $row = $result->fetch_assoc(); 
    $header = array(
      'ID'=>'string',
      'Nachname'=>'string',
      'Vorname'=>'string',
      'Klasse'=>'string',
      'Bemerkung'=>'string',
      'Datum'=>'string',
      'Email'=>'string',
      'Adresse'=>'string',
      'Tel'=>'string',
    );
    $writer = new XLSXWriter();
    $writer->writeSheetHeader('PZUS-1', $header);
    $array = array();
    while ($row=$result->fetch_assoc())
    {
        $array[1] = $row['id'];
        $array[2] = $row['fldSurname'];
        $array[3] = $row['fldFirstname'];
        $array[4] = $row['fldClass'];
        //$array[4] = $row['fldCourse'];
        $array[5] = $row['fldDmg'];
        $array[6] = $row['fldDate'];
        $array[7] = $row['fldEmail'];
        $array[8] = $row['fldAdress'];
        $array[9] = $row['fldTel'];
        $writer->writeSheetRow('PZUS-1', $array);
    };


    //$writer->writeSheet($array,'Sheet1', $header);//or write the whole sheet in 1 call    


    $writer->writeToStdOut();
    //$writer->writeToFile('example.xlsx');
    //echo $writer->writeToString();
    exit(0);
Computer, Microsoft Excel, HTML, programmieren, Export, MySQL, PHP

PHP - alles in einen großen PHP Befehl packen?

Heya!

Einmal noch ne "kleine" Frage zu PHP.

Ich soll meine Nav so umschreiben, dass es komplett in einem großen PHP "Container" ist und nicht html kommt, php, dann wieder html, wieder php

Habs bisschen mittels echo probiert aber anscheinend ist das nicht komplett zielführend wie ich das dachte

Der Code:

<ul class="nav">
    <li><a class="navtext <?php echo ($page == 'home.php') ? "active":"" ?>"
            href="index.php?page=home&amp;lang=<?php echo $langKey; ?>">
        <?php echo $lang['MENU_HOME']; ?>        
    </a></li>
    
    <li><a class="navtext <?php echo ($page == 'ueberuns.php') ? "active":"" ?>"
              href="index.php?page=ueberuns&amp;lang=<?php echo $langKey; ?>">
        <?php echo $lang['MENU_ABOUT_US']; ?>
    </a></li>
    
    <li><a class="navtext <?php echo ($page == 'karriere.php') ? "active":"" ?>"
           href="index.php?page=karriere&amp;lang=<?php echo $langKey; ?>">
        <?php echo $lang['MENU_CARRER']; ?>    
    </a></li>
    
    <li><a class="navtext <?php echo ($page == 'blog.php') ? "active":"" ?>"
           href="index.php?page=blog&amp;lang=<?php echo $langKey; ?>">
        <?php echo $lang['MENU_BLOG']; ?>        
    </a></li>
    
    <li><a class="navtext <?php echo ($page == 'kontakt.php') ? "active":"" ?>"
           href="index.php?page=kontakt&amp;lang=<?php echo $langKey; ?>">
        <?php echo $lang['MENU_CONTACT']; ?>    
    </a></li>
    
    <li><a class="navtext <?php echo ($page == 'team.php') ? "active":"" ?>"
           href="index.php?page=team&amp;lang=<?php echo $langKey; ?>">
        <?php echo $lang['MENU_TEAM']; ?>        
        </a></li>
</ul>
HTML, PHP

Weiterleitung nach erstem Login?

Guten Tag und frohe Weihnachten. Meine Frage: ich habe vor ein paar Tagen schon einmal von einer Personengrenze in PHP gesprochen. Jedoch bin ich mit meinem Latein am Ende, da ich eher front-end Entwickler bin. Hätte vielleicht jemand einen Code-schnipsel mit dem ich nach einem Login ein timeout setze dass sich für 30 Sekunden niemand anmelden kann? Sollte dann logischerweise auf eine andere Seite weitergeleitet werden für Load-balance.
login:

<?php
include "config.php";

if(isset($_POST['but_submit'])){

    $uname = mysqli_real_escape_string($con,$_POST['txt_uname']);
    $password = mysqli_real_escape_string($con,$_POST['txt_pwd']);

    if ($uname != "" && $password != ""){

        $sql_query = "select count(*) as cntUser from users where username='".$uname."' and password='".$password."'";
        $result = mysqli_query($con,$sql_query);
        $row = mysqli_fetch_array($result);

        $count = $row['cntUser'];

        if($count > 0){
            $_SESSION['uname'] = $uname;
            header('Location: show.php');
        }else{
            echo "Falscher PIN-Code. Bitte versuche es nocheinmal oder lass es.";
        }

    }

}
?>

Crypt Seite:

 <?php
include "config.php";
$timeout = 10;

//Set the maxlifetime of the session

ini_set( "session.gc_maxlifetime", $timeout );

//Set the cookie lifetime of the session

ini_set( "session.cookie_lifetime", $timeout );

// Check user login or not
if(!isset($_SESSION['uname'])){
    header('Location: login.php');
}

// logout
if(isset($_POST['but_logout'])){
    session_destroy();
    header('Location: login.php');
}
session_start();

//Set the default session name

$s_name = session_name();


//Check the session exists or not

if(isset( $_COOKIE[ $s_name ] )) {



    setcookie( $s_name, $_COOKIE[ $s_name ], time() + $timeout, '/' );


}

else

    header("Location: login.php");

?>
programmieren, PHP

Wie überprüfe ich mit JS oder PHP welche HTML Checkbox in einem Form ausgewählt wurde, bevor es abgesendet wurde?

Wie in der Langen Frage geschrieben, ich suche Code der es mir ermöglicht über Java Skript oder PHP auszuwerten welche Checkbox geklickt wurde.

            <input type="checkbox" class="radio-multichoice" name="abteilung:1">

            <label for="frei" align="center"><strong> Abteilung FF </strong></label><br>

            <input type="checkbox" class="radio-multichoice" name="abteilung:1">

            <label for="workS" align="center"><strong> Abteilung W </strong></label><br>

            <input type="checkbox" class="radio-multichoice" name="abteilung:1">

            <label for="MO" align="center"><strong> Abteilung O </strong></label><br>

Im allgemeinen Nutze ich bereits die Funktion in JS damit der User nur ein Element auswählen kann. Doch nun bräuchte ich eine Direkte Ausgabe je nachdem welches Element ausgewählt wurde. D.h. Ich suche eine Möglichkeit auszuwerten welches angeklickt wurde und dann möchte ich etwas ausführen über if, eles if, else.

Falls es helfen sollte hier habe ich die Begrenzung Methode für das anklicken.

   //Dieser Code überprüft ob drei Elemente ausgewählt wurden. Wenn dies der fall ist dann werden alle weiteren Element Blockiert.

   const groups = [...document.getElementsByClassName("radio-multichoice")].reduce((result, element) => {

 result[element.name] = result[element.name] || [];

 result[element.name].push(element);

 return result;

}, {});

for (const [name, elements] of Object.entries(groups)) {

 const limit = name.split(":")[name.split(":").length-1];

 for(const el of elements) {

  el.addEventListener("change", e => {

   if (elements.filter(x => x.checked).length > limit) {

     e.target.checked = false;

   }

  });

 }

}

Könnte mir dabei jemand Helfen, falls ihr nachfragen habt weil ich es mal wieder nicht richtig erklären konnte stellt bitte eine Nachfrage.

Computer, HTML, Webseite, programmieren, JavaScript, PHP, Webentwicklung

Meistgelesene Beiträge zum Thema PHP