Frame

Status
Niet open voor verdere reacties.
Dat (laatste) snap ik hoor, maar weer even hierover, moet het nu dit worden:
PHP:
<?php
$a123 = "google.com";
$uiahfeaurhfl = "facebook.com";
 
if (isset($_GET['pagina'])) //kijken of het in de url staat
{ $pagina = $_GET['pagina']; } //dan de pagina variable de url variable meegeven
else //als die er niet instaat
{$pagina = "start.htm"; } //de standaart meegeven
?>
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titel</title>
<link href="css.css" rel="stylesheet" type="text/css" />
 
</head>
<body>
 
<iframe class="frame" name="frame" frameborder="0" src="<?php
print ("http://");
if($_GET['pagina'] == 'a'){
print ($pagina)
}
elseif ($_GET['pagina']) == 'b'){
print ($uiahfeaurhfl);
}
else{
print ($pagina);
}
else { print $pagina; }
?>" allowTransparency="true" scrolling="no"></iframe>
</body>
</html>

Ik weet telkens niet waar ik jullie PHP code's nu neer moet zetten.. Dit leek me het meest logisch.
Begint trouwens een lang topic te worden hè? :P
(Alvast) bedankt,
Just
 
We zien het ook niet als een aanval. Het is gewoon een uitleg waarom hij niet bij php staat:thumb:

Voor de rest is $pagina wat je achter dat ding zet in de URL, waar het om ging. Voor een bepaalde waarde, oftewel: iaefjoeirjf (ofzoeits was het). moet die de variable eiaojrfioaerjf printen. je kan hem dan ook variable $123 laten printen als $pagina == ijeroifjae. Het principe is hetzelfde.

Snapt U?

EDIT just dat laatste gaat wel werken, maar is percies hetzelfde als wat wij deden omdat $pagina = $_GEt dinges.


elseif ($_GET['pagina']) == 'a'){
print ($pagina);

moet niet $pagina zijn maar iets anders wat je wilt. Bijvoorbeeld $a123
 
Laatst bewerkt:
Als ik het goed begrepen heb moet het dus dit worden:
PHP:
<?php
$a = "google.nl";
$b = "facebook.com";

if (isset($_GET['pagina'])) //kijken of het in de url staat
{ $pagina = $_GET['pagina']; } //dan de pagina variable de url variable meegeven
else //als die er niet instaat
{$pagina = "start.htm"; } //de standaart meegeven
?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titel</title>
<link href="css.css" rel="stylesheet" type="text/css" />
 
</head>
<body>
 
<iframe class="frame" name="frame" frameborder="0" src="<?php
print ("http://");
if ($_GET['pagina']) == 'a'){
print ($a);
elseif ($_GET['pagina']) == 'b'){
print ($b);
else { print $pagina; }
?>" allowTransparency="true" scrolling="no" width="200" height="200"></iframe>
</body>
</html>
Maar ik krijg weer een server error...
Just
 
Er zaten weer wat syntexerrors in. Ik heb ze er even uitgehaald en $_get dinges veranderd in pagina wat wat netter is, maar precies hetzelfde. Hier is je code:

PHP:
<?php
$a = "google.nl";
$b = "facebook.com";
 
if (isset($_GET['pagina'])) //kijken of het in de url staat
{ $pagina = $_GET['pagina']; } //dan de pagina variable de url variable meegeven
else //als die er niet instaat
{$pagina = "start.htm"; } //de standaart meegeven
?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titel</title>
<link href="css.css" rel="stylesheet" type="text/css" />
 
</head>
<body>
 
<iframe class="frame" name="frame" frameborder="0" src="
<?php
print ('http://');
if ($pagina == 'a')
{
print $a; 
}
if ($pagina == 'b')
{
print $b;
}
else { print $pagina; }
?>" allowTransparency="true" scrolling="no" width="200" height="200"></iframe>
</body>
</html>
 
Laatst bewerkt:
Het werkt nog niet... stel ik ga naar index.php?pagina=a komt er in het frame: kan pagina www.google.nla niet vinden, dus hij zet dat wat achter pagina= staat ook nog achter de URL...
Just
 
Ik denk dat hij niet meer weet wanneer die de else moet gebruiken. Probeer dit eens

PHP:
<?php
$a = "google.nl";
$b = "facebook.com";
 
if (isset($_GET['pagina'])) //kijken of het in de url staat
{ $pagina = $_GET['pagina']; } //dan de pagina variable de url variable meegeven
else //als die er niet instaat
{$pagina = "start.htm"; } //de standaart meegeven
?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titel</title>
<link href="css.css" rel="stylesheet" type="text/css" />
 
</head>
<body>
 
<iframe class="frame" name="frame" frameborder="0" src="
<?php
print ('http://');
if ($pagina == 'a')
{
print $a; 
}
else{}
if ($pagina == 'b')
{
print $b;
}
else{}
if ($pagina == 'a'|'b') {}
else { print $pagina; }
?>" allowTransparency="true" scrolling="no" width="200" height="200"></iframe>
</body>
</html>
 
?pagina=a werkt, maar bij ?pagina=b krijg je weer www.facebook.comb is niet gevonden...
Nog een vraagje, laat maar zitten als dat te moeilijk s hoor, maar zou de code iets simpeler kunnen als er meer bij komt als bijv. a en b? Want daar waar ik het voor ga gebruiken komen er waarschijnlijk een stuk of 20 - 25 'mogelijkheden'.
 
Probeer eens met 2 | (dus ||) tussen 'a' en 'b' en nee de code kan nou eenmaal niet simpeler. Je moet elke a of b natuurlijk beschrijven. Er is geen automatisch ding.
 
Wat natuurlijk een array. Je zult een array moeten aanmaken. die kan je lussen. Je code komt morgen als je het niet erg vind. Ik moet nog even een PO afmaken vanavond ;)
 
Dan hoor ik het morgen wel :)
En ik ben vast weer (te?) nieuwschierig, maar ik kon het toch niet laten; waar staat PO voor...?
Just
 
Praktische opdracht :P Ik moest een betoog van 1000 woorden schrijven over de botsing van wetenschap en geloof:shocked:

Maarja. hier komt je array, het is wat makkelijker als je wat meer toe wilt voege. Ik heb dit echter zelf bedacht.... Dus een gerantie dat het werkt is het niet. Ook zitten er nog syntaxfouten in.. Succes ermee!

PHP:
<?php
$preset = array( 	"a" => "google.nl",
					"b" => "facebook.com", 
					"c" => "een andere site",); // Steeds hier eenzelfde regel toevoegen. Vergeet de , quotes en => niet!
					
$x = "a"|"b"|"c"; //dan hoef je alleen hier hem nog maar toe te voegen. en dus geen gedoe meer met if en else.

if (isset($_GET['pagina'])) //kijken of het in de url staat
{ $pagina = $_GET['pagina']; } //dan de pagina variable de url variable meegeven
else //als die er niet instaat
{$pagina = "start.htm"; } //de standaart meegeven
?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titel</title>
<link href="css.css" rel="stylesheet" type="text/css" />
 
</head>
<body>
 
<iframe class="frame" name="frame" frameborder="0" src="
<?php
print ('http://');
if ($pagina == $preset["$x"])
{
print $preset["$x"]; 
}
else{print $pagina;}
?>" allowTransparency="true" scrolling="no" width="200" height="200"></iframe>
</body>
</html>
 
Het kan nog simpeler :p

Dit script houd rekening met dat de gebruiker wel of juist geen http:// voor de link zet, en of de pagina bestaat :d

PHP:
<?php

$presets = array(
			"a" => "google.nl",
			"b" => "yahoo.nl",
			"c" => "helpmij.nl",
			// Voeg telkens een regel toe om meer presets toe te voegen
			);
			
$startpagina = 'start.htm';

$foutpagina  = 'fout.htm';


// Pagina bepalen
if(isset($_GET['pagina'])) {
	if(isset($presets[$pagina])) {
		if(strpos($presets[$pagina], 'http://')) {
			$pagina = $presets[$pagina];
		} else {
			$pagina = 'http://' . $presets[$pagina];
		}
	} else {
		if(strpos($_GET['pagina'], 'http://')) {
			$pagina = $_GET['pagina'];
		} else {
			$pagina = 'http://' . $_GET['pagina'];
		}
	}
} else {
	$pagina = $startpagina;
}

