Is php echo binnen waarde van HTML-tag mogelijk?

Status
Niet open voor verdere reacties.

JohanDerks

Verenigingslid
Lid geworden
2 dec 2006
Berichten
82
Ik heb de volgende syntax in HTML:
Code:
<input type="submit" name="elektRapFVR" style="background-color: #BFD9DA; width: 500px; text-align: center" onclick="direktu='Rap'; destinu();" 
value="Montru tabelon de la lingvoj laŭ tio ĉu ili enprenis la vorton '<?php echo $fontVorto ?>" />
of teruggebracht tot de essentie:
Code:
<input type="submit" name="elektRapFVR" onclick="bestemming();" 
value="toon de talen die het bronwoord '<?php echo $fontVorto ?>' niet opnamen." />
Volgens W3C Validation Service niet.
Ik moet waarschijnlijk iets doen met specialcharacters om de enkele aanhalingstekens te kunnen gebruiken.
Of het kan helemaal niet ......

Hopelijk is er weer een belangstellende die helpt.
 
W3 Validator snapt geen PHP, dus voer hem altijd de output van het geparste script, zoals je die in je browser ziet bij: 'View source'.

Ik weet niet waar $fontVorto vandaan komt, is het vast gedefinieerd, of een input van een gebruiker?
Ik raad aan om het in ieder geval door htmlspecialchars() te halen om hack-aanvallen met XSS te vermijden.

Ook raad ik in-line CSS in je style af, omdat je dit prima in je CSS-stylesheet kan verwerken en derhalve het ook verwarring laat opleveren bij gemengd gebruik. Je kan het eventueel koppelen met een ID of class attribuut of anders met het huidige element.
 
Laatst bewerkt:
$fontVorto is door mij, als potentieel gebruiker, ingevoerd in het eerste (HTML-)invuldocument, dus input van de gebruiker.
Ik heb in mijn "PHP-productieprogramma" twee opties: viewer en edit. Ik gebruik de edit-versie voor W3 Validator, want de viewer-versie kan alleen met muis-schuiven geselecteerd worden (niet met Ctrl-A) en is kennelijk niet bedoeld voor de W3 Validator. Hetzelfde onmogelijke resultaat krijg ik bij gebruik van de externe browser van het "PHP-productieprogramma" (AceHTML Freeware)

De edit-versie heeft volgens W3 Validator de volgende fouten:
Error Line 1236, Column 81: Unescaped '<' not allowed in attributes values
Error Line 1236, Column 81: attributes construct error
Error Line 1236, Column 81: Couldn't find end of Start Tag input line 1235
Hoe ik de value-tekst "door htmlsspecialchars() moet halen" snap ik niet. Naar analogie met een voorbeeld uit W3schools heb ik er van gemaakt:
Code:
value = "<?php $str='Montru tabelon de la lingvoj laŭ tio ĉu ili enprenis la vorton \'$fontVorto\' echo htmlspecialchars($str); ?>"
Maar dat geeft weinig vertrouwen.
 
Laatst bewerkt:
Hoezo denk je dat dit weinig vertrouwen geeft. Heb je al in de html-code gekeken wat er gebeurt als je een stel quotes gebruikt in je tekst-string?

En over je W3-validatie: Om welke website gaat het dan kunnen we even meekijken, ook kan je jouw code wel op Pastebin zetten.
 
Staan hier
Code:
'Montru tabelon de la lingvoj laŭ tio ĉu ili enprenis la vorton \'$fontVorto\'
dan geen text-quotes?
Ik heb, hopelijk op een goede manier mijn pagina tutmondeco.php op pastebin gezet.
Maar met de wijziging, dat ik van een input-submit element een button-submit element heb gemaakt. Dan is er geen probleem meer, want de text met een echo-woord staat dan als gewone HTML-text tussen <button> en </button>.

Wel krijg ik in de testing nog een foutmelding op tutmondeco.php:
SyntaxError: illegal character[Meer info] tutmondeco.php:1:6
Dat is moeilijk zoeken, waar de fout zit!
 
Laatst bewerkt:
Staan hier
Code:
'Montru tabelon de la lingvoj laŭ tio ĉu ili enprenis la vorton \'$fontVorto\'
dan geen text-quotes?
Ik heb, hopelijk op een goede manier mijn pagina tutmondeco.php op pastebin gezet.
En in welke van 3 miljard entries moet ik daar dan zoeken? ;-) Ik wil graag die code zien.

Maar je begrijpt dat PHP-code niet door de validator wordt opgenomen? Je moet de HTML-code doorgeven zoals de browser het binnenkrijgt. Ik weet niet of je dat ook doet, want het is voor nu even kijken in een wazige glazen bol.
 
Laatst bewerkt:
Ik heb in mijn bericht van 10:21 toch al geschreven, welke opties mijn AceHTML-programma mij geeft?
Het is deels HTML-code, deels PHP-code. Ik neem aan, dat de browser dat binnen krijgt: 3 miljard entries;-).
Als ik dan een foutmelding op regel 1 krijg, dan weet ik niet op welke regel dat precies slaat, want de eerste negen regels zijn:
Code:
<?php ini_set('display_errors',1);
error_reporting(E_ALL&~E_NOTICE);
$EspVorto = $_POST['EspVorto'];
$fontVorto = $_POST['fontVorto'];
$pI = $_POST['portugalaItala'];	
?>
<!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">
<!-- tutmondeco.php estas pagho de la interreta versio de la programo "Kiom internacia estas tiu vorto?", kiu mastrumas la alvokadon de Google Translate. Ghi povas esti alvokata el index.html, intereuropeco.php kaj Zamenhofa.php (lasta nur en la Esperanta versio). Ghi plusendas al index.php au raporto.php. -->
De foutmelding luidt:
SyntaxError: illegal character[Meer info] tutmondeco.php:1:6
terwijl de debugger als regel 1 aanwijst:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ik heb al heel wat gegoogled om die foutmelding over een wellicht onzichtbaar teken te berijpen, inclusief wat beweerd wordt over een BOM (byte-order mark).
 
Laatst bewerkt:
Ik vroeg je de HTML-code op Pastebin zetten, wat is de URL naar die code dan? Die heb ik nog niet gezien.
Snap je de bedoeling van Pastebin overigens wel?

De W3-validator gaat alleen over HTML-code. Dus ik hoop dat je de PHP-code niet meeneemt!!
De eerste regel is gewoon de doctype, en daar is niks mis mee. Hoewel ik liever HTML5 zou aanraden:

Code:
<!DOCTYPE html>
 
Laatst bewerkt:
De URL van mijn document in Pastebin is https://pastebin.com/z1UUGAcZ.
De eerste regel is gewoon de doctype, en daar is niks mis mee.
Des te meer snap ik niet de foutmelding, die ik via Webontwikkelaar --> webconsole --> debugger ontvang (en niet via W3-validator).
Overigens verschijnt die foutmelding "illegal character" op het moment, dat ik in het document tutmondeco.php de button
Code:
<button type="button" onclick="style=\'background-color: \' + klor; kreuGTfenro('af');">Muspremu ĉi tie por la afrikansa (af)</button>
aanklik en dat moet wel op een of andere manier te maken hebben met de in tutmondeco.php voorgaande code-overgang van PHP naar HTML:
Code:
        <tr>
            <td align="right"><button type="button" onclick="style=\'background-color: \' + klor; kreuGTfenro(\'uk\');">
                Muspremu ĉi tie por <font color="#FF00FF">la ukraina</font> (uk)</button >
			</td>
            <td align="center">
                <input type="radio" name="uk" value="1" onclick="marku(\'uk\',\'jes\')" />jes 
                <input type="radio" name="uk" value="0" onclick="marku(\'uk\',\'ne\')" />ne 
                <input type="radio" name="uk" value="-1" onclick="return forigu(\'uk\')" />nedifinebla
            </td>
        </tr>
	</table>
    ';
}
?>
<table class="mllrgh">
<tr>
    <td align="center" colspan="2">
	    <b><font size="-1" color="#050000">ekstereŭropaj lingvoj</font></b>
	</td>
</tr>
<tr>
    <td align="right">
        <button type="button" onclick="style=\'background-color: \' + klor; kreuGTfenro('af');">Muspremu ĉi tie por la afrikansa (af)</button>
    </td>
want alle voorgaande via PHP geprinte buttons van het type
Code:
<button type="button" onclick="style=\'background-color: \' + klor; kreuGTfenro(\'sv\');">
                Muspremu ĉi tie por la sveda (sv)</button >
doen het wel.
Ik voeg maar even toe: Sorry voor het Esperanto. "Vertalen" van zo'n lap code is ondoenlijk.
Overigens - mocht je daar behoefte aan hebben :mad: - de volledige app is te vinden op www.esp-evoluo.org (voor Esperanto-kenners begrijpelijk).
 
Laatst bewerkt:
Dat is PHP op de Pastebin. Zet eens je HTML-source zoals je browser die binnenkrijgt op die pastebin. Dan kunnen we kijken hoe deze valideert.

Zie ook mijn vorige bericht!!!

Verder kan je JavaScript prima in een js-fie worden geplaatst.
 
Laatst bewerkt:
Een commentaarblok hoort NOOIT bovenaan te staan. De doctype hoort helemaal bovenaan te staan.
Maar je kan die ook natuurlijk omzetten naar een PHP-commentaarblok, dan is het niet in je code te zien.

Hoe je site-architectuur is gebouwd is immers niet echt van toepassing voor je bezoekers, dus waarom zou je dat uitgebreid in een Javascript commentaarblok zetten?

maar wat is de reden dat je nog XHTML 1.0 gebruikt, en geen HTML5?
 
Het commentaar is uiteraard alleen voor mezelf, maar ik kan dat natuurlijk ergens anders neerzetten of in een andere vorm.
Met deze app ben ik zo'n vijf jaar geleden begonnen, heb hem een paar jaar laten liggen, vanwege te weinig belangstelling en bugs en besloot een half jaar geleden hem te "renoveren".
Of het omzetten in HTML5 veel werk kost weet ik niet, maar heb dat totnutoe vermeden.
Tot zover weer bedankt voor het commentaar.
 
Het commentaar is voor je zelf, maar waarom zou je het via client-side JavaScript meegeven?
Gebruik dan gewoon PHP, dat wordt immers niet verwerkt of geparsed door de browser.

Verder is HTML5 vrij gebruikelijk, en kent het meer mogelijkheden dan XHTML.

Verder als je toch bezig bent met reviseren, en het is zeker niet aanvallend bedoeld: Respecteer onze wensen en gebruik gangbare Engelse of Nederlandse taal.
Hoe langer je je website nog aan deze exotische taal blijft vasthangen, hoe meer pijn het zal doen als je ooit overstag wilt gaan.
Zie dit als een warme aanbeveling, maar mij zal je er niet meer over horen, beloof ik je.
 
Laatst bewerkt:
Jammer, dat men zo weinig weet van Esperanto. Eenmalig en voor het laatst.

Ik snap niet, hoe je kunt vragen, waarom ik aan die "exotische" taal vasthoud. Ik spreek en droom in die taal, praat met mijn vrouw uit Servië voortdurend en uitsluitend Esperanto. Het verreweg grootste deel van de wereldbevolking kan zich niet in een normale conversatie in het Engels uitdrukken.
Ik werk voor het oerkleine gedeelte van de mensheid, dat als het ware een apart volk vormt en zijn eigen cultuur, literatuur, popmuziek, films, toneelstukken, enz. heeft en waar meer dan duizend Esperanto-gezinnen deel van uitmaken (waarvan dus de kinderen in Esperanto opgroeien).
Dat kun je "exotisch" noemen, maar het is de enige neutrale taal zonder gebiedsambitie. Dus, hopelijk, na mijn dood, zal mijn app nog bestaan, net zoals Duolingo en Amikumu bestaan en enorme vooruitgang maken (1,5 miljoen ingeschrevenen). Moet ik in mijn app, die voor dit "volk" bedoeld is, de eigen taal veronachtzamen? Dat begrijp ik niet.
Overigens heb ik naast de Esperanto-versie ook de Engelse versie, die ik zal afmaken, wanneer de Esperanto-versie perfect werkt.
Overigens zal ik aan alle aanbevelingen voldoen: qua commentaar en qua HTML-versie.
 
