2015-09-27 1 views
0

J'ai du code en php et javascript qui fonctionne sur mon ordinateur, localhost, mais ne fonctionne pas en ligne. J'utilise Godaddy et je les ai appelés. Ils ont dit que tout semblait bien de leur côté. Ils ont dit qu'ils ne pouvaient pas aider avec des problèmes de codage. J'ai une base de données contenant quelques citations. La fonction que j'essaie d'effectuer est d'obtenir une citation aléatoire de la base de données et de l'afficher sur ma page Web puis de la changer pour une nouvelle citation aléatoire toutes les 10 secondes. Je ne sais rien sur php ou javascript. J'ai payé quelqu'un pour écrire ce code et ils ont dit que le code est bon.php/javascript ne fonctionne pas en ligne

Le javascript est:

var qouteobj=createRequestObject(); 
function getqoute(){ 
qouteobj.open("GET","php/randomquote.php",true); 
qouteobj.send(null); 
qouteobj.onreadystatechange=function(){ 
if(qouteobj.readyState==4 && qouteobj.status==200){ 
var q_rec=qouteobj.responseXML; 
var rq=q_rec.getElementsByTagName('qoute'); 
var txt=""; 
var i; 
for (i=0;i<rq.length;i++){ 
txt=txt + rq[i].childNodes[0].nodeValue + "<br>"; 
} 
document.getElementById('random-quote').innerHTML=txt; 
setTimeout('getqoute()',10000); 
setTimeout('getqoute()',10000); 
} 
} 

Le fichier randomquote.php est:

<?xml version='1.0' ?> 
<?php 
include "connect.php"; 
header("Content-Type: text/xml; charset=utf-8"); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 

$sql = "SELECT quote FROM quotes where Rand() Limit 1"; 
$result = mysqli_query($conn, $sql); 
$row = mysqli_fetch_assoc($result); 
$xml="<root>"; 
$xml.="<qoute>".$row['quote']."</qoute>"; 

$xml.="</root>"; 
echo $xml; 
//echo $row['quote']; 
mysqli_close($conn); 
?> 

Le html est tout simplement:

<p id="random-quote"></p> 

Je sais que ça se connecter à la base de données parce que je avoir un autre code PHP sur le site qui fonctionne, en tirant des données de la base de données et en l'affichant sur la page. La page est à: www.bestmoviequote.com Merci d'avoir regardé cela pour moi.

+0

http://www.bestmoviequote.com/php/randomquote.php est rien de retour. Il y a votre problème. –

+0

Lorsque je vois le fichier dans mon gestionnaire de fichiers, il montre le code –

+0

Je sais que vous voyez le code, le problème est, le code ne fonctionne pas comme il est censé. Il pourrait y avoir un problème dans votre connect.php –

Répondre

0

Nous l'avons eu de travail. Nous avons également eu un problème avec le code original n'affichant pas une citation vraiment aléatoire. Il favorisait les citations avec un plus grand nombre de goûts (j'avais une autre page où les utilisateurs pourraient aimer les citations.) La solution suivante a résolu les deux problèmes.

Javascript:

var qouteobj=createRequestObject(); 
function getqoute(){ 
qouteobj.open("GET","/php/randomquote.php",true); 
qouteobj.send(null); 
qouteobj.onreadystatechange=function(){ 
if(qouteobj.readyState==4 && qouteobj.status==200) 
{ 
var q_rec=qouteobj.responseText; 
if (window.DOMParser) 
{ 
parser=new DOMParser(); 
xmlDoc=parser.parseFromString(q_rec,"text/xml"); 
} 
else // Internet Explorer 
{ 
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.async=false; 
xmlDoc.loadXML(q_rec); 
} 
var rq=xmlDoc.getElementsByTagName("qoute"); 
var txt=""; 
var i; 
for (i=0;i<rq.length;i++){ 
txt=txt + rq[i].childNodes[0].nodeValue + "<br>"; 
} 
document.getElementById('random-quote').innerHTML=txt; 
setTimeout('getqoute()',10000); 
} 
} 
} 

randomquote.php:

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "moviequotes"; 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
if (!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 
header("Content-Type: text/xml; charset=utf-8"); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 
$sql = "SELECT COUNT(*) FROM quotes"; 
$result = mysqli_query($conn,$sql); 
$rows=$result->fetch_row(); 
//$rows = mysqli_num_rows($result); 
$rndm=rand(1,$rows[0]); 
$sql = "SELECT quote FROM quotes where id='".$rndm."' Limit 1"; 
$result = mysqli_query($conn,$sql); 
if($result) 
{ 
$row = mysqli_fetch_assoc($result); 
$xml='<root>'; 
$xml.='<qoute>'.htmlspecialchars($row['quote']).'</qoute>'; 
$xml.='</root>'; 
echo $xml; 
} 
else 
{ 
echo "Not working"; 
} 
mysqli_close($conn); 
?> 
1

Je suppose que le problème vient du fait que vous écrivez des choses avant d'envoyer des en-têtes.

essai avec qui:

<?php 
    include "connect.php"; 

    $sql = "SELECT quote FROM quotes where Rand() Limit 1"; 
    $result = mysqli_query($conn, $sql); 
    $row = mysqli_fetch_assoc($result); 
    mysqli_close($conn); 

header("Content-Type: text/xml; charset=utf-8"); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 
$xml="<?xml version='1.0' ?>"; 
$xml.="<root>"; 
$xml.="<qoute>".$row['quote']."</qoute>"; 
$xml.="</root>"; 
echo $xml; 

S'il y a encore des problèmes, s'il vous plaît ajouter ini_set('display_errors', 1) avant l'inclure du script de connexion, et donnez-nous les erreurs

+0

Non, ne fonctionne toujours pas –

+0

Ajouter 'ini_set ('display_errors', 1)' avant la ligne 'inclure" connect.php ";' et nous donner le résultat. – dievardump

+0

Je suis allé sur votre site, ça marche. '" Tout ce que l'esprit de l'homme peut concevoir et croire, il peut le réaliser. " 'de http://www.bestmoviequote.com/php/randomquote.php – dievardump