if(file_get_contents($pagina) === FALSE) {
	$pagina = $foutpagina;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titel</title>
<link href="css.css" rel="stylesheet" type="text/css" />
 
</head>
<body>
 
<iframe class="frame" name="frame" frameborder="0" src="<?php echo $pagina; ?>" allowTransparency="true" scrolling="no" width="200" height="200"></iframe>
</body>
</html>
 
moet het nog even uitkiemen, nu helaas geen tijd. Ik zie wel dat het (niet) werkt, want ik krijg een 404 error. Ik denk dat hij bij a bijv. website.nl/google.nl doet, maar dat is in mijn geval niet erg.
Just
 
Laatst bewerkt:
strpos is een functie die aangeeft of iets zich in een string bevindt:

strpos('abc', 'a') geeft TRUE
strpos('abc', 'z') geeft FALSE

eerste parameter is de string waarin gezocht moet worden, de 2de is wat gevonden moet worden...

Verder weet ik niet of dat script met frames werkt, want ik heb geen verstand van frames (nogal verouderd, weet je...)
 
Wat voor een editor gebruiken jullie voor PHP, JS, HTML en CSS? En kun je daarmee ook syntaxfouten uit de code halen?
En waarom zijn frames oud? Toch juist handig als het anders niet lukt? Ik kan begrijpen dat het niet effectief is om daar hele pagina's mee te maken, maar een enkele keer...?
Just
 
Laatst bewerkt:
Frames hebben veel nadelen en zijn gewoon verouderd... Zoek maar op google ;)

Zelf gebruikte ik op windows notepad++, nu (op mac) gebruik ik textwrangler
 
Notepad is ook een beetje verouderd. Je kan gratis Myfirstpage gebruiken, of je kan dreamweaver gebruiken. Dat doe ik zelf, het is wel duur, maar mischien zijn er andere manieren om hem te krijgen, als je begrijpt wat ik bedoel.

Voor de rest zal je tegenwoordig geen fatsoenlijke frame website meer tegenkomen. Maar als je een website in een website wil laten zien, dan kan je het gebruiken.
 
Ik begrijp wat je bedoelt, en zo heb ik Dreamweaver ook al gekregen. Zal het weer eens proberen. Nu gebruik ik trouwens (het gratis) Sharepoint Designer 2007.
En het script van 5blabla5 werkt helaas niet, hij weergeeft iedere keer fout.htm tenzij je een hele URL achter ?pagina= zet, maar dat a, b en c werkt dus nog niet.
Just
 
Laatst bewerkt:
Oke. Nouja dreamweaver geeft wel syntaxerrors weer.. Probeer dit eens ;)


Ik heb ook file get content eruit gehalad omdat je die verschrikkelijk verkeerd gebruitkte... Bovendien is het niet nodig..

PHP:
<?php
 
$presets = array(
            "a" => "google.nl",
            "b" => "yahoo.nl",
            "c" => "helpmij.nl",
            // Voeg telkens een regel toe om meer presets toe te voegen
            );
            
$startpagina = 'start.htm';
 
// Pagina bepalen
if(isset($_GET['pagina'])) {
    if(isset($presets["$pagina"])) {
        if(strpos($presets["$pagina"], 'http://')) {
            $pagina = $presets["$pagina"];
        } else {
            $pagina = 'http://' . $presets["$pagina"];
        }
    } else {
        if(strpos($_GET['pagina'], 'http://')) {
            $pagina = $_GET['pagina'];
        } else {
            $pagina = 'http://' . $_GET['pagina'];
        }
    }
} else {
    $pagina = $startpagina;
}
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titel</title>
<link href="css.css" rel="stylesheet" type="text/css" />
 
</head>
<body>
 
<iframe class="frame" name="frame" frameborder="0" src="<?php echo $pagina; ?>" allowTransparency="true" scrolling="no" width="200" height="200"></iframe>
</body>
</html>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan