Php Undefined index

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Stefan
Mesaje:117

Php Undefined index

Salut, am urmatorul cod

Cod: Selectaţi tot

// Daca as introduce aici     exit(' "'. $_POST['motiv'] .'" '); imi afiseaza, de ce ?
    $con=mysqli_connect("localhost","root","","login");
    $result = mysqli_query($con,"SELECT * FROM utilizatori WHERE `username` = '$username'");
    while($row = mysqli_fetch_array($result)){ 
        if ($row['acces'] == 1  ) {
        //...
        } else if (empty($_POST) === false && empty($erori) === true) {
        mysql_query("UPDATE `utilizatori` SET `acces` = -1, `motiv` = '". $_POST['motiv'] ."' WHERE `username` = '$username'");
        header('Location: baneaza.php?succes');
        exit();
        }  
    }
    
} 
if (isset($_GET['succes']) === true && empty($_GET['succes']) === true) {
    $fisier = 'avertizari_h.php';
    $mesaj = "  <ul><li> >>> Utilizatorul '" . $date_utilizator['username'] . "' l-a  banat pe '". $_POST['username'] ."' cu motivul '". $_POST['motiv'] . "'<<<  </li></ul> \n"; // linia 58
    file_put_contents($fisier, $mesaj, FILE_APPEND);
    echo '
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <a href="baneaza.php"><button class="btn btn-default">^ Inapoi ^</button></a><br><br>
    <br />
    <div class="alert alert-success">
        <strong>Succes!</strong> Utilizatorul a fost banat! Motivul: "'. $_POST['motiv'] .'" // linia 65
    </div>';
    echo '<br>';
    exit();
}
Si imi zice :

Cod: Selectaţi tot

Notice: Undefined index: username in C:\xampp\htdocs\login\baneaza.php on line 58
Notice: Undefined index: motiv in C:\xampp\htdocs\login\baneaza.php on line 58
Notice: Undefined index: motiv in C:\xampp\htdocs\login\baneaza.php on line 65
Cum le-as putea rezolva ?

MarPlo Mesaje:4343
Salut
Acele erori apar deoarece la accesarea acelei pagini nu exista $_POST['username'] si $_POST['motiv'].
Solutia e sa se verifice existenta acelor variabile si in caz afirmativ sa se execute codul cu ele. Cam asa:

Cod: Selectaţi tot

//daca exista acele date prin POST
if(isset($_POST['username']) && isset($_POST['motiv'])){
  //se executa codul in care sunt folosite acele variabile
} 
- La astfel de erori se gaseste rezolvare si daca ai cauta pe internet: undefined index php.

Stefan Mesaje:117
Am fost incercat cu isset si empty dar tot nu a mers si am fost cautat pe google dar nu ma ajuta cu nimic. Pana la urma am reusit, oricum, multumesc

MarPlo Mesaje:4343
Bine ca ai reusit. Spune-ne si noua cum ai rezolvat, daca nu e secret :).

Stefan Mesaje:117
Am fost incercat mai multe variante si vazand ca nu merge niciuna am sters redirectionarea spre baneaza.php?succes si am mutat codul din ultimul if in penultimul :))