Foutmelding in mijn script Undefined Variable
Ik krijg in mijn script een foutmelding :
Undefined variable: naam in /u3/....... line 13
En dit doet hij dus met alle variabelen.
Ik zal een stuk van het script bijvoegen, iemand een idee waardoor dit komt?
[script]
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
header('Content-Type: text/html; charset=iso-8859-1');
if (!session_id()) { session_start(); };
$isal=$_SESSION['ingelogd'];
$oldsql=$_SESSION['sqletje'];
$admin=$_SESSION['admin'];
$onl=$_SESSION['online'];
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (!$isal=="ja") { echo "<h3>Jij mag niet kom hier via die weg nie neah neah neah .... <br> Lekker Puh....<img src='images/lekkerpuh.jpg'>" ; die(); }
if ($naam !="") { $sql.=" AND naam like '%".$naam."%'";}
if ($geb_datum !="") { $sql.=" AND geb_datum like '%".$geb_datum."%'";}
if ($woonplaats !="") { $sql.=" AND woonplaats like '%".$woonplaats."%'";}
if ($profieltekst !="") { $sql.=" AND profieltekst like '%".$profieltekst."%'";}
if ($lengte !="") { $sql.=" AND jaar lengte '%".$lengte."%'";}
if ($gewicht !="") { $sql.=" AND gewicht like '%".$gewicht."%'";}
if ($land !="") { $sql.=" AND land like '%".$land."%'";}
if ($kleur_haar !="") { $sql.=" AND kleur_haar like '%".$kleur_haar."%'";}
if ($kleur_ogen !="") { $sql.=" AND kleur_ogen like '%".$kleur_ogen."%'";}
include('ps_pagination.php');
$conn = mysql_connect('localhost','***','***');
if(!$conn) die("Failed to connect to database!");
$status = mysql_select_db('***', $conn);
if(!$status) die("Failed to select database!");
$sql2="select * from members";
$sql2.=" where id > 0 ";
$sql2.=" order by id ";
$pager = new PS_Pagination($conn, $sql2, 4, 15);
//$pager->setDebug(true);
$rs = $pager->paginate();
if(!$rs) { die(mysql_error());}
// Dit is de zelfde functie als do { ... } while while($row = mysql_fetch_assoc($rs))
include("tboven");
echo "<br><center><span style=\"border: 1px solid black;\">".$pager->renderFullNav()."</span></center>";
echo "<center>";
echo '<table class="postmetadata" style="text-align:left"><tbody><tr class="lijst0">';
$max_hor = 2;
$hor=0;
while($row = mysql_fetch_assoc($rs)) { // Per Item een Regel in de Tabel toevoegen.
$profieltekst=substr($row['profieltekst'],0,130)."......";
$datum=date("d-m-Y \~ H:i:s",$row['toegevoegd']);
$rec_nr=sprintf("[%'05s]\n", $row['id']);
$prefix="memberpics/";
$openkiek="<a href=\"javascript:ajax1.run('prof_memberkiek.php?id={$row[id]} ','content');\">";
if ($admin=="1") {
$editknopje="<a href=\"javascript:ajax3.run('prof_wijzigwijzig.php?id={$row[id]}','content');\"><img src=\"images/b_edit.png\" height=12 border=\"0\">";
}
if ($onl == "0") $onlicoon='<img src="icons/offline.png">Offline';
if ($onl == "1") $onlicoon='<img src="icons/online.png">Online';
$leeftijd=bepaalleeftijd($row['geb_datum']);
// Nieuwe Table voor foto / detiails
echo '<td valign="right" style="border: 1px dotted SnowWhite;"><table width=560 class="postmetadata" cellSpacing=9 cellPadding=2 border=0 style="text-align:left;"><tbody><tr class="lijst0">';
echo '<td width="200" valign="top" style="border-right:2px dotted SnowWhite;">';
echo '<A class=a_image href="'.$prefix.$row['foto1'].'" target=_blank rel="lightbox['.$row['id'].']">';
$cv=$prefix.''.$row['foto1'];
$ca=$prefix.''.$row['foto2'];
echo '<img border=0 src="'.$cv.'" height="220" width="180 ></A>';
echo '<A class=a_image href="'.$prefix.$row['foto2'].'" target=_blank rel="lightbox['.$row['id'].']"></A>';
echo '</td><td valign="top">';
// Film Details
?>
header('Content-Type: text/html; charset=iso-8859-1');
if (!session_id()) { session_start(); };
$isal=$_SESSION['ingelogd'];
$oldsql=$_SESSION['sqletje'];
$admin=$_SESSION['admin'];
$onl=$_SESSION['online'];
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (!$isal=="ja") { echo "<h3>Jij mag niet kom hier via die weg nie neah neah neah .... <br> Lekker Puh....<img src='images/lekkerpuh.jpg'>" ; die(); }
if ($naam !="") { $sql.=" AND naam like '%".$naam."%'";}
if ($geb_datum !="") { $sql.=" AND geb_datum like '%".$geb_datum."%'";}
if ($woonplaats !="") { $sql.=" AND woonplaats like '%".$woonplaats."%'";}
if ($profieltekst !="") { $sql.=" AND profieltekst like '%".$profieltekst."%'";}
if ($lengte !="") { $sql.=" AND jaar lengte '%".$lengte."%'";}
if ($gewicht !="") { $sql.=" AND gewicht like '%".$gewicht."%'";}
if ($land !="") { $sql.=" AND land like '%".$land."%'";}
if ($kleur_haar !="") { $sql.=" AND kleur_haar like '%".$kleur_haar."%'";}
if ($kleur_ogen !="") { $sql.=" AND kleur_ogen like '%".$kleur_ogen."%'";}
include('ps_pagination.php');
$conn = mysql_connect('localhost','***','***');
if(!$conn) die("Failed to connect to database!");
$status = mysql_select_db('***', $conn);
if(!$status) die("Failed to select database!");
$sql2="select * from members";
$sql2.=" where id > 0 ";
$sql2.=" order by id ";
$pager = new PS_Pagination($conn, $sql2, 4, 15);
//$pager->setDebug(true);
$rs = $pager->paginate();
if(!$rs) { die(mysql_error());}
// Dit is de zelfde functie als do { ... } while while($row = mysql_fetch_assoc($rs))
include("tboven");
echo "<br><center><span style=\"border: 1px solid black;\">".$pager->renderFullNav()."</span></center>";
echo "<center>";
echo '<table class="postmetadata" style="text-align:left"><tbody><tr class="lijst0">';
$max_hor = 2;
$hor=0;
while($row = mysql_fetch_assoc($rs)) { // Per Item een Regel in de Tabel toevoegen.
$profieltekst=substr($row['profieltekst'],0,130)."......";
$datum=date("d-m-Y \~ H:i:s",$row['toegevoegd']);
$rec_nr=sprintf("[%'05s]\n", $row['id']);
$prefix="memberpics/";
$openkiek="<a href=\"javascript:ajax1.run('prof_memberkiek.php?id={$row[id]} ','content');\">";
if ($admin=="1") {
$editknopje="<a href=\"javascript:ajax3.run('prof_wijzigwijzig.php?id={$row[id]}','content');\"><img src=\"images/b_edit.png\" height=12 border=\"0\">";
}
if ($onl == "0") $onlicoon='<img src="icons/offline.png">Offline';
if ($onl == "1") $onlicoon='<img src="icons/online.png">Online';
$leeftijd=bepaalleeftijd($row['geb_datum']);
// Nieuwe Table voor foto / detiails
echo '<td valign="right" style="border: 1px dotted SnowWhite;"><table width=560 class="postmetadata" cellSpacing=9 cellPadding=2 border=0 style="text-align:left;"><tbody><tr class="lijst0">';
echo '<td width="200" valign="top" style="border-right:2px dotted SnowWhite;">';
echo '<A class=a_image href="'.$prefix.$row['foto1'].'" target=_blank rel="lightbox['.$row['id'].']">';
$cv=$prefix.''.$row['foto1'];
$ca=$prefix.''.$row['foto2'];
echo '<img border=0 src="'.$cv.'" height="220" width="180 ></A>';
echo '<A class=a_image href="'.$prefix.$row['foto2'].'" target=_blank rel="lightbox['.$row['id'].']"></A>';
echo '</td><td valign="top">';
// Film Details
?>
Als ik daarna op de naam klik (dan moet eigenlijk een nieuw scherm openen met de gegevens van die persoon, alleen het scherm opent zich, alleen de gegevens neemt hij niet mee. Ik denk dat het aan:
Code (php)
1
2
3
2
3
<?php
$openkiek="<a href=\"javascript:ajax1.run('prof_memberkiek.php?id={$row[id]} ','content');\">";
?>
$openkiek="<a href=\"javascript:ajax1.run('prof_memberkiek.php?id={$row[id]} ','content');\">";
?>
ligt.
Heeft iemand enig idee?
De regel van de online icoon werkt ook niet.
Gewijzigd op 24/03/2014 11:14:09 door Marco Hopster
je gebruikt op regel 13 de variabele $naam, en die bestaat niet.
Is een warning, geen error, maar je moet je wel afvragen waarom jij denkt dat $naam daar wél zou bestaan en hoe die dan aan zijn waarde was gekomen.
Nu zal php na de warning $naam beschouwen als een lege string/null/0/false
Maar hoe kan het dan, dat onlicoon regel 51 en 52 niet werkt?
En als ik dan op
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
echo '<table class="postmetadata2" width="100%" cellSpacing=3 cellPadding=0 style="text-align:left"><tbody><tr class="lijst0">';
echo '<tr class="lijst1"><td><span class="numrood" >'.$rec_nr. '</span>'.$editknopje.'</td><td valign="top"><span float:left>'.$openkiek.''.$row[naam].'</a></td></tr>';
echo '<tr class="lijst2"><td>Profieltekst:</td><td>'.$profieltekst.'</td></tr>';
echo '<tr class="lijst1"><td>Woonplaats:</td><td>'.$row[woonplaats].' </td></tr>';
echo '<tr class="lijst2"><td>Leeftijd:</td><td>'.$leeftijd.' jaar</td></tr>';
echo '<tr class="lijst2"><td>Land:</td><td>'.$row[land].' </td></tr>';
echo '<tr class="lijst1"><td>On/Off-Status:</td><td>'.$onlicoon.' </td></tr>';
echo '</td></tr></table>';
echo "</td></tr></table></td>";
$hor++;
if ($hor==$max_hor) { $hor=0; echo "</tr>\n".'<tr class="lijst0">'; }
?>
echo '<table class="postmetadata2" width="100%" cellSpacing=3 cellPadding=0 style="text-align:left"><tbody><tr class="lijst0">';
echo '<tr class="lijst1"><td><span class="numrood" >'.$rec_nr. '</span>'.$editknopje.'</td><td valign="top"><span float:left>'.$openkiek.''.$row[naam].'</a></td></tr>';
echo '<tr class="lijst2"><td>Profieltekst:</td><td>'.$profieltekst.'</td></tr>';
echo '<tr class="lijst1"><td>Woonplaats:</td><td>'.$row[woonplaats].' </td></tr>';
echo '<tr class="lijst2"><td>Leeftijd:</td><td>'.$leeftijd.' jaar</td></tr>';
echo '<tr class="lijst2"><td>Land:</td><td>'.$row[land].' </td></tr>';
echo '<tr class="lijst1"><td>On/Off-Status:</td><td>'.$onlicoon.' </td></tr>';
echo '</td></tr></table>';
echo "</td></tr></table></td>";
$hor++;
if ($hor==$max_hor) { $hor=0; echo "</tr>\n".'<tr class="lijst0">'; }
?>
regel 2 klik.. (openkiek) dan krijg ik wel een nieuw scherm, alleen hij neemt de gegevens dus niet mee. Die is leeg.
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken. De script-tags ondersteunen we hier niet.
Alvast bedankt!
Alvast bedankt!
Gewijzigd op 24/03/2014 11:43:10 door - Ariën -
Ook hoef je niet voor elke regel een nieuwe echo te plaatsen.
Verder klopt dit ook niet: <span float:left>
Gewijzigd op 24/03/2014 11:46:21 door - Ariën -
Jij gaat toch ook niet dood als je een keer hoofdpijn hebt
Maar oke, het werkt nog steeds niet. Ik heb nergens staan zoiets als $Post ofzo, dus denk dat het daardoor komt, maar waar moet ik het neer zetten? Is er iemand die mij kan helpen?
Toevoeging op 27/03/2014 13:09:29:
wordt:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if ($naam = filter_input(INPUT_POST, 'naam') {
$sql.=" AND naam like '%".mysql_real_escape_string($naam, $conn)."%'";
}
?>
if ($naam = filter_input(INPUT_POST, 'naam') {
$sql.=" AND naam like '%".mysql_real_escape_string($naam, $conn)."%'";
}
?>
Waarbij het dan wel zaak is, om de connectie met de database, die je nu op regel 24 ev. maakt, verplaatst naar VOOR regel 13
Gewijzigd op 27/03/2014 13:11:29 door Ivo P
Waar komen die onbekende $vars dan vandaan?
Heb die foutmeldingen nu allemaal weg.
Maar nu heb ik dus een scherm voor mij, met een profiel,met alleen de belangrijkste gegevens. Zodra ik dus op de naam klik, dan moet er een scherm openen met gedetaileerde gegevens. Het daadwerkelijk profiel dus.
De regel die zorgt dat het opent is de volgende:
$openkiek moet dus geopend worden:
Code (php)
1
2
3
2
3
<?
$openkiek="<a href=\"javascript:ajax1.run('prof_memberkiek.php?id={$row['id']}','content');\">";
?>
$openkiek="<a href=\"javascript:ajax1.run('prof_memberkiek.php?id={$row['id']}','content');\">";
?>
Nu opent er wel een nieuw scherm http://...../prof_memberkiek.php/?id= alleen hij zet "$id" er niet achter.
Ik zit zelf te denken, en ik denk omdat $id niet gepost wordt. Heb nu 2 dagen zitten zoeken op google of ik iets kan vinden of ik een fout in de regel heb, of waar ik $POST moet zetten.
Weet iemand waar dat moet?
Dan is de eerste stap om te kijken wat er in de bron van de pagina staat waar je op de link klikt.
daar staat ergens dat stuk javascript en ?id=
Aangezien je geen foutmelding kreeg (je hebt immers je error reporting aan gezet omdat je aan het debuggen bent (toch?))
zou $row['id'] hebben moeten bestaan.
Maar het zou ook goed kunnen dat het er aan ligt, dat je nogal lui om gaat met je quotes en duseen fout hebt gekregen op de '' die om id staan....
Als ik in het adres balk bijvoorbeeld: ..../prof_memberkiek.php?id=1 in typ, dan krijg ik de gegevens wel.
Dus op een één of andere manier Post ie het id niet mee.
hij staat dus kennelijk niet in je link.
Dan moet je daar gaan zoeken.
Ofwel krijg je een foutmelding omdat $row['id'] niet bekend is,
ofwel is $row['id'] een lege string / false etc.
Dat is je beginpunt.
Zet op de regel voor $openkiek:
of zelfs:
Op die manier begin je te zoeken naar de plek waar je var vermist is geraakt
P.S. het heeft altijd gewerkt, maar sinds php5.0 draait, niet meer.
jij bent nu geupgrade naar de inmiddels zwaar antieke PHP 5.0??
Toevoeging op 27/03/2014 13:52:59:
Maar staat die 1 nu wel of niet in de source bij de regel met ajax1.run ..... ?
Zo nee: dan moet je in php zoeken naar de missende waarde (var_dump geeft hem wel weer)
Zo ja: dan moet je in ajax1.run eens gaan zoeken.
Neemt die rechtstreeks de url over, of zit daar nog een redirect stap in php tussen?
Toevoeging op 27/03/2014 14:03:44:
Mijn ajax1.run ziet er zo uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
this.run=function (page,element) {
self = this;
if (this.xmlhttp) {
if (self.xmlhttp.readyState >= 1 && self.xmlhttp.readyState <= 3) { self.xmlhttp.abort();}
this.now = new Date();
this.xmlhttp.open("GET", page + "?t=" + this.now.getTime(), true);
this.xmlhttp.onreadystatechange = function () {
if(self.xmlhttp.readyState == 4){
document.getElementById(element).innerHTML = self.xmlhttp.responseText;
}
}
this.xmlhttp.send(null);
}
}
self = this;
if (this.xmlhttp) {
if (self.xmlhttp.readyState >= 1 && self.xmlhttp.readyState <= 3) { self.xmlhttp.abort();}
this.now = new Date();
this.xmlhttp.open("GET", page + "?t=" + this.now.getTime(), true);
this.xmlhttp.onreadystatechange = function () {
if(self.xmlhttp.readyState == 4){
document.getElementById(element).innerHTML = self.xmlhttp.responseText;
}
}
this.xmlhttp.send(null);
}
}
In die dump wat ie aangeeft zegt hij dus wel dat hij een 1 heeft..
Toevoeging op 27/03/2014 14:15:13:
Ik heb even een member toegevoegd, en gekeken wat hij dan doet met de var_dump:
debug row-id: array(53) { ['id']=> string(1) "1" ['naam']=> string(5) "Marco"...... etc
debug row-id: array(53) { ['id']=> string(1) "2" ['naam']=> string(4) "Kees"...... etc
Is er dan niemand die mij hier mee kan helpen?