Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Merkillisin ongelma ikinä - kommentoiti katkaisee php tiedoston

Paulus M [24.02.2011 16:54:43]

#

Eli keksikääpä mistä johtuu:

Minulla on php tiedosto: viewWork.php, jossa on koodi:

...

	echo 'testi1';
	echo 'testi2';
	echo 'testi3';
	echo 'testi4';
	//echo 'testi5';
	echo 'testi6';
	echo 'testi7';
	echo 'testi8';
	echo 'testi9';
...

koodi tulostaa:
testi1
testi2
testi3
testi4

- Tiedosto on talletettu muodossa UTF-8 ilman BOM:ia.
- Notepadilla näytä kaikki erikoismerkit, ei löydy mitään poikkeavaa kommentointi kohdassa //echo 'testi5'; eikä muuallakaan.
- Muut samalla tiedostomuodolla toimivat filet toimii palvelimella vaikka kommentointeja löytyy paljon.
- Ongelma esiintyy sekä IE:llä, että Firefoxilla, eli se on palvelin puolen "bugi".


En ole eläissäni törmännyt moiseen...

EDIT: jos jotain kiinnostaa nähdä koko sisältö, tässä
URL: http://portfolio.vallankumous.com/portfolio/index.php?r=site/viewWork&id=2

plus viewWork.php koodi:

<?php $this->pageTitle=Yii::app()->name; ?>
<br>
<br>
<br>
<br>
<table style="width: 1050px;">
<tr>

<td width="245" style="vertical-align: top;">
<?php

	echo '<h2>TYÖT</h2>';
	echo $workModel->name.'<br>';

	echo '<br>';

	echo'<h2>ASIAKAS</h2>';
	echo '<a href="'.Yii::app()->createUrl('site/index', array('term'=>$workModel->client->name)).'">';
	echo $workModel->client->name.'<br>';
	echo '</a>';

	echo '<br>';

	echo'<h2>TEKIJÄT</h2>';
	echo '<ul style="padding-left: 20px;">';
	foreach($workRelations as $i => $relation)
	{
		echo '<li>';
		echo '<a href="'.Yii::app()->createUrl('site/viewProfile', array('id'=>$relation->idPerson)).'">';
		echo $relation->person->firstName." ".$relation->person->surName;
		echo '</a>';
		echo ", ".$relation->duty;
		echo '</li>';
	}
	echo '</ul>';
	echo '<br>';

	echo'<h2>TAGIT</h2>';
	$separator = "";
	foreach($tags as $i => $tag)
	{
		echo $separator;
		echo '<a href="'.Yii::app()->createUrl('site/index', array('term'=>$tag->tagValue->value)).'">';
		echo $tag->tagValue->value;
		echo '</a>';
		$separator = ", ";
	}
	echo '<br><br>';
	echo '<a href="'.Yii::app()->createUrl('site/createWork', array('id'=>$workModel->idWork)).'">';
	echo '<span style="text-decoration: underline; color: #99cb00;">Muokkaa työtä</span>';
	echo '</a>';

echo '</td>';
echo '<td style="width: 800px;vertical-align: top;">';
	$pathDireccion = Yii::app()->storage->uploadedImagesPath;
	$path;

	if($workModel->idPhoto !="0" || $workModel->idPhoto != NULL)
	{
		$path = Yii::app()->storage->getPath($workModel->idPhoto, "view");

	}
	echo 'testi2';
	echo Yii::app()->request->baseUrl.$pathDireccion.$path."jotain";
	echo '<img src="'.Yii::app()->request->baseUrl.$pathDireccion.$path.'" />';


	echo 'testi1';
	echo 'testi2';
	echo 'testi3';
	echo 'testi4';
	//echo 'testi5';
	echo 'testi6';
	echo 'testi7';
	echo 'testi8';
	echo 'testi9';
	echo 'testi10';
	echo 'testi3';
	echo '<br><br>';
	echo '<p>'.$workModel->description.'</p>';
	echo 'jee';

?>

</td>

</tr>
</table>

Metabolix [24.02.2011 16:57:31]

#

Oletko katsonut, tuleeko lokiin jokin virheilmoitus? Laita PHP:n asetuksista taas kerran kaikki ilmoitukset päälle (E_ALL | E_STRICT). Ei tuosta voi muuta sanoa, laita koko tiedosto (ja kaikki muukin siihen liittyvä) johonkin ladattavaksi.

Paulus M [24.02.2011 17:23:30]

#

näkyykö tällä suoraan kaikki virheilmoitukset selaimessa?

<?php
error_reporting(E_ALL | E_STRICT);
?>

Ainakin sillain sai jotain virheilmoituksia, jotka korjasin kuitenkaan vaikuttamatta asiaan.

Pahus ku en voi pistää kaikkia tiedostoja, koska tämä verkkosovellus käyttää
Yii frameworkkiä ja ei sitä oikein ota selville missä kaikkialla käydään
ku paikkoja on niin paljon.

Metabolix [24.02.2011 17:26:26]

#

PHP:n mahdollista kaatumista et saa selaimeen millään asetuksilla, vaan se pitää tarkistaa palvelimen lokitiedostosta.

Etkö nyt yhtään osaisi muokkailla tuota koodia ja tutkia, missä kohti virhe oikeasti on? Luultavasti voit jäljittää virheen ihan tavallisilla menetelmillä kuten yksittäisten rivien poistolla ja koodin keskeyttämisellä eri kohdissa.

flush();
trigger_error("Tänne päästiin!", E_USER_ERROR);

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta