AbbedissanMedlem sedan okt. 200434 inlägg
Håller på att försöka lära mig detta php, har läst x antal kurser över nätet.
Men kan ej förstå varför detta ej vill funka...
Har hittat ett par script som jag försöker bygga ihopa, det ena är en över index sida med meny (där alla sidorna läggs in) den andra är ett nyhets script.
<?
include("./header.php");
include("./variablar.php");
if ((!isset($_GET['page'])) || ($_GET['page'] == "includes/start2")) {
header("Location: ./?page=nyheter");
}
function RestenAvsidan($page) {
if (($page == "start") || ($page == "sida2") || ($page == "sida3") || ($page == "nyheter") || ($page == "admin") || ($page == "nyheter.php?nyhetid=$nyhetid") || ($page == "nyheter?alla=nyheter")){
include($page . ".php");
} elseif ($page == "") {
include("nyheter.php");
} else {
include("includes/broken.php");
}
return 0;
}
?>
<html>
<head>
</head>
<body>
<table border=1><tr><td width="150" height="300" valign="top">
<b>Meny</b><br>
<a href="./?page=nyheter">Nyheter</a><br>
</td><td valign="top" width="200" heigth="300">
<?
RestenAvSidan($_GET['page']);
?>
</td>
</tr></table>
</body>
</html>
Detta funkar som de skall, men när ja klickar på nyheter länken och har ett par nyheter där. Så går det ej att få fram den länken i denna sidan?
<?
# SCRIPT
include("./variablar.php");
include("./header.php");
$conn = mysql_connect("$server","$suser","$spass");
mysql_select_db("$databas");
$back = "<a href=\"javascript:history.back()\">Tillbaka</a>";
if(isset($nyhetid)) {
$q=mysql_query("SELECT * FROM nyheter WHERE nyhetid='$nyhetid'");
$r=mysql_fetch_Array($q);
$nyhetamne = $r["nyhetamne"];
$nyhetdatum = $r["nyhetdatum"];
$nyhettext = $r["nyhettext"];
$nyhettext = nl2br($nyhettext);
echo"<table border=\"0\" bgcolor=\"#ffffff\" cellspacing=\"1\" cellpadding=\"2\" width=\"$bredd\">";
echo"<tr>\n<td valign=\"top\"><b>$nyhetamne</b> - $nyhetdatum</td>\n</tr>";
echo"<tr>\n<td valign=\"top\">$nyhettext<br><br>$back</td></tr>";
echo"</table>";
} ELSEIF(isset($alla)) {
$q=mysql_query("SELECT * FROM nyheter ORDER BY nyhetdatum DESC");
while($r = mysql_fetch_array($q)) {
$nyhetid = $r["nyhetid"];
$nyhetamne=$r["nyhetamne"];
$nyhetdatum=$r["nyhetdatum"];
echo"<a href=\"?page=nyheter?nyhetid=$nyhetid\">$nyhetamne</a> - $nyhetdatum<br>";
}
echo"<br>".$back;
}else {
$q=mysql_query("SELECT * FROM nyheter ORDER BY nyhetdatum DESC LIMIT $ant_nyheter");
if(mysql_affected_Rows() == "0") {
echo"<b>Det finns inga nyheter</b>";
} else {
echo"<table border=\"0\" bgcolor=\"#ffffff\" cellspacing=\"1\" cellpadding=\"2\" width=\"$bredd\">";
while($r=mysql_fetch_Array($q)) {
$nyhetamne = $r["nyhetamne"];
$nyhetdatum = $r["nyhetdatum"];
$nyhettext = $r["nyhettext"];
$nyhetid = $r["nyhetid"];
$nyhettext = substr($nyhettext,0,$ant_tec);
echo"<tr>\n<td valign=\"top\"><b>$nyhetamne</b><br>$nyhetdatum</td>\n</tr>";
echo"<tr><td valign=\"top\">$nyhettext";
echo"<a href=\"nyheter.php?nyhetid=$nyhetid\">...Läs hela</a><br><br></tr></td>";
}
echo"</table>";
if($show_all == "1") {
echo"<br>[ <a href=\"?page=nyheter?alla=nyheter\">Alla nyheter</a> ]";
} else {}
}
}
?>
alltså, Hur skriver jag för att tex
<a href=\"?page=nyheter?alla=nyheter\">Alla nyheter</a> ]";
ska funka, så att de visas i "index filen"?
Har lagt till den i "function RestenAvsidan($page)", men sidan som visas är helt tom...
Förstår ej
lunne82Medlem sedan dec. 2003153 inlägg
du ska anropa sidan genom:
<a href=\"?page=nyheter&alla=nyheter2\">Alla nyheter</a>
för att du ska få med allt. Då kommer du ha en:
$_GET['page'] som innehåller "nyheter" och en:
$_GET['alla'] som innehåller "nyheter2".
Sen får du anpassa din funktion RestenAvSidan() efter detta.
Jag vill bara säga att det kan vara en dum idée att låta användaren välja vilken sida som ska inkluderas i koden. Det är lätt att det blir säkerhetsproblem. Vänd på det istället... Skapa en fil "head.php" som du inkluderar i toppen på alla sidor som innehåller "<html><head>..." sen har du koden för den sidan och sedan inkluderar du en "foot.php" som innehåller "...</body></html>".
AbbedissanMedlem sedan okt. 200434 inlägg
tack för svaret!
Är ej riktigt me på va du menar med anpassa
RestenAvSidan($_GET['page']);
Har lagt till
($page == "nyheter2")
och ändrat länken till
<a href=\"?page=nyheter&alla=nyheter2\">
Men när ja klickar på den, så laddar sidan bara om.
Kör jag scriptet ensamt (utan index varianten) så kommer det upp en sida där nyheterna är uppradade.
Det är dessa länkar jag ej förstår hur ja ska få att fungera.
"<a href=\"nyheter.php?nyhetid=$nyhetid\">
(testade att ändra den till denna, men funkade ej)
<a href=\"?page=nyheter?nyhetid=$nyhetid\">
Det är några fler länkar med, men tänkte om jag förstår en så kanske ja kan lista ut hur ja löser de andra me.
lunne82Medlem sedan dec. 2003153 inlägg
Ser att du har en header.php redan. Vad innehåller den?
Istället för att göra som du gör här ovan kan du göra såhär, blir enklare i längden.
Skapa en fil head.php som innehåller detta:
<?
include("./header.php");
include("./variablar.php");
?>
<html>
<head>
</head>
<body>
<table border=1><tr><td width="150" height="300" valign="top">
<b>Meny</b><br>
<a href="./?page=nyheter">Nyheter</a><br>
</td><td valign="top" width="200" heigth="300">
Sen skapar du en fil som heter foot.php som innehåller:
</td>
</tr></table>
</body>
</html>
Sen lägger du in denna rad:
include("./head.php");
längst upp i din nyheter.php och denna rad:
include("./foot.php");
längst ner. Sen anropar du nyheter.php såhär:
/nyheter.php?alla=nyheter
Genom att göra såhär blir det tydligare vart argumenten ska användas som du skickar med i adressen.
AbbedissanMedlem sedan okt. 200434 inlägg
Tack för hjälpen, funkar kanon med alla funktionerna!!
Problemet jag nu stött på e hur jag lägger till ytterliggare länkar?
Indexfilen ser ut såhär numera
<?
include("./header.php");
include("./variablar.php");
if ((!isset($_GET['page'])) || ($_GET['page'] == "nyheter.php")) {
header("Location: ./nyheter.php");
}
?>
head ser ut såhär...
<?
include("./header.php");
include("./variablar.php");
?>
<html>
<head>
</head>
<body bgcolor="#C2C287" text="#000000" id="all" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10" link="#660000" vlink="#660000" alink="#660000">
<table border=1><tr><td width="150" height="300" valign="top">
<b>Meny</b><br>
<a href="./start.php">Start</a><br>
<a href="./admin.php">admin</a><br>
<a href="./nyheter.php">Nyheter</a><br>
<a href="./nyheter.php?alla=nyheter">Alla nyheter</a><br>
</td><td valign="top" width="450" heigth="300">
Hur får ja denna start.php att funkar, ser ut såhär just nu.
<?
include("./head.php");
include("./header.php");
Har visas information som kommer upp direkt man kommer in pa sidan.
include("./foot.php");
?>
lunne82Medlem sedan dec. 2003153 inlägg
I start.php behöver du inte inkludera header.php eftersom den inkluderas i head.php.
Ändra din start.php till:
<?
include("./head.php");
?>
Har visas information som kommer upp direkt man kommer in pa sidan. Här kan du även skriva HTML.
<?
include("./foot.php");
?>
eller alternativt:
<?
include("./head.php");
echo "Har visas information som kommer upp direkt man kommer in pa sidan. Här kan du även skriva HTML.";
include("./foot.php");
?>