Php, met tpl bestanden en mysql :)
Ik kom er maar niet uit, maar dat zullen jullie vaker horen haha :P
Ik wil graag een paar aanpassingen doen aan een bestaand script.
Nu werkt dat php script met tpl bestanden.
In een tpl bestand wil ik het volgende aanpassen:
Code (php)
1
<td style="width: 100%"><select name="categorie"><option value="Films">Films<string jan></option><option value="Boeken">Boeken</option><option value="Websites">Websites</option></select></td>
Ik wil dat hij daar niet "Films", "Boeken" en "Websites" laat zien maar dat hij die gegevens uit de database haalt.
Hoe een database uitgelezen moet worden weet ik, maar die code werkt niet in een tpl bestand.
Is er een manier mogelijk om dit wel zo uit te lezen zodat ik de categorien uitlees uit de database?
Gewijzigd op 17/11/2011 23:08:20 door Kees van Norde
De vraag is op welke manier het template-systeem werkt, dus kom eens met relevante code van de achterliggende PHP-script aan.
Gewijzigd op 17/11/2011 17:11:35 door - Ariën -
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
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
function tip_toevoegen () {
$this->r['tpl']->define (array ('index.tpl', 'panel/tip_toevoegen.tpl'));
if($this->r['client']->ingelogd == 1) {
if(isset ($_POST['submit']) || $_SERVER['REQUEST_METHOD'] == 'post') {
$error = array ();
$sFlood = $this->r['sql']->query ("SELECT * FROM flood WHERE pagina = 'Tip toevoegen' AND ip = '".$this->r['functions']->haal_ip ()."'");
if($this->r['sql']->rows ($sFlood))
$error ['Ftitel'] = 'Je hebt zojuist al een tip toegevoegd.';
if(!isset ($_POST['naam']) || strlen ($_POST['naam']) < 3 || strlen ($_POST['naam']) > 25)
$error ['Fnaam'] = 'Je hebt geen geldige naam opgegeven.';
if(!isset ($_POST['tip']) || strlen ($_POST['tip']) < 3)
$error ['Ftip'] = 'Je hebt geen geldige tip opgegeven.';
if(!isset ($_POST['categorie']) || ($_POST['categorie'] != 'Films' && $_POST['categorie'] != 'Boeken' && $_POST['categorie'] != 'Websites'))
$error ['Fcategorie'] = 'Je hebt geen geldig categorie opgegeven.';
if(count ($error) > 0) {
## Foute velden noteren
foreach ($error AS $key => $value)
{
$this->r['tpl']->assign ("ErrorArea_R", "sFout", $value);
$this->r['tpl']->Parse ("ErrorArea", "ErrorArea_R");
}
$this->r['tpl']->Parse ("Toevoegen", "ErrorArea");
foreach ($_POST AS $key => $content) $this->r['tpl']->assign ("Toevoegen", "V".$key, $this->r['functions']->strip ($content));
$this->r['tpl']->Parse ("index", "Toevoegen", "content");
}
else {
$this->r['sql']->query ("INSERT INTO flood (pagina, ip, datum) VALUES ('Tip toevoegen', '".$this->r['functions']->haal_ip ()."', '".time ()."')");
$this->r['sql']->query ("INSERT INTO tips (profile_id, categorie, naam, review, datum) VALUES ('".mysql_real_escape_string ($this->r['user']['pid'])."', '".mysql_real_escape_string ($_POST['categorie'])."', '".mysql_real_escape_string ($_POST['naam'])."', '".mysql_real_escape_string ($_POST['tip'])."', '".time ()."')");
$this->r['functions']->redirect ('Succesvol', 'Je hebt deze tip succesvol toegevoegd.', 'panel/tips', 3);
}
}
else $this->r['tpl']->Parse ("index", "Toevoegen", "content");
}
else $this->r['functions']->redirect ('Fout', 'Je kunt geen tip toevoegen als je niet bent ingelogd.', 'members/login', 3);
}
$this->r['tpl']->define (array ('index.tpl', 'panel/tip_toevoegen.tpl'));
if($this->r['client']->ingelogd == 1) {
if(isset ($_POST['submit']) || $_SERVER['REQUEST_METHOD'] == 'post') {
$error = array ();
$sFlood = $this->r['sql']->query ("SELECT * FROM flood WHERE pagina = 'Tip toevoegen' AND ip = '".$this->r['functions']->haal_ip ()."'");
if($this->r['sql']->rows ($sFlood))
$error ['Ftitel'] = 'Je hebt zojuist al een tip toegevoegd.';
if(!isset ($_POST['naam']) || strlen ($_POST['naam']) < 3 || strlen ($_POST['naam']) > 25)
$error ['Fnaam'] = 'Je hebt geen geldige naam opgegeven.';
if(!isset ($_POST['tip']) || strlen ($_POST['tip']) < 3)
$error ['Ftip'] = 'Je hebt geen geldige tip opgegeven.';
if(!isset ($_POST['categorie']) || ($_POST['categorie'] != 'Films' && $_POST['categorie'] != 'Boeken' && $_POST['categorie'] != 'Websites'))
$error ['Fcategorie'] = 'Je hebt geen geldig categorie opgegeven.';
if(count ($error) > 0) {
## Foute velden noteren
foreach ($error AS $key => $value)
{
$this->r['tpl']->assign ("ErrorArea_R", "sFout", $value);
$this->r['tpl']->Parse ("ErrorArea", "ErrorArea_R");
}
$this->r['tpl']->Parse ("Toevoegen", "ErrorArea");
foreach ($_POST AS $key => $content) $this->r['tpl']->assign ("Toevoegen", "V".$key, $this->r['functions']->strip ($content));
$this->r['tpl']->Parse ("index", "Toevoegen", "content");
}
else {
$this->r['sql']->query ("INSERT INTO flood (pagina, ip, datum) VALUES ('Tip toevoegen', '".$this->r['functions']->haal_ip ()."', '".time ()."')");
$this->r['sql']->query ("INSERT INTO tips (profile_id, categorie, naam, review, datum) VALUES ('".mysql_real_escape_string ($this->r['user']['pid'])."', '".mysql_real_escape_string ($_POST['categorie'])."', '".mysql_real_escape_string ($_POST['naam'])."', '".mysql_real_escape_string ($_POST['tip'])."', '".time ()."')");
$this->r['functions']->redirect ('Succesvol', 'Je hebt deze tip succesvol toegevoegd.', 'panel/tips', 3);
}
}
else $this->r['tpl']->Parse ("index", "Toevoegen", "content");
}
else $this->r['functions']->redirect ('Fout', 'Je kunt geen tip toevoegen als je niet bent ingelogd.', 'members/login', 3);
}
Toevoeging op 17/11/2011 17:16:06:
En de .tpl ziet er zo uit:
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
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
<block Toevoegen>
<form method="post" action="<global adres>/panel/tip_toevoegen">
<input type="hidden" name="submit" value="1">
<div class="countBox">
<div class="top">
<div class="bottom">
<h2><a href="<global adres>/panel/" class="apanel">Panel</a> > Tip toevoegen</h2>
<table style="width: 100%">
<block ErrorArea>
<tr>
<td style="width: 100%" colspan="4"><span style="color: red">Er ging iets fout:</span></td>
</tr>
<block ErrorArea_R><tr>
<td style="width: 100%" colspan="4"><span style="color: red">- <string sFout></span></td>
</tr></block ErrorArea_R>
</block ErrorArea>
<tr>
<td style="width: 100%" colspan="2"> </td>
</tr>
<tr>
<td style="width: 100%"><strong>Categorie</strong> <string Fnaam></td>
</tr>
<tr>
<td style="width: 100%"><select name="categorie"><option value="Films">Films<string jan></option><option value="Boeken">Boeken</option><option value="Websites">Websites</option></select></td>
</tr>
<tr>
<td style="width: 100%"><strong>Naam</strong> <string Fnaam></td>
</tr>
<tr>
<td style="width: 100%"><input type="text" name="naam" size="30" value="<string Vnaam>" /></td>
</tr>
<tr>
<td style="width: 100%"><strong>Tip</strong> <string Ftip></td>
</tr>
<tr>
<td style="width: 100%"><textarea name="tip" cols="70" rows="7"><string Vtip></textarea></td>
</tr>
<tr>
<td style="width: 100%" colspan="2"><input type="submit" name="submit" value="Toevoegen!"> <input type="reset" value="Herstel"></td>
</tr>
</table>
</div>
</div>
</div>
</form>
</block Toevoegen>
<form method="post" action="<global adres>/panel/tip_toevoegen">
<input type="hidden" name="submit" value="1">
<div class="countBox">
<div class="top">
<div class="bottom">
<h2><a href="<global adres>/panel/" class="apanel">Panel</a> > Tip toevoegen</h2>
<table style="width: 100%">
<block ErrorArea>
<tr>
<td style="width: 100%" colspan="4"><span style="color: red">Er ging iets fout:</span></td>
</tr>
<block ErrorArea_R><tr>
<td style="width: 100%" colspan="4"><span style="color: red">- <string sFout></span></td>
</tr></block ErrorArea_R>
</block ErrorArea>
<tr>
<td style="width: 100%" colspan="2"> </td>
</tr>
<tr>
<td style="width: 100%"><strong>Categorie</strong> <string Fnaam></td>
</tr>
<tr>
<td style="width: 100%"><select name="categorie"><option value="Films">Films<string jan></option><option value="Boeken">Boeken</option><option value="Websites">Websites</option></select></td>
</tr>
<tr>
<td style="width: 100%"><strong>Naam</strong> <string Fnaam></td>
</tr>
<tr>
<td style="width: 100%"><input type="text" name="naam" size="30" value="<string Vnaam>" /></td>
</tr>
<tr>
<td style="width: 100%"><strong>Tip</strong> <string Ftip></td>
</tr>
<tr>
<td style="width: 100%"><textarea name="tip" cols="70" rows="7"><string Vtip></textarea></td>
</tr>
<tr>
<td style="width: 100%" colspan="2"><input type="submit" name="submit" value="Toevoegen!"> <input type="reset" value="Herstel"></td>
</tr>
</table>
</div>
</div>
</div>
</form>
</block Toevoegen>
Toevoeging op 17/11/2011 17:17:27:
P.S. Ik moet nu even weg, maar ben vanavond weer terug.
Dus als je even geen reactie krijgt is dat de reden :D
Gewijzigd op 17/11/2011 23:09:06 door Kees van Norde
- Aar - op 17/11/2011 17:19:42:
Gebruik a.u.b code-tags om je code heen.
Kan je ook vertellen welke Template-parser dit is?
Kan je ook vertellen welke Template-parser dit is?
Sorry, ik zal dat voortaan doen.
Hoe kan ik zien welke template-parser dat is?
Sorry als dit een domme vraag is, ik ben met dat tpl gebeuren niet zo bekend :P
Voor Smarty als Templateparser weet ik het wel, maar dit is duidelijk iets anders dan dat.
Iemand anders nog suggesties :D
Kan je zoals ik al eerder vroeg je PHP-code even aanpassen door het tussen code-tags te zetten?
Iemand nog een idee?
Is dit een onderdeel van een groot software-pakket, zoals phpBB of vBulletin ofzo?
Ik heb dit script een tijd geleden gekocht met alle rechten.
Inmiddels ben ik ook de eigenaar van www.cmyid.nl.
kan je het niet vragen aan de maker? Want deze code is best wel specifiek.
Gewijzigd op 17/11/2011 23:21:51 door - Ariën -
Ik weet niet of je er wat aan hebt, maar ik kan het script wel even op een test domein installeren en de ftp gegevens ervan geven.
Liever wat relevante code... Een ftp inlog zal toch weer onbruikbaar raken.
Misschien dat andere mensen deze code begrijpen, ik wacht het nog wel even af :)
En gezien je het overgekocht hebt? Heb je niet contractueel de support erbij genomen? Voor een specifieke template-parser zou dat wel handig zijn.
Het is nog even in afwachting van topic:
http://www.phphulp.nl/php/forum/topic/een-laten-weergeven-in-php/81146/
Toevoeging op 18/11/2011 19:01:18:
Ok het probleem is inmiddels opgelost.
Ik heb het op deze manier opgelost (niet op de namen letten, dit is puur om te testen):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$fles = "";
while($row = mysql_fetch_array( $piet )) {
// Print out the contents of each row into a table
$klaas = "<option value='";
$piet2 = $row['naam'];
$klaas2 = "'>$piet2</option>";
$jan = $klaas.$piet2.$klaas2;
echo $jan;
$fles = $fles . $jan;
}
echo $fles;
$this->r['tpl']->assign ("Bewerken", "Vjan", $fles);
while($row = mysql_fetch_array( $piet )) {
// Print out the contents of each row into a table
$klaas = "<option value='";
$piet2 = $row['naam'];
$klaas2 = "'>$piet2</option>";
$jan = $klaas.$piet2.$klaas2;
echo $jan;
$fles = $fles . $jan;
}
echo $fles;
$this->r['tpl']->assign ("Bewerken", "Vjan", $fles);
Vervolgens in de .tpl de volgende code geplaatst:
Opgelost dus :)