Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webdesign (HTML, CSS, Flash)

[PHP] Undefined index en variable

None
6 antwoorden
  • Hallo mensen,

    Ik ben weer eens bezig geweest met een script. Nou staat er vrijwel zeker een fout in. Als ik de pagina bijvoorbeeld bekijk, krijg ik de volgende meldingen;
    [b:bf054b47fd]Notice: Undefined index: id in /home/*****.nl/www/nieuw/news.php on line 36

    Notice: Undefined index: id in /home/*****.nl/www/nieuw/news.php on line 36

    Notice: Undefined variable: months in /home/*****.nl/www/nieuw/news.php on line 88

    Notice: Undefined variable: row in /home/*****.nl/www/nieuw/news.php on line 50[/b:bf054b47fd].
    ik heb geen idee wat dit mag betekenen. Hopelijk kunnen jullie mij uit de brandd helpen. Hier is de broncode:

    [b:bf054b47fd]news.php[/b:bf054b47fd]
    [code:1:bf054b47fd]<?PHP
    include("config.php");
    $soort = "".$_GET['soort']."";
    $page = "".$_GET['p']."";

    function maand($counter)
    {
    if ($counter == 1)
    $count = "januari";
    elseif ($counter == 2)
    $count = "februari";
    elseif ($counter == 3)
    $count = "maart";
    elseif ($counter == 4)
    $count = "april";
    elseif ($counter == 5)
    $count = "mei";
    elseif ($counter == 6)
    $count = "juni";
    elseif ($counter == 7)
    $count = "juli";
    elseif ($counter == 8)
    $count = "augustus";
    elseif ($counter == 9)
    $count = "september";
    elseif ($counter == 10)
    $count = "oktober";
    elseif ($counter == 11)
    $count = "november";
    elseif ($counter == 12)
    $count = "december";

    return $count;
    }

    if (!$_GET['id'] && !$_POST['id'])
    {
    $counter = 1;

    while($counter <= 12)
    {
    if ($counter == 1)
    $counter = "0" . $counter;

    $sql = "SELECT id,name,titel,intrmsg,datum,substring(datum, 7, 4) as year FROM nieuws_$soort WHERE SUBSTRING(datum, 4, 2) = " . $counter . " order by id DESC,year DESC";
    $res = mysql_query($sql);

    if (mysql_num_rows($res) >= 1)
    {
    $year = $row['year'];

    $berichten = mysql_num_rows($res);

    $month = maand($counter);

    if ($berichten == 1)
    echo "<b>" . ucfirst($month) . " " . $year . "</b> (" . $berichten . " bericht)";
    else
    echo "<b>" . ucfirst($month) . " " . $year . "</b> (" . $berichten . " berichten)";

    echo "<blockquote>";

    while ($row = mysql_fetch_array($res))
    {
    $sql2 = "select id from reacties_$soort where tid = " . $row['id'];
    $res2 = mysql_query($sql2);
    $count = mysql_num_rows($res2);
    echo "<b>[" . $row['name'] . "] </b><a href=?p=$page&soort=$soort&id=" . $row['id'] . ">" . htmlentities($row['titel']) . "</a> (" . $count . " reacties sinds " . $row['datum'] . ")<br>";
    $sql3 = "select intrmsg from nieuws_$soort where tid = " . $row['id'];
    $res3 = mysql_query($sql3);
    echo "<i>" . $row['intrmsg'] . "<br></i><hr>";
    }

    echo "</blockquote><p>";

    }
    else
    {
    if ($counter <= 12)
    {
    $length = strlen(maand($counter)) - 1;
    $month = strtoupper(substr(maand($counter), 0, -$length)) . substr(maand($counter), 1);
    if ($counter == 11)
    $months .= $month . " en ";
    elseif ($counter == 12)
    $months .= $month;
    else
    $months .= $month . ", ";
    }

    }

    $counter++;

    }
    }
    else
    {
    if ($_POST['submit'] && $_POST['naam'] && $_POST['msg'])
    {
    $datum = date("d.m.Y H:i");

    $sql = "INSERT INTO reacties_$soort (id, naam, titel, msg, datum, ipadres, tid) VALUES ";
    $sql .= "('', '" . $_POST['naam'] . "', '" . $_POST['titel'] . "', '" . $_POST['msg'] . "', '" . $datum . "', '" . $_SERVER['REMOTE_ADDR'] . "', '" . $_GET['id'] . "')";
    $res = mysql_query($sql);

    if ($res)
    echo "<SCRIPT LANGUAGE=\"javascript\" TYPE=\"text/javascript\">window.location='?p=$page&soort=$soort&id=" . $_GET['id'] . "'</SCRIPT>
    ";
    else
    echo "Reactie niet toegevoegd.";
    }
    else
    {
    $sql = "SELECT id,titel,msg,datum FROM nieuws_$soort WHERE id = '" . $_GET['id'] . "'";
    $res = mysql_query($sql);

    echo "<a href=\"?p=$page&soort=$soort\" target=\"_top\">nieuws overzicht</a><p>";

    if (mysql_num_rows($res) >= 1)
    {
    $row = mysql_fetch_array($res);
    $hiddentitel = $row['titel'];

    echo "<h1>" . htmlentities($row['titel']) . "</h1> [" . $row['datum'] . "]<p>";

    $row['msg'] = nl2br(($row['msg']));
    echo $row['msg'] . "<p>";

    echo "<hr color=\"#000000\"><p>";

    $sql = "SELECT id,naam,titel,msg,datum FROM reacties_$soort WHERE tid = '" . $_GET['id'] . "' ORDER BY id DESC";
    $res = mysql_query($sql);

    echo "<a name=\"reacties\"><table border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"#CFC9B4\" width=\"100%\"><tr><td>";
    echo "<table border=0 cellspacing=0 cellpadding=5 width=\"100%\"></a>";

    if (mysql_num_rows($res) >= 1)
    {

    while ($row = mysql_fetch_array($res))
    {
    echo "<tr><td bgcolor=\"#CFC9B4\"><b>" . htmlentities($row['naam']) . "</b> [" . $row['datum'] . "]</td></tr>";
    $row['msg'] = nl2br(htmlentities($row['msg']));
    echo "<tr><td bgcolor=\"#E4DECA\">" . $row['msg'] . "</td></tr>";
    }
    }
    else
    {
    echo "<tr><td bgcolor=\"#CFC9B4\">Er zijn nog geen reacties op dit bericht</td></tr>";
    }

    echo "</td></tr></table></table><p>";

    echo "<form method=\"post\" action=\"?p=$page&soort=$soort&id=$_GET[id]\">";
    echo "<input type=\"hidden\" name=\"titel\" value=\"$hiddentitel\">";
    echo "<table border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bgcolor=\"#E4DECA\" bordercolor=\"#CFC9B4\" width=\"100%\">";
    echo "<tr><td><table border=0 cellspacing=0 cellpadding=0>";
    echo "<tr><td width=\"60\" valign=\"top\">Naam</td><td><input type=\"text\" name=\"naam\">";
    echo "<tr><td width=\"60\" valign=\"top\">Bericht</td><td><textarea name=\"msg\" rows=\"6\" cols=\"50\"></textarea>";
    echo "<tr><td width=\"60\">&nbsp;</td><td><input type=\"submit\" name=\"submit\" value=\"reactie plaatsen\">";
    echo "</table></td></tr>";
    echo "</table>";
    echo "</form>";
    }
    else
    {
    echo "Nieuws bericht niet gevonden.";
    }

    echo "<p><a href=\"?p=$page&soort=$soort\" target=\"_top\">nieuws overzicht</a><p>";
    }
    }
    ?>[/code:1:bf054b47fd]

    [b:bf054b47fd]config.php[/b:bf054b47fd]
    [code:1:bf054b47fd]<?PHP
    $host = "localhost";
    $user = "*****";
    $pass = "*****";
    $dbdb = "*****-2";

    if (!@mysql_select_db($dbdb, @mysql_connect($host, $user, $pass)))
    {
    echo "Er is een fout opgetreden tijdens het maken van een verbinding naar de database.<p>";

    echo "Probeer het na enkele minuten opnieuw. Wil het dan nog nietlukken, neem dan contact met ons op.";
    }
    ?>[/code:1:bf054b47fd]
    Alvast bedankt. :D
  • Op zich zijn het alleen waarschuwingen en geen fouten, het kan wel resulteren in ongewenst gedrag.
    Om op te lossen: lees goed de code op de aangegeven regel.

    Om je op weg te helpen:
    id's van regel 36: deze blijken niet te bestaan, je zou ze moeten checken met isset() of empty en niet met alleen !)
    months van 88: je probeert iets aan deze string te plakken terwijl hij nog niet bestaat, je zou dus ergens $months="" moeten plaatsen
    row van 50: deze variabele blijkt niet te bestaan, dit is wel een (grote) fout; je zal iets van $row = mysql_get_row moeten doen (pseudo, weet de echte functienaam even niet maar die kan je vast wel vinden in de handleiding)
  • Je zit een beetje in het verkeerde sub-forum, in het Webprogrammeren & scripting sub-forum vind je waarschijnlijk meer mensen die bekend zijn met PHP
  • Ik vind het alleen wel raar dat op het moment dat ik het script include en op een andere pagina bekijk, doet hij het wel gewoon… :?
  • ik heb het zelfde bijvoorbeeld ook bij
    [code:1:196bf10b80]<?php
    switch($_GET['p']){
    default: include "home_tekst.php" ; break ;
    case "1": include "news.php" ; break;
    case "2": include "news_admin.php" ; break;
    case "3": include "news.php" ; break;
    case "4": include "news_admin.php" ; break;
    case "5": include "news.php" ; break;
    case "6": include "news_admin.php" ; break;
    case "7": include "news.php" ; break;
    case "8": include "news_admin.php" ; break;
    case "9": include "news.php" ; break;
    case "10": include "news_admin.php" ; break;
    case "11": include "messagebar_submit.php" ; break;
    }
    ?>[/code:1:196bf10b80] :? :cry:
  • wat bedoel je precies? met includen? en hetzelfde?

    je moet gewoon je errors uitzetten: http://nl.php.net/error_reporting

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.