Archief - PHP: Problemen met ' of " binnen een echo

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ozl

Legacy Member
Hey,

Ik heb een stukje html code die binnen een echo '_hier code_' staat. Nu staan er binnen mijn html code ook stukjes waar het enkel aanhalinsteken ' gebruikt wordt. Hoe los ik dat nu op?

Dit is de code buiten de echo:

HTML:
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/bold_ic.jpg" width="24" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/italic_ic.jpg" width="19" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/underline_ic.jpg" width="23" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/list_ic.jpg" width="27" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/quote_ic.jpg" width="42" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/URL_ic.jpg" width="30" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/tekstkleur_ic.jpg" width="68" height="17"></td>

Het gaat hem dus over 'pointer' en '' etc

Als ik die code nu binnen de echo steek weet je al wat er gebeurt:

PHP:
echo'<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/bold_ic.jpg" width="24" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/italic_ic.jpg" width="19" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/underline_ic.jpg" width="23" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/list_ic.jpg" width="27" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/quote_ic.jpg" width="42" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/URL_ic.jpg" width="30" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/tekstkleur_ic.jpg" width="68" height="17"></td>'

na sendtext(message, ..) komt er tussen die ' ' een bbcode maar dat wordt heir niet getoond. Dus die pointer zou niet letterlijk mogen geecho'd worden maar het JS zou wel nog moeten blijven werken. Ik heb al vanalles geprobeerd met \' of " etc maar kben ten einde raad.

Bram

Legacy Member
echo "blabblahblahbl'blahblah'";

andere "'s escape je met \

dus probeer eens
PHP:
echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '')\" src=\"images/bold_ic.jpg\" width=\"24\" height=\"17\">
<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '')\" src=\"images/italic_ic.jpg\" width=\"19\" height=\"17\">
<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '')\" src=\"images/underline_ic.jpg\" width=\"23\" height=\"17\">
<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '')\" src=\"images/list_ic.jpg\" width=\"27\" height=\"17\">
<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '')\" src=\"images/quote_ic.jpg\" width=\"42\" height=\"17\">
<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '')\" src=\"images/URL_ic.jpg\" width=\"30\" height=\"17\">
<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '')\" src=\"images/tekstkleur_ic.jpg\" width=\"68\" height=\"17\"></td>";
Nu anderzijds, mss ist gewoon gemakkelijker om heel u php te escapen? Dus:

PHP:
if(condition) { 
?>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/bold_ic.jpg" width="24" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/italic_ic.jpg" width="19" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/underline_ic.jpg" width="23" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/list_ic.jpg" width="27" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/quote_ic.jpg" width="42" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/URL_ic.jpg" width="30" height="17">
<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/tekstkleur_ic.jpg" width="68" height="17"></td>
<?php
}
Hier gaak er natuurlijk vanuit da uw code binnen een if staat ofzo, gewoon een kwestie van tonen hoe het moet.

ozl

Legacy Member
Bij de eerste methode:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home2/leerling/public_html/edit_news.php on line 239

Bij de tweede hetzelfde maar ipv T_STRING => T_IF

En het staat binnen een if.

Toch al bedankt voor de snelle reactie.

Fraggie

Legacy Member
Post je anders een de volledige pagina zoals nu de error's voorkomen?
Misschien heb je iets te weinig gekopieerd of staat het op de verkeerde plaats?

Bram

Legacy Member
coebeest zei:
Bij de eerste methode:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home2/leerling/public_html/edit_news.php on line 239

Bij de tweede hetzelfde maar ipv T_STRING => T_IF

En het staat binnen een if.

Toch al bedankt voor de snelle reactie.
kijk eens op lijn 238 ofzo... toevallig geen ; vergeten?

ozl

Legacy Member
Lijn 238 is <td>

PHP:
<?php  
}
} else {
$query = "SELECT title, author, post, id FROM news_posts WHERE id=$id";
$result = mysql_query($query);
$num = mysql_num_rows($result);
$row = mysql_fetch_array ($result, MYSQL_NUM);
 
$title = $row['0'];
$name = $row['1'];
$message = $row['2'];
 
if ($num == 1) {
echo '<table border="0" cellpadding="0" cellspacing="1" width="700" align="center">
<form action="?id=edit_news&num='.$id.'" method="post">
    <tr>
      <td><span class="style5">Pas een nieuwsbericht aan </span><br />
      <br /></td>
    </tr>
    <tr>
      <td><span class="style7">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Titel:</span></td>
    </tr>
    <tr>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="input" name="title" size="25" maxlength="60" value="'.$title.'" /><br />
      <br /></td>
    </tr>
    <tr>
      <td><span class="style7">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Naam:</span></td>
    </tr>
    <tr>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="input" name="name" size="25" maxlength="35" value="'.$name.'" /><br />
      <br /></td>
    </tr>
    <tr>
      <td><span class="style7">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bericht:</span></td>
    </tr>
    <tr>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '[b][/b]')\" src=\"images/bold_ic.jpg\" width=\"24\" height=\"17\"><img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '[i][/i]')\" src=\"images/italic_ic.jpg\" width=\"19\" height=\"17\"><img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '[u][/u]')\" src=\"images/underline_ic.jpg\" width=\"23\" height=\"17\"><img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '[list][/list]')\" src=\"images/list_ic.jpg\" width=\"27\" height=\"17\"><img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '[quote][/quote]')\" src=\"images/quote_ic.jpg\" width=\"42\" height=\"17\"><img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '[URL][/URL]')\" src=\"images/URL_ic.jpg\" width=\"30\" height=\"17\"><img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message, '[color][/color]')\" src=\"images/tekstkleur_ic.jpg\" width=\"68\" height=\"17\"></td>
    </tr>
    <tr>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<textarea rows="10" cols="75" name="message">'.$message.'</textarea><br />
      <br /></td>
    </tr>
    <tr>
      <td>
      <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="submit" value="Edit" /></p>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="hidden" name="submitted" value="TRUE" /></p>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="hidden" name="id" value="'.$id.'" />
      </td>
    </tr>
	</form>
  </table>';
} else {
echo 'News post could not be edited, please try again.';
}
}
?>

Tyfius

Legacy Member
Code:
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style=\"margin: 1px; margin-left: 0px\" onMouseover=\"this.style.cursor='pointer'\" onClick=\"sendtext(message
Daar zijt ge dus redelijk had verkeerdelijke ' en " aan het gebruiken.

Tyfius

Legacy Member
Ja, ge begint uw echo met een ' teken, en dan halverwege gaat ge " escapen (wat niet nodig is) en gaat ge ' zonder meer gebruiken. Ge ziet dat toch in die color highlight dat daar iets niet klopt...

Ge moet dus op die lijn de " zo laten en het ' teken escapen.

ozl

Legacy Member
aja eigenlijk wel logisch, de pagina laadt nu wel maar mijn javascriptje werkt niet. Op een andere pagina waar het script niet in een echo staat werkt het wel. Het gaat dus om dit JS:

Code:
function sendtext(e, text) {
    e.value += text
}

in combinatie met de code hierboven

orez

Legacy Member
coebeest zei:
Lijn 238 is <td>

PHP:
<?php  
}
} else {
$query = "SELECT title, author, post, id FROM news_posts WHERE id=$id";
$result = mysql_query($query);
$num = mysql_num_rows($result);
$row = mysql_fetch_array ($result, MYSQL_NUM);
 
$title = $row['0'];
$name = $row['1'];
$message = $row['2'];
 
if ($num == 1) {
?>
<table border="0" cellpadding="0" cellspacing="1" width="700" align="center">
<form action="?id=edit_news&num=<?php echo $id; ?>" method="post">
    <tr>
      <td><span class="style5">Pas een nieuwsbericht aan </span><br />
      <br /></td>
    </tr>
    <tr>
      <td><span class="style7">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Titel:</span></td>
    </tr>
    <tr>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="input" name="title" size="25" maxlength="60" value="<?php echo $title; ?>" /><br />
      <br /></td>
    </tr>
    <tr>
      <td><span class="style7">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Naam:</span></td>
    </tr>
    <tr>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="input" name="name" size="25" maxlength="35" value="<?php echo $name; ?>" /><br />
      <br /></td>
    </tr>
    <tr>
      <td><span class="style7">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bericht:</span></td>
    </tr>
    <tr>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '[b][/b]')" src="images/bold_ic.jpg" width="24" height="17"><img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '[i][/i]')" src="images/italic_ic.jpg" width="19" height="17"><img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '[u][/u]')" src="images/underline_ic.jpg" width="23" height="17"><img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '[list][/list]')" src="images/list_ic.jpg" width="27" height="17"><img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '')" src="images/quote_ic.jpg" width="42" height="17"><img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '[URL][/URL]')" src="images/URL_ic.jpg" width="30" height="17"><img style="margin: 1px; margin-left: 0px" onMouseover="this.style.cursor='pointer'" onClick="sendtext(message, '[color][/color]')" src="images/tekstkleur_ic.jpg" width="68" height="17"></td>
    </tr>
    <tr>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<textarea rows="10" cols="75" name="message"><?php echo $message; ?></textarea><br />
      <br /></td>
    </tr>
    <tr>
      <td>
      <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="submit" value="Edit" /></p>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="hidden" name="submitted" value="TRUE" /></p>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="hidden" name="id" value="<?php echo $id; ?>" />
      </td>
    </tr>
	</form>
  </table>
