Undefined index
ik ben al een tijdje bezig om het probleem op telossen maar krijg het niet voor elkaar .
ik heb een script daarmee haal ik alles uit de DB zoals links en informatie.
alleen zodra ik de pagina open zegt hij Undefined index.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE HTML>
<html>
<head>
<title>testing</title>
<link rel="stylesheet" href="../style.css" type="text/css">
</head>
<body>
<img src="../header.png" id="header" alt="plaatjes" />
<div id="menu">
<?php
mysql_connect("localhost","name","ww");
mysql_select_db("pages");
$query2="SELECT id,pages FROM pages ORDER by id ASC";
$sql2=mysql_query($query2);
while($rij = mysql_fetch_array($sql2)){
echo"<a href=\"/bedrijf/website/test/index/".$rij['pages']."\">".$rij['pages']."</a>\n";
}
?>
</div>
<?php
echo'<div id="hokje"></div>';
echo'<div id="content">';
$query="SELECT id,pages,info FROM pages WHERE pages='".mysql_real_escape_string($_GET['pages'])."'";
$sql=mysql_query($query);
while($row = mysql_fetch_array($sql)){
echo''.nl2br($row['info']).'';
}
echo'</div>';
?>
</body>
</html>
<html>
<head>
<title>testing</title>
<link rel="stylesheet" href="../style.css" type="text/css">
</head>
<body>
<img src="../header.png" id="header" alt="plaatjes" />
<div id="menu">
<?php
mysql_connect("localhost","name","ww");
mysql_select_db("pages");
$query2="SELECT id,pages FROM pages ORDER by id ASC";
$sql2=mysql_query($query2);
while($rij = mysql_fetch_array($sql2)){
echo"<a href=\"/bedrijf/website/test/index/".$rij['pages']."\">".$rij['pages']."</a>\n";
}
?>
</div>
<?php
echo'<div id="hokje"></div>';
echo'<div id="content">';
$query="SELECT id,pages,info FROM pages WHERE pages='".mysql_real_escape_string($_GET['pages'])."'";
$sql=mysql_query($query);
while($row = mysql_fetch_array($sql)){
echo''.nl2br($row['info']).'';
}
echo'</div>';
?>
</body>
</html>
hoe kan ik dit oplossen ik heb het al met een if(isset) geprobeert maar dat werkt ook niet.
Grtz,
Nick
- ga fouten afvangen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(!mysql_connect("localhost","name","ww"))
{
echo 'database connectie mislukt.';
exit;
}
if(!mysql_select_db("pages"))
{
echo 'database bestaat niet.';
exit;
}
?>
if(!mysql_connect("localhost","name","ww"))
{
echo 'database connectie mislukt.';
exit;
}
if(!mysql_select_db("pages"))
{
echo 'database bestaat niet.';
exit;
}
?>
- plaats de php code bovenin en begin pas daarna met de output
- de mysql_* functies zijn verouderd. ga liever direct van start met mysqli_* functies.
en mysql is oud dat weet ik ook maar het is alleen maar even testen het werkt wel.
alleen als je naar die pagina gaat moet hij de url rewrite dan is het geen probleem.
de $_GET moet automatisch in de url gezet worden zodra je de pagina opent.
Gewijzigd op 09/10/2013 15:08:37 door nick van der heijden
dat zeg ik net dat heb ik al gedaan maar dan is die error inderdaad weg alleen hij haalt de informatie niet uit de DB omdat de naam niet in de url staat dat is het probleem dus hij moet de url rewrite zo dra je zeg maar op de website komt
Je zou dus moeten kijken of $_GET['pages'] bestaat. Dus bijvoorbeeld:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$pages = isset($_GET['pages']) ? $_GET['pages'] : 'default';
// In de query dan $pages gebruiken ipv $_GET['pages']
?>
$pages = isset($_GET['pages']) ? $_GET['pages'] : 'default';
// In de query dan $pages gebruiken ipv $_GET['pages']
?>
En waarom dat slappe excuus van 'Ja mysql is oud, alleen om te testen'.. Doe het in 1 keer gewoon goed en gebruik dus gelijk de mysqli_ functies. Je hebt er nu alleen maar meer werk van...
Nick van der heijden op 09/10/2013 15:07:05:
alleen als je naar die pagina gaat moet hij de url rewrite dan is het geen probleem.
wat bedoel je hiermee?
http://localhost/bedrijf/blabla
en hij moet dit rewrite zodra je op de website komt dus in dit
http://localhost/bedrijf/blabla/Home
dat is mijn vraag hoe krijg ik dit voor elkaar als ik op een linkje klik dan doet hij het perfect.
maar als ik zonder op een linkje te hebben geklikt krijg ik die error dat is logisch want hij heeft geen value in de url van de $_GET gekregen daarom moet hij de url rewrtie zodra je op de website komt.
Toevoeging op 09/10/2013 15:20:38:
Hertog jan ,
dat heb ik ook al gedaan alleen die error blijft staan.
kan ik niet doormiddel van HTACCESS me url rewrite? zodat dat wel gebeurt?
Dan doe je wat verkeerd. Laat je code zien wat je nu hebt dan? Hier heb je niet persee htacces voor nodig maar gewoon een simpele isset... In jou geval zou je code dan $pages = isset($_GET['pages']) ? $_GET['pages'] : 'Home'; moeten worden...
Lees dan ook wat er gezegt word. Waarom controlleer je eerst of $_GET is gezet om er vervolgens niks mee te doen? Gebruik dan ook in je query de variable $pages.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// $pages krijgt de waarde van $_GET['pages'], ofwel standaard 'Home', indien de url geen pages=... bevat
$pages = isset($_GET['pages']) ? $_GET['pages'] : 'Home';
// uiteraard is het nu de bedoeling om $pages te gebruiken. $_GET['pages'] raken we niet meer aan!!
$query="SELECT id,pages,info FROM pages WHERE pages='" . mysql_real_escape_string($pages) . "'";
...
?>
// $pages krijgt de waarde van $_GET['pages'], ofwel standaard 'Home', indien de url geen pages=... bevat
$pages = isset($_GET['pages']) ? $_GET['pages'] : 'Home';
// uiteraard is het nu de bedoeling om $pages te gebruiken. $_GET['pages'] raken we niet meer aan!!
$query="SELECT id,pages,info FROM pages WHERE pages='" . mysql_real_escape_string($pages) . "'";
...
?>
dankjullie wel het werkt met de isset :)