I have build a Website with a Contact Form. The Form is working, but I have errors where I using $_SESSION[...]
.
I became this Error from my STRATO Webserver:\
Notice: Undefined variable: _SESSION in /mnt/web014/c1/51/511046951/htdocs/it-test/senden_ag_best.php on line 9
Notice: Trying to access array offset on value of type null in /mnt/web014/c1/51/511046951/htdocs/it-test/senden_ag_best.php on line 9
Here is the File senden_ag_best.php, there doesn't work:
<?php
echo '<pre>' . print_r($_SESSION,true) . '</pre>';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$vn = $_SESSION['vn'];
$nn = $_SESSION['nn'];
$kn = $_SESSION['kn'];
$mail = $_SESSION['mail'];
$email = new PHPMailer();
$email->CharSet ="UTF-8";
$email->IsSMTP();
$email->Host = "smtp.strato.de";
$email->SMTPAuth = true;
include 'mail.php';
$email->addAddress($mail);
$email->AddEmbeddedImage('bilder/logo.png', 'logo_2u');
$email->isHTML(true);
$email->Subject ="Kontaktersuchen";
if($_SESSION['ar'] =="f"){
$email->Body = '...';
}
else{
$email->Body = '...';
}
if($email->send()){
?>
<script type="text/javascript" language="Javascript">
alert("Danke für Ihre Nachricht. Wir kümmern uns darum");
</script>
<?php
echo '<script type="text/JavaScript">document.location.href = "index.php?page=arbeitgeber";</script>';
exit();
}
else {
echo "es ist etwas mit dem Senden der Email schief gegangen. Bitte kontaktieren Sie den Serveradministrator unter: ...\nError: ".$email->ErrorInfo;
}
?>
index.php:
<?php
ob_start();
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css"/>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300&display=swap" rel="stylesheet">
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<script src="https://kit.fontawesome.com/dd54256b88.js" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="javascript/goto_termin.js"></script>
<script src="javascript/goto_kontakt.js"></script>
<script src="javascript/goto_2.js"></script>
<script type="module">
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-app.js";
import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-analytics.js";
const firebaseConfig = {
...
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
</script>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico"/>
<meta name="keywords" content="...">
<?php
if(!isset($_COOKIE['allow_cookies'])){
?><script src="javascript/cookie-popup.js"></script><?php
}
?>
</head>
<?php
$page = $_GET['page'];
if(!isset($_COOKIE['allow_cookies'])){
include 'cookie.html';
}
if($page == 'home'){
require_once('home.php');
}
else if($page == 'datenschutz'){
require_once('datenschutz.php');
}
else if($page == 'impressum'){
require_once('impressum.php');
}
else if($page == 'datenschutz'){
require_once('datenschutz.php');
}
else if($page == 'ueber'){
require_once('ueber.php');
}
else if($page == 'unsere-lei'){
require_once('unsere-lei.php');
}
else if($page == 'arbeitnehmer'){
require_once('arbeitnehmer.php');
}
else if($page == 'arbeitgeber'){
require_once('arbeitgeber.php');
}
else if($page == 'kontakt_form'){
require_once('kontakt_form.php');
}
else if($page == 'termin'){
require_once('termin.php');
}
else if($page == 'call_back'){
require_once('call_back.php');
}
else if($page == 'inbau'){
require_once('inbau.php');
}
else if($page == 'senden_ag'){
require_once('senden_ag.php');
}
else if($page == 'senden_ag_best'){
require_once('senden_ag_best.php');
}
else if($page == 'senden_an'){
require_once('senden_an.php');
}
else if($page == 'senden_an_best'){
require_once('senden_an_best.php');
}
else if($page == 'senden_cb'){
require_once('senden_cb.php');
}
else if($page == 'senden_cb_best'){
require_once('senden_cb_best.php');
}
else if($page == 'senden_kf'){
require_once('senden_kf.php');
}
else if($page == 'senden_kf_best'){
require_once('senden_kf_best.php');
}
else if($page == 'senden_tf'){
require_once('senden_tf.php');
}
else if($page == 'senden_tf_best'){
require_once('senden_tf_best.php');
}
else if($page == '401'){
require_once('401.php');
}
else if($page == '403'){
require_once('403.php');
}
else if($page == '404'){
require_once('404.php');
}
else if($page == '500'){
require_once('500.php');
}
?>
</html>
I call all from the index.php inclusive the senden_ag_best.php. When I add session_start();
in the senden_ag_best.php then I have the Error:
Warning: session_start(): Cannot start session when headers already sent in /mnt/web014/c1/51/511046951/htdocs/it-test/senden_ag_best.php on line 2
to call the page I'm using:
.../index.php?page=senden_ag_best
How I set the Sessions in the Contact Form:
$vn = $_POST['vn'];
$vn = str_replace("ü", "ü", $vn);
$vn = str_replace("ß", "ß", $vn);
$vn = str_replace("ö", "ö", $vn);
$vn = str_replace("Ü", "Ü", $vn);
$vn = str_replace("Ä", "Ä", $vn);
$vn = str_replace("Ö", "Ö", $vn);
$_SESSION['vn'] = $vn;
Simple Example to test the Sessions: 1.php:
<?php
session_start();
$test = '1';
$_SESSION['test'] = $test;
header('Location: 2.php');
?>
2.php:
<?php
session_start();
echo $_SESSION['test'];
echo '<pre>' . session_status() . '</pre>';
?>
Please help me to solve this Error. Thanks in advance