Undefined variable
Ik ben met een systeem bezig zoiets als joomla, maar lang niet zo uitgebreid. Het probleem zit zo: ik heb een config bestand en een index, maar als ik vanaf de index een veriable opvraag dn geef die error en ik heb werkelijk geen idee hoe ik dat weg krijg.
groet bas
ps de var ziet er zo uit:
Gewijzigd op 22/08/2010 22:14:31 door Bas Php
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$owes['basedate']['tabel'] = 'dos_tekst'; //tabel
$owes['basedate']['page_id'] = 'page_id'; //page_id
$owes['basedate']['id'] = 'id'; //id
$owes['basedate']['titel'] = 'titel'; //titel
$owes['basedate']['zien'] = 'zien'; //zien
$owes['basedate']['knopzien'] = 'knopzien'; //knopzien
$owes['basedate']['tekst'] = 'tekst'; //tekst
$owes['basedate']['recht'] = 'recht'; //recht
?>
$owes['basedate']['tabel'] = 'dos_tekst'; //tabel
$owes['basedate']['page_id'] = 'page_id'; //page_id
$owes['basedate']['id'] = 'id'; //id
$owes['basedate']['titel'] = 'titel'; //titel
$owes['basedate']['zien'] = 'zien'; //zien
$owes['basedate']['knopzien'] = 'knopzien'; //knopzien
$owes['basedate']['tekst'] = 'tekst'; //tekst
$owes['basedate']['recht'] = 'recht'; //recht
?>
index.php
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if(isset($_GET['id']) && $_GET['id'] == 3){
$txt .= '> Editor';
$sql = "SELECT * FROM ".$owes['basedate']['tabel']." WHERE ".$owes['basedate']['page_id']." = '".mysql_real_escape_string($_GET['p'])."'";
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
$txt .= '> '.$row[$owes['basedate']['titel']];
echo $txt;
}
?>
if(isset($_GET['id']) && $_GET['id'] == 3){
$txt .= '> Editor';
$sql = "SELECT * FROM ".$owes['basedate']['tabel']." WHERE ".$owes['basedate']['page_id']." = '".mysql_real_escape_string($_GET['p'])."'";
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
$txt .= '> '.$row[$owes['basedate']['titel']];
echo $txt;
}
?>
Toevoeging op 22/08/2010 22:19:25:
daar komt uit:
dos_tekst
Verwerk in je sql geen variabelen welke verwijzen naar tabel dan wel tabel velden!
Schiijf je queries dus uit op de normale manier
select page_id
, id
, titel
, zien
from dos_tekst
maar het antwoord is dat je totaal vergeet de file config te includen.
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
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
<?
include("inc/config.php");
function titel(){
$txt = '';
if(isset($_GET['id']) && $_GET['id'] == 3){
$txt .= '> Editor';
$sql = "SELECT * FROM ".$owes['basedate']['tabel']." WHERE ".$owes['basedate']['page_id']." = '".mysql_real_escape_string($_GET['p'])."'";
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
$txt .= '> '.$row[$owes['basedate']['titel']];
echo $txt;
}
elseif(!isset($_GET['id']) && isset($_GET['cd'])){
$txt .= '> Preview';
$sql = "SELECT * FROM ".$owes['basedate']['tabel']." WHERE ".$owes['basedate']['page_id']." = '".mysql_real_escape_string($_GET['cd'])."'";
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
$txt .= '> '.$row[$owes['basedate']['titel']];
echo $txt;
}
elseif(!isset($_GET['cd'])){
echo $txt;
}
}
?>
include("inc/config.php");
function titel(){
$txt = '';
if(isset($_GET['id']) && $_GET['id'] == 3){
$txt .= '> Editor';
$sql = "SELECT * FROM ".$owes['basedate']['tabel']." WHERE ".$owes['basedate']['page_id']." = '".mysql_real_escape_string($_GET['p'])."'";
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
$txt .= '> '.$row[$owes['basedate']['titel']];
echo $txt;
}
elseif(!isset($_GET['id']) && isset($_GET['cd'])){
$txt .= '> Preview';
$sql = "SELECT * FROM ".$owes['basedate']['tabel']." WHERE ".$owes['basedate']['page_id']." = '".mysql_real_escape_string($_GET['cd'])."'";
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
$txt .= '> '.$row[$owes['basedate']['titel']];
echo $txt;
}
elseif(!isset($_GET['cd'])){
echo $txt;
}
}
?>
Toevoeging op 22/08/2010 22:22:56:
oja trouwens hoezo zou ik niet een var kunnen neer zetten in een sql??
de array $owes is niet bekend binnen de functie!
Dus zal je de array bij het aanroepen van de functie moeten doorgeven
Gewijzigd op 22/08/2010 22:26:11 door Noppes Homeland
maar anders moet ik bij elke verandering 100.000 sql queries aanpassen
*insert face palm*
Je hebt er meer plezier aan als je doet wat er geadviseerd wordt.
ja klopt is beetje overdreven, maar hoe doen ze dat dan bij systemen als joomla ofzo
Wel als je je dat afvraags, download die bagger en bekijk het eens
Wat is er tegen om je tabelnaam in een variabele te zetten ?
Er zullen best wel applicaties zijn die dat doen en dan is dat niet per definitie "totaal verkeerde aanpak".
Noppes Homeland op 22/08/2010 22:24:01:
de array $owes is niet bekend binnen de functie!
Dit is dus je probleem in bovenstaande code.
Maar goed, ik denk dat je jouw applicatie wel kunt gaan vergelijken met Joomla.
Bagger. (beveiliging zal wel niet op orde zijn)
SanThe Nvt op 23/08/2010 01:02:34:
Dit is dus je probleem in bovenstaande code.
Noppes Homeland op 22/08/2010 22:24:01:
de array $owes is niet bekend binnen de functie!
Dit is dus je probleem in bovenstaande code.
Dus: Bij de functie aanroep meegeven als parameter en iest zinvols returnen.
John d meegeven als parameter?
Oetzie en mijn achternaam op 23/08/2010 12:36:49:
Zoals Peter als zei: global $owes boven in je functie zetten.
John d meegeven als parameter?
John d meegeven als parameter?
Kan beiden.
Santhe klopt, maar waarom een parameter doorgeven? In dit geval is een global toch beter?
Oetzie en mijn achternaam op 23/08/2010 14:11:31:
Santhe klopt, maar waarom een parameter doorgeven? In dit geval is een global toch beter?
Het gaat hier steeds om hetzelfde array(), dus dat even als global te definiëren lijkt mij het simpelst. Als parameter meegeven is zinvol als er verschillende array()'s worden gebruikt.
Overdatum puntNL op 22/08/2010 22:27:47:
*insert face palm*
Twee nutteloze reacties in één topic? Knap ;-)
Onderbouw voortaan wáárom iets een face palm is, dan help je iemand nog..