Hoe moet ik dit doen?
Ik maak een simpele site, met een forum. In dat forum staat de link: forum.php?actie=nieuwpost. Die doet het gewoon.. nouw wil ik weten hoe je dat in 1 pagina kan verwerken. Zoiets:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
switch (strtolower($_GET['pagina']))
{
case "forum.php?actie=nieuwpost":
include("./forum/forum.php?actie=nieuwpostphp");
break;
}
?>
switch (strtolower($_GET['pagina']))
{
case "forum.php?actie=nieuwpost":
include("./forum/forum.php?actie=nieuwpostphp");
break;
}
?>
Wat moet ik dan in de link zetten?? Wie kan mij helpen?????
Je geeft variables aan een url mee door ze erachter te zetten, de eerste na een vraagteken, vervolgens gescheiden door &-tekens.
In dit geval wordt het dus:
forum.php?actie=nieuwpost
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
switch (strtolower($_GET['actie']))
{
case "forum.php?actie=nieuwpost":
include("nieuwpost.php");
break;
}
?>
switch (strtolower($_GET['actie']))
{
case "forum.php?actie=nieuwpost":
include("nieuwpost.php");
break;
}
?>
Je kunt geen parameters doorgeven aan een script dat je include, aangezien de code niet wordt uitgevoerd en het resultaat wordt ingeladen, maar de het bestand wordt ingeladen, en daarnaa met de rest van de code uitgevoerd.
Jelmer:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
switch (strtolower($_GET['actie']))
{
case "forum.php?actie=nieuwpost":
include("nieuwpost.php");
break;
}
?>
switch (strtolower($_GET['actie']))
{
case "forum.php?actie=nieuwpost":
include("nieuwpost.php");
break;
}
?>
Moet dat niet:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
switch (strtolower($_GET['actie']))
{
case "nieuwpost":
include("nieuwpost.php");
break;
}
?>
switch (strtolower($_GET['actie']))
{
case "nieuwpost":
include("nieuwpost.php");
break;
}
?>
zijn?
(Ik moet echt nodig mijn delete-toets weer eens terugvinden)
Jelmer:
Eum, ja.
(Ik moet echt nodig mijn delete-toets weer eens terugvinden)
(Ik moet echt nodig mijn delete-toets weer eens terugvinden)
Misschien heb ik nog zo'n toets liggen:-)
Ik heb een link met 2X een ? erin. dit:
<a href=index.php?pagina=forum.php?actie=nieuwpost
Die doet het niet, hoe kank zorgen dattie het wel doet? Met & ofso(sagk bij een andere site). Wie kan mij helepn??
Ik heb trouwens ook nog wel een toets orr!! als je me helpt mag je hem hebben:P
Je geeft met een ? aan dat de bestandsnaam van de pagina die je aanroept eindigd en er parameters volgen. Vervolgens sheid je de parameters weer met &:
http://www.phphulp.nl/forum/showtopic.php?cat=2&id=8030&edit=true&dit=voorbeeld
<a href=\"index.php?pagina=profile.php?act=edit_profile\">Change Profile</a>
En dit in de index.php:
Code (php)
Dan geeft hij deze foutmelding:
Warning: main(profile.php&?act=edit_profile): failed to open stream: No such file or directory in /het adres/index.php on line 89
Warning: main(): Failed opening 'profile.php&?act=edit_profile' for inclusion (include_path='.:') in /het adres/index.php on line 89
Wat moet ik anders doen??
case "profile.php":
include("profile.php?".$_GET['act']);
Alleen, volgens mij kan je geen parameters meegeven met een include().
Maar als het goed is zou hij:
include("profile.php");
zo dus wel moeten werken, aangezien de parameter $act dan wel degelijk aankomt. Het script wordt immers ingelezen, en dan geparsed in de pagina waarin je hem hebt geïnclude, dus daar waar je $act-parameter zich ook al bevindt.
Code (php)
<HTML>
<HEAD>
<TITLE></TITLE>
<LINK HREF="style.css" TYPE="text/css" REL="stylesheet">
</HEAD>
<BODY>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$query = mysql_query("SELECT naam FROM categories WHERE id=$cat") or die(mysql_error());
// category check
if(!mysql_num_rows($query)) {
echo "<CENTER>De geselecteerde categorie bestaat niet (meer).<BR>\n";
echo "<A HREF=\"categorieen.php\">Terug naar Categorieën</A><BR></CENTER>\n";
} else {
echo "<A HREF=\"categorieen.php\">".$forumname."</A> > <B>".mysql_result($query, 0, "naam")."</B><BR>\n";
mysql_free_result($query);
?>
$query = mysql_query("SELECT naam FROM categories WHERE id=$cat") or die(mysql_error());
// category check
if(!mysql_num_rows($query)) {
echo "<CENTER>De geselecteerde categorie bestaat niet (meer).<BR>\n";
echo "<A HREF=\"categorieen.php\">Terug naar Categorieën</A><BR></CENTER>\n";
} else {
echo "<A HREF=\"categorieen.php\">".$forumname."</A> > <B>".mysql_result($query, 0, "naam")."</B><BR>\n";
mysql_free_result($query);
?>
<BR>
<TABLE WIDTH="500" BORDER="1" CELLSPACING="0" CELLPADDING="2">
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$query1 = mysql_query("SELECT COUNT(*) FROM forum WHERE cat=$cat") or die(mysql_error());
$aantal_berichten = mysql_result($query1, 0);
mysql_free_result($query1);
$start = $pagina * $max;
$query2 = mysql_query("SELECT * FROM forum where cat=$cat ORDER BY id DESC LIMIT $start, $max") or die(mysql_error());
if(mysql_num_rows($query2)) {
$i = 0;
?>
$query1 = mysql_query("SELECT COUNT(*) FROM forum WHERE cat=$cat") or die(mysql_error());
$aantal_berichten = mysql_result($query1, 0);
mysql_free_result($query1);
$start = $pagina * $max;
$query2 = mysql_query("SELECT * FROM forum where cat=$cat ORDER BY id DESC LIMIT $start, $max") or die(mysql_error());
if(mysql_num_rows($query2)) {
$i = 0;
?>
<TR>
<TD WIDTH="25">
<BR>
</TD>
<TD WIDTH="200">
<B>Titel</B><BR>
</TD>
<TD WIDTH="100" ALIGN="center">
<B>Gepost door</B><BR>
</TD>
<TD WIDTH="100" ALIGN="center">
<B>Gepost op<B><BR>
</TD>
<TD WIDTH="75" ALIGN="center">
<B>Reacties</B><BR>
</TD>
</TR>
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
<?php
while($row = mysql_fetch_row($query2)) {
$forumid = $row[0];
$query3 = mysql_query("SELECT COUNT(*) FROM forumreplys WHERE forumid=$forumid") or die("q3: ".mysql_error());
$replys = mysql_result($query3, 0);
if($replys == 0) {
$thread = $gif1;
} elseif($replys > 0 && $replys < $mapbrand) {
$thread = $gif2;
} elseif($replys >= $mapbrand) {
$thread = $gif3;
}
// per rij zal het van kleur verwisselen
$kleur = ($i % 2 ? $kleur1 : $kleur2); //aanpassen in config
echo "<TR BGCOLOR=\"".$kleur."\">";
echo "<TD WIDTH=\"25\" ALIGN=\"center\"><IMG SRC=\"".$thread."\" WIDTH=\"13\" HEIGHT=\"16\" ALT=\"";
echo $row[7]." hit".($row[7] == 1 ? "" : "s")."\"><BR></TD>";
echo "<TD WIDTH=\"200\"><A HREF=\"forumbericht.php?cat=".$cat."&forumid=$forumid\">".$row[1]."</A><BR></TD>";
echo "<TD WIDTH=\"100\" ALIGN=\"center\"><A HREF=\"mailto:".$row[5]."\">".$row[3]."</A></TD>";
echo "<TD WIDTH=\"100\" ALIGN=\"center\">".date("d/m/Y H:i", $row[4])."</TD>";
echo "<TD WIDTH=\"75\" ALIGN=\"center\">".$replys."</TD></TR>";
$i++;
} // end while
mysql_free_result($query2);
?>
while($row = mysql_fetch_row($query2)) {
$forumid = $row[0];
$query3 = mysql_query("SELECT COUNT(*) FROM forumreplys WHERE forumid=$forumid") or die("q3: ".mysql_error());
$replys = mysql_result($query3, 0);
if($replys == 0) {
$thread = $gif1;
} elseif($replys > 0 && $replys < $mapbrand) {
$thread = $gif2;
} elseif($replys >= $mapbrand) {
$thread = $gif3;
}
// per rij zal het van kleur verwisselen
$kleur = ($i % 2 ? $kleur1 : $kleur2); //aanpassen in config
echo "<TR BGCOLOR=\"".$kleur."\">";
echo "<TD WIDTH=\"25\" ALIGN=\"center\"><IMG SRC=\"".$thread."\" WIDTH=\"13\" HEIGHT=\"16\" ALT=\"";
echo $row[7]." hit".($row[7] == 1 ? "" : "s")."\"><BR></TD>";
echo "<TD WIDTH=\"200\"><A HREF=\"forumbericht.php?cat=".$cat."&forumid=$forumid\">".$row[1]."</A><BR></TD>";
echo "<TD WIDTH=\"100\" ALIGN=\"center\"><A HREF=\"mailto:".$row[5]."\">".$row[3]."</A></TD>";
echo "<TD WIDTH=\"100\" ALIGN=\"center\">".date("d/m/Y H:i", $row[4])."</TD>";
echo "<TD WIDTH=\"75\" ALIGN=\"center\">".$replys."</TD></TR>";
$i++;
} // end while
mysql_free_result($query2);
?>
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
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
<?php
// navigatie
if($aantal_berichten > $max) {
// laat alleen navigatie zien als er meer berichten zijn dan dat er op een pagina passen
// aantal pagina's:
if(!($aantal_berichten % $max)) {
// pagina's passen precies
$npaginas = $aantal_berichten/$max;
} else {
// rest na deling
$npaginas = (integer)($aantal_berichten/$max) + 1;
}
echo "<TR><TD WIDTH=\"500\" COLSPAN=\"5\" ALIGN=\"center\">\n";
echo "Pagina's ";
for($p=0; $p < $npaginas; $p++) {
if($p == $pagina) {
echo "<B>$p</B>";
} else {
echo "<A HREF=\"forum.php?pagina=".$p."&cat=".$cat."\">".$p."</A>";
}
echo (($p+1) < $npaginas ? "|" : "");
}
echo "</TD></TR>\n";
}
} elseif(!$pagina) {
// nog geen forumids in deze categorie OF
// een persoon zit op een niet-bestaande pagina
?>
// navigatie
if($aantal_berichten > $max) {
// laat alleen navigatie zien als er meer berichten zijn dan dat er op een pagina passen
// aantal pagina's:
if(!($aantal_berichten % $max)) {
// pagina's passen precies
$npaginas = $aantal_berichten/$max;
} else {
// rest na deling
$npaginas = (integer)($aantal_berichten/$max) + 1;
}
echo "<TR><TD WIDTH=\"500\" COLSPAN=\"5\" ALIGN=\"center\">\n";
echo "Pagina's ";
for($p=0; $p < $npaginas; $p++) {
if($p == $pagina) {
echo "<B>$p</B>";
} else {
echo "<A HREF=\"forum.php?pagina=".$p."&cat=".$cat."\">".$p."</A>";
}
echo (($p+1) < $npaginas ? "|" : "");
}
echo "</TD></TR>\n";
}
} elseif(!$pagina) {
// nog geen forumids in deze categorie OF
// een persoon zit op een niet-bestaande pagina
?>
<TR>
<TD WIDTH="500" COLSPAN="5" ALIGN="center">
<B>Er zijn nog geen forumberichten toegevoegd in deze categorie!</B>
</TD>
</TR>
<TR>
<TD WIDTH="500" COLSPAN="5" ALIGN="center">
<B>Er staan geen berichten op deze pagina!</B>
</TD>
</TR>
<TR>
<TD COLSPAN="5" ALIGN="center">
<A HREF="nieuwbericht.php?cat=">Nieuw Topic</A> |
<A HREF="categorieen.php">Terug naar ''</A><BR>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Zoals je ziet kan je linken naar
forumbericht.php?cat=".$cat."&forumid=$forumid Maar as ik doe forumbericht.php&cat=".$cat."&forumid=$forumid doettie het niet. Hoe kan ik zorgen dat die pagina"forumbericht.php?cat=".$cat."&forumid=$forumid" Zich opent in mij index.php?? Iemand?