PHP op localhost niet altijd weergegeven
Apache en PHP 5 zijn geinstalleerd via wamp. op mijn eigen browser wordt phpinfo.php weergegeven. PHP werkt.
Maar andere php pagina's worden niet altijd weergegeven. Dit geldt wanneer er met een string naar een url wordt verwezen.
Online bij een externe server draaien deze pagina's perfect, maar niet op mijn eigen pc, wat erg lastig is bij het webdesignen. Het gaat om code zoals:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
echo
("<FRAMESET FRAMEBORDER=NO FRAMEBORDER=0 BORDER=0 ROWS=\"118,*\">
<FRAME SCROLLING=\"NO\" SRC=\"head.php?title=$id\" NAME=\"head\" NORESIZE>
<FRAME SCROLLING=\"AUTO\" SRC=\"$id.php\" NAME=\"main\" NORESIZE>
</FRAMESET>");
?>
echo
("<FRAMESET FRAMEBORDER=NO FRAMEBORDER=0 BORDER=0 ROWS=\"118,*\">
<FRAME SCROLLING=\"NO\" SRC=\"head.php?title=$id\" NAME=\"head\" NORESIZE>
<FRAME SCROLLING=\"AUTO\" SRC=\"$id.php\" NAME=\"main\" NORESIZE>
</FRAMESET>");
?>
</body>
Wie kan me helpen?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
echo '
<frameset frameborder="no" border="0" rows="118,*">
<frame scrolling="no" src="head.php?title='.$id.'" name="head" noresize>
<frame scrolling="auto" src="'.$id.'.php" name="main" noresize>
</frameset>';
?>
echo '
<frameset frameborder="no" border="0" rows="118,*">
<frame scrolling="no" src="head.php?title='.$id.'" name="head" noresize>
<frame scrolling="auto" src="'.$id.'.php" name="main" noresize>
</frameset>';
?>
Single quotes, variabelen buiten de quotes html in kleine letters.
Is sowieso al een stuk overzichtelijker :)
Of het nu werkt zou je gewoon even moeten testen...
je hoeft je echo toch ook niet tussen haakjes te zetten?
Maar het kan wel :S
ah ok.. :) (let maar niet op mij... :) )
Blijft de vraag waarom het gepubliceerd wel fantastisch werkt, zelfs op twee verschillende hosting sites, maar op mijn eigen pc lokaal niet. Terwijl ik de nieuwste wamp heb geinstalleerd.
Wat zie ik over het hoofd bij de installatie van het één en ander?
En waarom moet je een frameset in php doen? Doe dingen die in html gaan gewoon in html.
Kijk welke versies php/mysql op de hosts draaien en vergelijk dat met die je zelf draait.
Ik hoop dat er een simmerik opduikt die wat verstand van servers heeft en PHP
P.S. Het script is goed, daar valt niets aan af te dingen. Natuurlijk kun je het anders schrijven, maar dat betekent niet dat het niet goed is. Laten we de alternatieven buiten beschouwing laten.
En wat staat er dan b.v. in zo'n string die niet werkt?
Not Found
The requested URL /YYY/nl/.php was not found on this server.
--------------------------------------------------------------------------------
Apache/2.0.55 (Win32) PHP/5.1.2 Server at localhost Port 80
op de plek van de /.php zou dan een variabele gegenereerd moeten worden als bijvoorbeeld 'welkom'. zodat je welkom.php krijgt.
(Waarom niet op de eigen server en wel op mijn hosting site bij een externe server?)
$id is dus leeg. Waar komt $id vandaan? Uit een formulier? Gebruik dan $_POST['id'] of $_GET['id'].
zoals bijvoorbeeld: SRC=\"head.php?title=$id\"
Maar dat funcioneert online goed, maar niet op mijn ofline op mijn pc.
Er is iets mis met mijn pc. Die moet blijkbaar anders ingesteld worden in combinatie met de apache-server en het php-programma. Maar wat!?
De instelling van je globals staat anders (veiliger) ingesteld.
Het werkt in principe goed. Niet elk php probleem is een script probleem.
Maar bedankt voor je moeite SanThe.
Ik wacht wel tot iemand een oplossing heeft die niet het script wil aanpassen.
dit heeft te maken omdat je dubble qoutes gebruikt.
ik zal je laten zien hoe je deze codes het beste kunt gebruiken:
jou huidige code's:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
echo
("<FRAMESET FRAMEBORDER=NO FRAMEBORDER=0 BORDER=0 ROWS=\"118,*\">
<FRAME SCROLLING=\"NO\" SRC=\"head.php?title=$id\" NAME=\"head\" NORESIZE>
<FRAME SCROLLING=\"AUTO\" SRC=\"$id.php\" NAME=\"main\" NORESIZE>
</FRAMESET>");
?>
echo
("<FRAMESET FRAMEBORDER=NO FRAMEBORDER=0 BORDER=0 ROWS=\"118,*\">
<FRAME SCROLLING=\"NO\" SRC=\"head.php?title=$id\" NAME=\"head\" NORESIZE>
<FRAME SCROLLING=\"AUTO\" SRC=\"$id.php\" NAME=\"main\" NORESIZE>
</FRAMESET>");
?>
het beste is om html html te laten en php php. dus in dat geval sluit je php als je html wilt neerzetten en visa versa dus als volgt:
<FRAMESET FRAMEBORDER=NO FRAMEBORDER=0 BORDER=0 ROWS="118,*">
<FRAME SCROLLING="NO" SRC="head.php?title=" NAME="head" NORESIZE>
<FRAME SCROLLING="AUTO" SRC=".php" NAME=\"main\" NORESIZE>
</FRAMESET>
zoals je kunt zien kan php ook in de html gewoon geopent en gesloten worden, nu weet ik niet zeker of je
Code (php)
1
2
3
2
3
<?= moet gebruiken bij het openen op gewoon <? dit zou je even moeten testen, verder is het sluiten dus hetzelfde.
je zou ook met echo kunnen werken maar dan raad ik je aan single qoutes te gebruiken.
je zou ook met echo kunnen werken maar dan raad ik je aan single qoutes te gebruiken.
Jacob:
nee, de $id komt niet uit een formulier, maar uit de URL. In de url kun je nl beperkte data meezenden.
zoals bijvoorbeeld: SRC="head.php?title=$id"
Maar dat funcioneert online goed, maar niet op mijn ofline op mijn pc.
Er is iets mis met mijn pc. Die moet blijkbaar anders ingesteld worden in combinatie met de apache-server en het php-programma. Maar wat!?
zoals bijvoorbeeld: SRC="head.php?title=$id"
Maar dat funcioneert online goed, maar niet op mijn ofline op mijn pc.
Er is iets mis met mijn pc. Die moet blijkbaar anders ingesteld worden in combinatie met de apache-server en het php-programma. Maar wat!?
verder wat je hier zegt klopt niet, je pc werkt prima
alleen variablen werken alleen als ze ook toegangelijk zijn, online zijn ze blijkbaar toegankelijk omdat daar de variable wel bekent is, en op je local host niet. zoals al wordt gezegt pak die variable uit de lucht als je een form gebruikt, dus met $_GET['id'] , voorbeeldje:
$id = $_GET['id'];
nu kan je $id gewoon gebruiken.
als een variable niet werkt heeft dit echt niks met je pc te maken, dus laat deze gedachte weg, de fout zit hem echt in je code's ik gebruik zelf xampp op men locale systeem om men website's locaal te testen en heb hier geen problemen mee ondervonden.
Quote:
Jacob schreef op 23.03.2006 13:14
Ik wacht wel tot iemand een oplossing heeft die niet het script wil aanpassen.
Ik wacht wel tot iemand een oplossing heeft die niet het script wil aanpassen.
In php.ini register_globals op on zetten.
nog één vraagje met betrekking tot je oplossing:
ik kwam dit tegen in mijn PHP.ini
; You should do your best to write your scripts so that they do not require
; register_globals to be on;
Wat wordt daar précies mee bedoeld?
En ik denk dat SanThe nu een diepe zucht slaakt.
Jacob:
We have a winner!!! SanThe. top bedankt
nog één vraagje met betrekking tot je oplossing:
ik kwam dit tegen in mijn PHP.ini
; You should do your best to write your scripts so that they do not require
; register_globals to be on;
Wat wordt daar précies mee bedoeld?
nog één vraagje met betrekking tot je oplossing:
ik kwam dit tegen in mijn PHP.ini
; You should do your best to write your scripts so that they do not require
; register_globals to be on;
Wat wordt daar précies mee bedoeld?
de directe vertaling van bablefish:
; U zou uw beste moeten doen uw manuscripten schrijven zodat zij niet vereisen; register_globals om te zijn;
eigen vertaling :P
je moet je script zo schrijven dat het niet nodig is die optie register_globals op on te zetten
oftewel pas je script aan, wat jezelf aan aangaf dat je dit niet wilde doen.