Upriser
Upriser

Reputation: 21

Undefined index PHP placing at host

I have to make a site for school. It need to be linked with a database. On localhost everything is ok and works, but when I tried to upload it on the host of the school, I get this error:

Notice: Undefined index: vragen in /mnt/studentenhomes/arnaud.gandibleux/public_html/datamanagement/index.php on line 44

I can't find the solution

index.php

<div id="tekst">
            <table align='center'>
                <?php
                //if (isset($_GET['vragen'])){

                if ($_GET['vragen'] === 'Alleclubs') {
                    getclubs();

                } elseif ($_GET['vragen'] === 'ledenvjf') {
                    getVJFleden();
                    echo "test";
                } elseif ($_GET['vragen'] === 'ledenffbj') {
                    getFFBJleden();
                }

                elseif (isset($_GET['clubnr'])) {
                    getLedenPerClubEnID($_GET['clubnr']);
                }
                else{
                    getclubs();
                }
                // }
                ?>
            </table>

Crud.php

        function getVJFleden() {
        global $mysqli;

        $result = $mysqli->query("SELECT * FROM Leden l JOIN Clubs c ON l.clubnr = c.clubnr join Bonden b
    ON b.ID_bond = c.ID_bond LEFT JOIN adressen a ON a.ID_adress = l.ID_adress WHERE b.naam_bond = 'VJF';");
        if ($result) {
            if ($result->num_rows > 0) {
                echo"<caption>Alle leden VJF</caption>";
                echo "<th>Voornaam</th><th>achternaam</th><th>leeftijd</th><th>Kye</th><th>adress</th>";
                while ($leden = $result->fetch_object()) {
                    echo "<tr><td>$leden->lid_voornaam</td> ";
                    echo "<td>" . $leden->lid_achternaam . "</td> ";
                    echo "<td>" . $leden->lid_leeftijd . "</td> ";
                    echo "<td>" . $leden->kye . "</td> ";
                    echo "<td>" . $leden->straatnaam . " " . $leden->huisnummer . " " . $leden->postcode . " " . $leden->gemeente . "</td> ";
                    echo "<td><form id='update' action='update.php' method='POST'>
                       <input type='hidden' name='id' value='" . $leden->ID_lid . "'/>
                       <input type='hidden' name='clubnr' value='" . $_GET['clubnr'] . "'/>
                       <input type='image' src='update.png' alt='Update' width='22' height='22'>
                       </form>
                       <form id='delete' action='deleteLid.php' method='POST'>
                       <input type='hidden' name='id' value='" . $leden->ID_lid . "'/>
                       <input type='image' src='delete.png' alt='detele' width='22' height='22'>
                       </form></td> ";
                }
            }
        }
        $mysqli->close();
    }

    function getFFBJleden() {
        global $mysqli;
        #, Adressen a
        #AND l.ID_adress = a.ID_adress
        $result = $mysqli->query("SELECT * FROM Leden l JOIN Clubs c ON l.clubnr = c.clubnr join Bonden b ON b.ID_bond = c.ID_bond LEFT JOIN adressen a ON a.ID_adress = l.ID_adress WHERE b.naam_bond = 'FFBJ';");
        if ($result) {
            if ($result->num_rows > 0) {
                echo"<caption>Alle leden VJF</caption>";
                echo "<th>Voornaam</th><th>achternaam</th><th>leeftijd</th><th>Kye</th><th>adress</th>";
                while ($leden = $result->fetch_object()) {

                    echo "<tr><td>$leden->lid_voornaam</td> ";
                    echo "<td>" . $leden->lid_achternaam . "</td> ";
                    echo "<td>" . $leden->lid_leeftijd . "</td> ";
                    echo "<td>" . $leden->kye . "</td> ";
                    echo "<td>" . $leden->straatnaam . " " . $leden->huisnummer . " " . $leden->postcode . " " . $leden->gemeente . "</td> ";
                    echo "<td><form id='update' action='update.php' method='POST'>
                       <input type='hidden' name='id' value='" . $leden->ID_lid . "'/>
                       <input type='hidden' name='clubnr' value='" . $_GET['clubnr'] . "'/>
                       <input type='image' src='update.png' alt='Update' width='22' height='22'>
                       </form>
                       <form id='delete' action='deleteLid.php' method='POST'>
                       <input type='hidden' name='id' value='" . $leden->ID_lid . "'/>
                       <input type='image' src='delete.png' alt='detele' width='22' height='22'>
                       </form></td> ";
                }
            }
        }
        $mysqli->close();
    }

Upvotes: 0

Views: 120

Answers (4)

Igor Yavych
Igor Yavych

Reputation: 4228

It means that variable vragen is not set so your $_GET array doesn't have any element with index vragen.
Uncomment //if (isset($_GET['vragen'])){ and // } since this was checking if $_GET variable with name vragen was set.
Example of when this check will pass index.php?vragen=ledenvjf

Upvotes: 0

YRM
YRM

Reputation: 301

when you visit the site you do something like: mysite.com?vragen=ledenvjf if you forget the part after the ? there is no $_GET['vragen'] and the notice is thrown

this line

//if (isset($_GET['vragen'])){

prevents the notice from being thrown you should uncomment it together with this line:

// }

Upvotes: 0

Jay
Jay

Reputation: 2153

Two things are happening:

  1. you have Notice warnings on. See here on how to turn them off: (How do I turn off PHP Notices?)
  2. It's probably one of the $_GET parameters that you didn't specify on the url. So when you load the page, you're accessing the $_GET superglobal, but there may be nothing in it, and you're trying to print out that value.

You can either turn off notices or use a function to get a values from $_GET, and in this function check that the value isset() first before you access it.

Upvotes: 0

AlexP
AlexP

Reputation: 9857

You need to ensure that the array index exists before you try to use it. Being that it is a $_GET variable, it may not have been passed as a URL parameter.

Uncomment

//if (isset($_GET['vragen'])){

To

if (isset($_GET['vragen'])){

Upvotes: 0

Related Questions