functie uit tutorial werkt niet

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Ik ben net begonnen met php en ben al zover dat ik een formulier kan laten controleren en, bij juist invullen, een dankbericht weergeef met de gegevens van het formulier eronder.
Er is echter een functie die niet werkt, en die heb ik letterlijk overgenomen uit de tutorial. Dit is hem :

PHP:
function html2specchars($str) {
	$trans_table = array_flip(get_html_translation_table(HTML_ENTITIES));
	return strtr($str, $trans_table);
};
Ik heb ook geprobeerd zonder de array_flip() en met htmlspecialchars() ipv get_html_translation_table(), maar geen enkele werkt.
Wat doe ik fout?

Probleempagina
Probleempagina in txt

Greetz : Jer:cool:en.
 
Je hebt de functie wel gedeclareerd maar je gebruikt hem nergens...

Als ik het zo bekijk dan moet je hem op dit stukje gebruiken
PHP:
</td><td>
  <?php echo $smessage ?>
</td></tr>
Die wordt dus
PHP:
</td><td>
  <?php echo html2specchars($smessage); ?>
</td></tr>

Werken de rest van de dingen wel dan? Want je hoort na een PHP-command af te sluiten met een punt-komma ( ; )
Ik vraag mij daarom af of dit wel werkt:
PHP:
</td><td>
  <?php echo $sname ?>
</td></tr>
omdat er volgens mij nog een ; achter $sname hoort...
 
Je hebt gelijk, Tha Devil, ik was nog niet op het einde van de tutorial, maar wilde een tussenresultaat en had daar niet op gelet. Thx :thumb:
Dat van die $sname werkt wel, maar ik heb er voor de zekerheid, zoals je aanraadde, toch maar een ; achter gezet.

Greetz : Jer:cool:en.
 
Laatst bewerkt:
Eigenaardig, werkt nog niet. :o
Wat doe ik nu te weinig of verkeerd? :confused:
Zelfde links bevatten de aangepaste code. :)

Greetz : Jer:cool:en.
 
Weet je zeker dat het aangepaste bestanden zijn?
PHP:
if ($bformposted && !$bfaultfound) {
?>
	<table width="100%" height="90%">
		<tr valign="middle"><td align="center">
			<table>
				<tr><td colspan='2' align='center'>
					<h3>Dank u wel. Uw e-mail is met succes verstuurd.</h3>
				</td></tr>
				<tr><td colspan='2' align="center">
					De mail werd verzonden met de volgende inhoud :
				</td></tr>
				<tr><td>
					Naam : 
				</td><td>
					<?php echo $sname ?>
				</td></tr>
				<tr><td>
					Uw e-mail :
				</td><td>
					<?php echo $semail ?>
				</td></tr>
				<tr valign="top"><td>
					Uw bericht :
				</td><td>
					<?php echo $smessage ?>
				</td></tr>
			</table>
		</td></tr>
	</table>
<?php
}
Daar staat nog steeds die functie niet bij :confused:
 
Ik heb het nog eens gecontroleerd, en ja hoor, het zijn de aangepaste bestanden. Ik heb ze zelf eens gedownload en de bron bekeken. :confused:

Greetz : Jer:cool:en.
 
Hmm het text bestand ziet er niet erg gewijzigd uit :(

Daar staat immers de PHP-code in, die kan ik uit de uiteindelijke pagina niet halen omdat PHP server-side is :confused:
 
Even verwijderd en weer online gezet.

Greetz : Jer:cool:en.
 
Ik weet niet of het zo hoort maar ik zet altijd mijn functies bovenaan een pagina (in iedergeval voor de stukken waarin ik hem gebruik) wellicht helpt dat hier ook...

Probeer anders een gewoon een PHP-bestand met
PHP:
<?php
function html2specchars($str) {
  $trans_table = array_flip(get_html_translation_table(HTML_ENTITIES));
  return strtr($str, $trans_table);
};

$string = "Hallo & <Frau> & Kr&auml;mer";
echo html2specchars($string);
?>
(Die tekst uit de string komt vanaf de php.net pagina ;))

Zo kun je kijken of er inderdaad wel iets gebeurd.
 
Ben daar ook gepasseerd. ;)

Ik heb geprobeerd zoals je zei, maar nog altijd niets. Ik krijg het volgende te zien op de pagina :
Hallo & & Krämer

Ook niet echt wat het zou moeten zijn hé. :p

Doe ik het echter zo :

PHP:
<?php 
function html2specchars($str) { 
  $trans_table = get_html_translation_table(HTML_ENTITIES); 
  return strtr($str, $trans_table); 
}; 

$string = "Hallo &amp; &lt;Frau&gt; &amp; Kr&auml;mer"; 
echo html2specchars($string);
?>

Dan geeft ie $string weer zoals die in de variabele gedefinieerd wordt.

Greetz : Jer:cool:en.
 
Yes, ik heb het probleem gevonden door te proberen met htmlspecialchars().

Het probleem zat hem in het feit dat er een fout in de tutorial zit, namelijk dat de array_flip() weg moest.

Nu werkt het perfect.

Thx om mee te denken en tot mijn, of minderwaarschijnlijk jouw, volgende probleem.

Greetz : Jer:cool:en.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan