J'ai un simple dialogue modal que j'ai développé sur mon propre serveur linux, exécutant php 5.3. Le script (illustré ci-dessous) fonctionne correctement sur mon serveur. Cependant, je l'ai déplacé sur le serveur linux de mon client et au lieu de faire écho au texte/html qu'il est censé faire, il renvoie tout le code php réel du caractère> (supérieur à). Est-ce que quelqu'un sait pourquoi cela ferait écho au code réel? Y a-t-il un paramètre php.ini qui provoque cela? ou la différence de codage de fichier dans les deux configurations?php script est ouputting php code, pas sûr pourquoi
<?php
$to_email = '[email protected]';
$link = $_GET['link'];
if(!$link){
echo '<p>Have a suggestion?<br />Enter the URL below!</p>';
}else if(strlen($link) > 256 || !preg_match('/^(http:\/\/)?subdomain\.somesite\.com\/(somedir\/)?anotherdir\/(.+)/',$link) && !preg_match('/^(http:\/\/)?somedomain2\.com\/somedir2\/(.+)/',$link)){
echo '<p class="error">Whoops, the URL entered doesn\'t <br />match the criteria.</p>';
}else{
$link = str_replace("\n.", "\n..", $link);
if(!preg_match('/^http:\/\//',$link)){
$link = 'http://'.$link;
}
mail($to_email, 'New URL Suggestion', "A new URL has been suggested from your site:\n\n".$link,"From: ".$to_email."\r\n");
echo '<p>Thank you for submitting this URL! <br />It should be live within 24 hours.</p>';
}
?>
Le résultat sur le serveur de mon client est:
256 || !preg_match('/^(http:\/\/)?subdomain\.somesite\.com\/(somedir\/)?anotherdir\/(.+)/',$link) &&
!preg_match('/^(http:\/\/)?somedomain2\.com\/somedir2\/(.+)/',$link)){ echo '
Whoops, the URL entered doesn\'t
match the criteria.
'; }else{ $link = str_replace("\n.", "\n..", $link);
if(!preg_match('/^http:\/\//',$link)){ $link = 'http://'.$link; } mail($to_email,
'New URL Suggestion', "A new URL has been suggested from your site:\n\n".$link,"From:
".$to_email."\r\n"); echo '
Thank you for submitting this URL!
It should be live within 24 hours.
'; } ?>
Le PHP n'est pas analysé. Dans quelle extension l'exécutez-vous? –
Je suppose que c'est ce que vous voyez sur votre écran ... si vous regardez le code, n'obtenez-vous pas le code PHP complet? – greg0ire
Très probablement le code PHP entier est envoyé, mais l'ouverture est en train d'être interprété par le navigateur en tant que balise HTML, donc tout à to '> 'dans votre if() est caché. Voir la source de la page et tout sera là. –