Problemer med echo et id...

Tags:    php

Hej alle,

Jeg er ved at få grå hår over php. Jeg er forholdsvis nybegynder, men har før fået gæstebog, login osv til at virke.

Jeg er ved at lave et mindre projekt i skolen, hjemmeside: http://www.madtech.dk/silentmedia

Men nu er jeg begyndt at inkludere tekst til undersider via php i stedet for at kopiere hele index-filen med design igen og igen og så driller alt login osv.

Under forum på førnævnte hjemmeside er der en "edit" button, hvor formen sender videre til en forum_rediger.php, men nu kan den ikke echo indhold fra indlæg længere.

Før hed linket fra rediger:
<a href="blog_rediger.php?blog=<? echo $blog[0]; ?>">Rediger</a> (http://www.madtech.dk/blog/blog.php )

Nu skrives alle links på denne vis: index.php?site=home, hvor home er lig med den side den skal hente indhold fra. Så derfor ville jeg mene den nye kode skulle hedde følgende:

<a href="forum.php?site=forum_rediger?forum=<? echo $forum[0]; ?>">Edit</a>

Men den echo'er ikke længere indholdet, men stiller fint videre til siden...

Håber nogen er elskværdige nok til at komme med en løsning på dette problem.

På forhånd mange tak.



Indlæg senest redigeret d. 04.10.2008 10:36 af Bruger #14235
6 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
umiddelbart fremgår det, efter lidt research, at du ikke kan bruge '?' til at indikere hver eneste "get variabel/information" fra urlen, så det du skal gøre for at kunne have flere informationer er at benytte '&' imellem dem.
så:
<a href="forum.php?site=forum_rediger?forum=<? echo $forum[0]; ?>">Edit</a>
bliver til:
<a href="forum.php?site=forum_rediger&forum=<? echo $forum[0]; ?>">Edit</a>

og du henter bare oplysningerne som normalt fra, site og forum :)



Hej runix,

Jeg takker mange gange for dit svar, det var et godt bud, men det virker desværre ikke - den laver om på linket, og tror måske det er det php der fortæller hvor/hvordan der skal hentes indhold. Derfor poster jeg lige dette:

<?php
$default = "forum";

//Hvis siden ikke angives i adresselinjen, vælges denne side (default)
if(!$_GET['site']){
$_GET['site'] = $default;
}

//Her angives stien til de forskellige sider
$php = "./subsites/forum1/" . $_GET['site'] . ".php";
$error = "./subsites/error.php";

//Hvis adressen eksisterer skal den inkluderes
if(file_exists($php)){
include($php);
}
else{
include($error);
}
?>



Hmm er ikke sikker på jeg er med på hvad problemet helt er, du snakker om at echo noget, så vil egentlig gerne se det stykke kode der skulle echo noget :)

dog kan jeg tilføje et par rettelser til ovenstående kode:

dit tjek:
if(!$_GET['site']){
$_GET['site'] = $default;
}
er ikke valid, for ifølge php.net's kommentarer vil værdien af $_GET['site'] være NULL hvis der ikke er nogen site variabel i urlen, og jeg ved ikke om det er pænt(læs muligt) at skrive til denne predefinerede/reserverede variabel, så jeg ville nok lave det som:

$site_path = "forum";
if ($_GET['site'] != NULL) {
$site_path = $_GET['site'];
}
og så bare ellers bruge site_path variabelen de andre steder i koden. :)

Edit: du kan også bruge if (empty($_GET['site'])) - den tjekker om variablens indhold svarer til noget der skal opfattes som "ingenting" - den er mere allround og sikrer at det ønskede sker i stedet for at man skal til at undersøge om noget er NULL, false, "" og/eller andet gejl.



Indlæg senest redigeret d. 04.10.2008 12:34 af Bruger #4137
Jeg har prøvet begge dine forslag, men er som sagt ret ny i PHP, kan ikke rigtigt få det til at virke.

Er der nogen der er friske på at se alle mine koder igennem og tjekke hvor det går galt, så kan jeg sende det hele på en mail.

På forhånd tusind tak.



Problem blev løst, tusind tak for hjælpen runix. Jeg ved ikke lige hvordan jeg kan give dig point, har kun mulighed for at give mig selv pointene.



Det var da godt, well det er fordi jeg laver kommentarer, da jeg ikke har brug for points - jeg er her bare for at hjælpe :)



t