<?php
} else {
echo 'News post could not be edited, please try again.';
}
}
?>

Ge moet uw volledige HTML toch niet laten parsen??? dat is NIET de manier !! Kijk naar mijn aanpassing!, toch veel eenvoudiger niet? nog altijd code highlighting op uw HTML, en veel sneller te parsen !!! Ge belast uw php hier minder mee.

Alsook... (and no offence fo thiz) Maar ge zijt bezig, ge kan nog maar half half php, en half half html ... laat ons zeggen dat uw html mager is. Wat doen al die CSS bepalingen in uw javascript?? Wat doen al de &nbsp;'s daar? Wat in godsnaam doet die tabel daar?

Leer eerst kruipen met xhtml te leren, dan stappen door CSS te leren, en dan pas lopen door PHP te leren. Op deze manier ben je echt niet goed bezig, en zal je het nooit op een hoog niveau onder de knie krijgen. Sorry dat ik het zo moet zeggen, maar tis beter om eerlijk te zijn hé.

Verdiep u elke male in 1 onderdeel, en combineer geen 4 onderdelen als je infeite nog niets beheerst.

ozl

Legacy Member
orez zei:
Ge moet uw volledige HTML toch niet laten parsen??? dat is NIET de manier !! Kijk naar mijn aanpassing!, toch veel eenvoudiger niet? nog altijd code highlighting op uw HTML, en veel sneller te parsen !!! Ge belast uw php hier minder mee.

Alsook... (and no offence fo thiz) Maar ge zijt bezig, ge kan nog maar half half php, en half half html ... laat ons zeggen dat uw html mager is. Wat doen al die CSS bepalingen in uw javascript?? Wat doen al de &nbsp;'s daar? Wat in godsnaam doet die tabel daar?

Leer eerst kruipen met xhtml te leren, dan stappen door CSS te leren, en dan pas lopen door PHP te leren. Op deze manier ben je echt niet goed bezig, en zal je het nooit op een hoog niveau onder de knie krijgen. Sorry dat ik het zo moet zeggen, maar tis beter om eerlijk te zijn hé.

Verdiep u elke male in 1 onderdeel, en combineer geen 4 onderdelen als je infeite nog niets beheerst.

Bedankt voor mijn code aan te passen.

En ik ben me er zeker van bewust dat mijn code heel zwak is en ik wil dit ook verbeteren. CSS bepaling in mijn javascript? Ik weet niet wat je hier met bedoelt. De classes die ik gebruik? De &nbsp;'s gebruik ik om mijn tekst een beetje op te schuiven anders staat deze tegen de rand en ik werk constant met tabellen om gegevens in te zetten. Ik vind het gemakkelijker om zo alles ordelijk te krijgen. Ik had ook wel al een vermoeden dat dit niet de juiste manier is maar ik heb het nooit anders gedaan. Ik heb hier ook ergens gelezen dat de pagina die photoshop maakt tijdens het slicen een volledige verkeerde manier is om daarin de rest van je template te coderen? Hoe werkt dit dan anders?

Voor mijn volgende site ga ik echt eens van 0 beginnen met html en css aangezien ik er echt wel beter in wil worden. PHP ben ik trouwens nog maar 3 weken mee bezig en het moet allemaal rap gebeuren dus is het gewoon prutsen en veelal zonder te weten wat ik echt doe.

Zulke negatieve kritiek is natuurlijk niet altijd leuk maar ge hebt wel gelijk dusja :)

passero

Legacy Member
die &nbsp; kan je gemakkelijk laten vallen door aan u TD's een klasse mee te geven:

<td class="inspringen">


en in uw css:
td.inspringen
{
padding-left: 10px;
}

ozl

Legacy Member
Als ik nu de code zoals orez deze aangepast heeft gebruikt werkt het nog niet. Ik zou denken dat het eerder een JS probleem is?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan