php 8 Fehlermeldung

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Loddar1

Erfahrenes Mitglied
Hallo und Guten Morgen
Mein Provider hat von php 7.2 umgestellt auf php 7.4x,
klappt auch wunderbar.
Jetzt wollte ich XAMPP php 8 testen
und bekomme nur Fehlermeldungen, die in php 7.4x
nicht vorhanden sind:
Warning: Undefined variable $admenu in C:\xampp
Hier mal der Code:
PHP:
if (!leer($admenu)){
echo $admenu;
}
in $admenu steht ein Link.

In der Menü.php
bekomme ich diese Fehlermeldung:
Warning: Trying to access array offset on value of type int in C:\xampp

Hier mal ein bisschen Code:
PHP:
$menu = array (
"Anmelden" => array ( "index.php?jump=login",
"Registrieren" => "index.php?jump=register",
"Passwort?" => "index.php?jump=pwforg" ),
);

$url = basename(getenv("REQUEST_URI"));
    foreach($menu as $main => $mainlink){
  foreach($mainlink as $sub => $sublink){
  $x = count ($mainlink);

if($sub[0] == "" && $mainlink[0] == $url && $x > 1) // Zeile Fehlermeldung

    {
    echo'<li>'.$main.'</li>';
    }

....
   }
}
Habe schon gesucht, aber habe noch nichts gefunden.
es wird keine Datenbank genutzt.

Habe vergessen zu erwähnen dass das Script funktioniert.

Hat einer eine Idee wie die Fehlermeldungen zu entfernen sind ausser ein @ dovor zu stellen?

Für Hilfe wäre ich sehr dankbar Gruß Loddar1
 
Zuletzt bearbeitet:
Habe schon gesucht, aber habe noch nichts gefunden.
Allein wegen dieser Aussage sollte man dich hier links liegen lassen, denn wenn man bei google diese Fehlermeldung eingibt, bekommt man endlos viele Hinweise!

Fehlermeldung 1: $admenu gibt es an dieser Stelle nicht.

Fehlermeldung 2: Wenn du dir die Variablen mal ausgeben lassen würdest, was man bei einem richtigen Debugging machen sollte, dann würde dir was auffallen:
PHP:
<?php
  $menu = array ("Anmelden" => array ( "index.php?jump=login",
                                       "Registrieren" => "index.php?jump=register",
                                       "Passwort?" => "index.php?jump=pwforg" )
                );

    foreach($menu as $main => $mainlink)
    {
       foreach($mainlink as $sub => $sublink)
       {
          echo "<pre>"; var_dump($sub); echo "</pre>";
          echo "<pre>"; var_dump($sublink); echo "</pre>";
       }
    }
?>

Und: wenn du mit PHP 7.x das Error-Reporting hochgedreht hättest, hätte PHP dir die Fehlermeldungen auch schon um die Ohren gehauen.
 
Danke scatello das Du mit mir schimpfst, aber davon habe ich nichts.
ich nutze: error_reporting(E_ALL ^ E_NOTICE);
Betreibst Du eine Webseite?
wenn ja wie entschärfst du denn die E_Notice ?
 
Nur mal so nebenbei, wie schreibt man dann das ohne Notice:
PHP:
if (isset($_POST['save'])=='Senden'){
Code ...
}

etwa so?
PHP:
$save = isset($_POST['save']) ? $_POST['save'] : "";
und dann:
PHP:
if (isset($save)=='Senden'){
Code...
}
 
Grundlagenschulung

Aus der Doku zu isset:
Gibt true zurück, wenn var existiert und einen von null verschiedenen Wert hat, andernfalls false.
Macht das dann Sinn:
PHP:
if (isset($save)=='Senden')
 
Es ist noch aus php 4.x und
PHP:
if (isset($save)=='Senden')
sollte dann so reichen:
PHP:
if (($save)=='Senden')
Aber Du hast meine Frage noch nicht beantwortet.
 
diese Frage: wie schreibt man das ohne Notice-meldung:
PHP:
if ($_POST['save']=='Senden'){
Code ...
}

bringt die Notice-Meldung: Notice: Undefined index: save in
 
Zuletzt bearbeitet:
Grundlagenschulung

PHP:
if (isset($_POST['save']) && $_POST['save'] == 'Senden')
Bitte beschäftige dich eingehend mit den Grundlagen!
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge

Zurück