Laatst bewerkt:
Er zijn inmiddels al door zowel Bron als mijzelf een hoop argumenten aangedragen.

Misschien dat hier een communicatiefout tussen ons zit, maar het gaat om de schrijfwijze van je scripts, niet de taal die je de bezoekers voorschotelt.
Met variabelen, functienamen en commentaar in Esperanto help je andere helpende programmeurs er niet mee zich door je script te moeten worstelen.
Het gebruik van een Engelse of Nederlandse taal heeft verder geen invloed op je je bezoekers die de Esperanto-taal gewend zijn. Zij hebben niks met de technische werking van je applicatie te maken.

Gebruik van de Engelse taal in softwarearchitectuur is overigens een standaard bij de technische werking van vele sites. Ik kan zat Nederlandse sites waar zelfs veel buitenlanders werken uit alle hoeken en gaten uit de wereld, en die gebruiken gewoon Engelse variabelen, functienamen, commentaar etc. Ook in mijn eigen CMS-systeem die ik heb gebruik wordt veelvuldig Engels gebruikt terwijl ik een Nederlandse site beheer.

Als jij taal in Esperanto aan je bezoekers wilt voorschotelen, dan is dat prima maar onthoud dat je ons als programmeurs in ieder geval totaal geen plezier doen met variabelen, functienamen en commentaar in Esperanto.

Om even voort te borduren hierop: Je kan zelf besluiten om aparte taalbestanden te maken, om zo je bezoekers meerdere talen te laten kiezen, waarbij je meerdere bestanden hebt met een lijst met vertalingen.

Nu kan je nog de knop om zetten, straks wordt het alleen maar lastiger als je hulp zoekt met je script. Programmeurs zijn terughoudend om te helpen met een script wat ze niet eenvoudig kunnen lezen en kunnen intepreteren.

Conclusie: Dat je Engels gebruikt voor de werking van je applicatie is NIET van toepassing voor je bezoekers, maar WEL voor (helpende) programmeurs.

Ik hoop dat je het nu begrijpt!
 
Laatst bewerkt:
AceHTML (van Visicom Media) was een tegenhanger van MS Frontpage.
De Pro versie heeft Windows Vista nog weten te bereiken, de Free versie is nog ouder.
Dit programma is verouderd en voldoet niet aan de huidige website talen.
Deze tool is alleen nog te downloaden op "verdachte" websites en dat is zeer af te raden.

Als je een gelijkende tool wilt hebben die wel wordt onderhouden dan is R J Texted (klik) misschien iets waarmee je verder kan. Heb je een recente Windows, download dan de 64 bits versie.
 
Laatst bewerkt:
Ik zag je code met heel veel <?php print '...' ?>
Een tip om je code beter leesbaar te maken

Deze code:
Code:
<?php
print '
    <input type="hidden" name="EspVorto" value="'.$EspVorto.'" />
    <input type="hidden" name="fontVorto" value="'.$fontVorto.'" />
	....
';
?>

leest zo veel prettiger
Code:
<input type="hidden" name="EspVorto" value="<?= $EspVorto ?>" />
<input type="hidden" name="fontVorto" value="<?= $fontVorto ?>" />
....

<?= $variabele ?> is hetzelfde als <?php echo $variabele ?>
Meer info hierover op http://php.net/manual/en/function.echo.php

Voordeel van echo (tov print) is dat je makkelijker meerdere teksten kan opgeven, bijv:
echo 'Beste ', $voornaam, ' ', $achternaam;

Suc6. Have fun.
 
Laatst bewerkt:
Ik vind het volslagen onzin wat je schrijft.
Je suggereert dingen die ik helemaal niet doe: commentaar in het Esperanto schrijven en zelfs onbegrijpelijke variable namen gebruiken. De enige keer, dat een programmeur misschien even moest nadenken is geweest met de namen lingvonbro en lingvonomo. Verder heb ik altijd uiteindelijk zelf de oplossing van mijn problemen gevonden.
Wat ik onaangenaam vind: dat door jou of die andere "expert" Esperanto in een hoek gezet wordt waar het niet thuishoort. Wat is er "exotisch" aan Esperanto?
Ik heb geprobeerd uit te leggen, hoe belangrijk en "gewoon" Esperanto is, maar je reageert daar niet op. Daar ligt de communicatiefout.
Wat je zorg betreft, dat helpers minder geneigd zouden zijn een probleem met een niet direct begrijpelijke variabele naam op te lossen, daar geloof ik helemaal niet in en hoeft jouw zorg niet te zijn. Als ik in Stackoverflow of Helpmij kijk, zie ik ook tal van afkortingen, die ik niet direct begrijp. Is dat dan gewoon?
Ik zal mijn vragen blijven stellen, want de praktijk is, dat - althans in mijn geval - het stellen van de vraag, vanwege het nauwkeurig moeten formuleren, de helft van het antwoord is.
 
Ik vind het volslagen onzin wat je schrijft.
Je suggereert dingen die ik helemaal niet doe: commentaar in het Esperanto schrijven en zelfs onbegrijpelijke variabelen namen gebruiken.
De enige keer, dat een programmeur misschien even moest nadenken is geweest met de namen lingvonbro en lingvonomo.
Opmerkelijke aanname, want ik zie toch echt een hoop variabele zoals:
$EspVorto = $_POST['EspVorto'];
$fontVorto = $_POST['fontVorto'];
$pI = $_POST['portugalaItala'];

Verder is er ook nog een hele alinea aan Esperantaans commentaar die ik niet kan lezen. Hoe kan ik dan feedback over je code geven?
Moet ik dat vertalen, speciaal voor jou? Je bent hier op een Nederlands forum, dus het lijkt me zeker niet onredelijk dat je dan ook Nederlandse of Engelse (standaard in de programmeurswereld) verduidelijking in je script geeft. Als ik naar Duitsland ga, praat ik ook de taal die ze daar praten, dus Duits (of Engels, wat de belangrijke wereldtaal is). Dus waarom zou je ons Esperanto willen voorschotelen hier in Nederland?
Beetje vreemd, nietwaar?

Verder heb ik altijd uiteindelijk zelf de oplossing van mijn problemen gevonden.
Wat ik onaangenaam vind: dat door jou of die andere "expert" Esperanto in een hoek gezet wordt waar het niet thuishoort. Wat is er "exotisch" aan Esperanto?
Ik heb nooit gezegd of beweerd dat Esperanto een slechte taal is, en dat ik het niet aanvaard. Ik heb alleen gezegd dat ik het niet begrijp. Dus helpen met je code wordt dan lastig als we het niet begrijpen. Esperanto zal vast een mooie taal zijn maar je moet wel begrijpen dat het voor ons exotisch is, omdat het lastig te begrijpen is.
Ik heb geprobeerd uit te leggen, hoe belangrijk en "gewoon" Esperanto is, maar je reageert daar niet op. Daar ligt de communicatiefout.
Wat je zorg betreft, dat helpers minder geneigd zouden zijn een probleem met een niet direct begrijpelijke variabele naam op te lossen, daar geloof ik helemaal niet in en hoeft jouw zorg niet te zijn. Als ik in Stackoverflow of Helpmij kijk, zie ik ook tal van afkortingen, die ik niet direct begrijp. Is dat dan gewoon?
Voor ons in Nederland is Esperanto niet gewoon. Op basisscholen wordt er geen taalles in gegeven. Blijkbaar heb jij andere verwachtingen helaas.
En over StackOverflow en dit forum:
Dat zal wel vaktaal of jargon zijn die je gezien hebt, en dat is voor programmeurs prima te begrijpen. Ik zie zelden een onbekende buitenlandse of exotische taal daar voorbij komen. En als dat gebeurd dan volgt er hoogstwaarschijnlijk snel de nodige opbouwende kritiek die ook hier dus wordt gegeven. En die kritiek is dus terecht.
Ik zal mijn vragen blijven stellen, want de praktijk is, dat - althans in mijn geval - het stellen van de vraag, vanwege het nauwkeurig moeten formuleren, de helft van het antwoord is.
You're welcome. Maar zorg er dan wel voor dat we dan je code goed kunnen begrijpen. Anders lijkt me dat je vraag beter op zijn plaats is op een Esperataans forum ;).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan