AJAX versteht sich nicht mit PHP/MYSQL

02/25/2014 07:08 imagecload#1
Hi,

Ich versuche seit gestern meine Seite auf AJAX zu formatieren.


Meine Index.php:

PHP Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

<
head>
    <
title>SpaceBattle</title>
    <
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
link href="css/main.css" type="text/css" rel="stylesheet" />
    <
script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript" src="script.js"></script>

</head>

<body>
    
   
    <div id="wrapper">

           <div id="banner"></div>
          <div id="navigation">
        
            <a href="#page1"><div id="nav">Home</div></a>
            <a href="#page2"><div id="nav">Registration</div></a>
          </div> 
          
          <div id="content"> 
          
            <div id="register_box">
            
                <div id="text">
            
                
                </div>
                
            </div>
            
            <div id="login_box">
            
                <div id="text">
                <form action="login.php" method="post">
                    Username<br>
                    <input class="textbox" style="width: 100%;" type="text" name="username" id="username"></input><br><br>
                    Passwort<br><input class="textbox" style="width: 100%;" type="password" name="pw" id="pw"></input><br>
                    <br>
                    Server 
                    <select style="width: 100px; color: white; background-color: black;border: none; height: 25px;">
                      <option value="alpha">Alpha Server</option>
                    </select>
                    <br><br>
                    <center><button class="button" style="width: 125px; height: 35px;" type="submit" class="button">Anmelden</button>
                    </form>
                
                </div>
                
            </div>
            
          
          </div>


    </div>


</body>
</html> 
Meine script.js

Code:
$(document).ready(function(){	

    checkURL();

    $('#navigation a').click(function (e){

            checkURL(this.hash);

    });

    setInterval("checkURL()",250);

});

var lasturl="";

function checkURL(hash)
{
    if(!hash) hash=window.location.hash;

    if(hash != lasturl)
    {
        lasturl=hash;
        loadPage(hash);
    }
}

function loadPage(url)	
{
    url=url.replace('#page','');

    $.ajax({	
        type: "POST",
        url: "load_page.php",
        data: 'page='+url,	
        dataType: "php",	
        success: function(msg){

            if(parseInt(msg)!=0)	
            {
                $('#text').html(msg);
            }
            else
            {

                echo "FATAL ERROR";

            }
        }

    });

}
Meine load_page.php

PHP Code:
<?php


$page 
= (int)$_POST['page'];

if(
file_exists('pages/page_'.$page.'.php'))
include(
'pages/page_'.$page.'.php');

else echo 
'There is no such page!';

?>

Mein Problem ist, das der PHP Code einfach im Quellcode der Seite angezeigt wird und nicht ausgeführt wird.
02/25/2014 10:36 MrPuschel#2
PHP wird vom Server ausgeführt, das Problem liegt also nicht in deinem Aufruf via Javascript, sondern darin das der Server die Datei nicht interpretiert bevor er es ausliefert.

Das kann zwei Gründe haben, entweder ist die Dateiendung .php nicht zugeordnet oder auf deinem Webserver läuft überhaupt kein PHP Interpreter.

Erstell zwei neue Dateien und nenn sie info.php4 und info.php5. Versuch phpinfo(); aufzurufen und schau das du eine Ausgabe bekommst. [Only registered and activated users can see links. Click Here To Register...]

Wenn das nicht klappt, wende dich an deinem Provider / dessen FAQ.
02/25/2014 10:46 Muddy Waters#3
Welcher PHP-Code wird ausgegeben? Wenn PHP auf deinem Webserver korrekt installiert wurde, dann sollten alle Dateien mit *.php-Endung auch als PHP interpretiert werden. Fehlen in der eingebundenen Datei vielleicht die PHP-Tags?

Hat es eigentlich einen bestimmten Grund, dass du dort eine hoffnungslos veraltete jQuery Version verwendest?

Noch ein paar Anmerkungen zu folgender Funktion:
Code:
function loadPage(url)	
{
    url=url.replace('#page','');

    $.ajax({	
        type: "POST",
        url: "load_page.php",
        data: 'page='+url,	
        dataType: "php",	
        success: function(msg){

            if(parseInt(msg)!=0)	
            {
                $('#text').html(msg);
            }
            else
            {

                echo "FATAL ERROR";

            }
        }

    });
}
  • Du solltest für data besser als Objekt angeben, damit jQuery sich um die passende Kodierung als Query-Parameter kümmern kann. Also:
    Code:
    {
    	page: url
    }
  • Dein dataType ist mit "php" ungültig, die zulässigen Werte entnimmst du der [Only registered and activated users can see links. Click Here To Register...].
  • echo ist keine gültige Anweisung in JavaScript.
02/26/2014 11:13 kissein#4
Code:
function loadPage(url)	
{
    url=url.replace('#page','');

    $.ajax({	
        type: "POST",
        url: "load_page.php",
        data: 'page='+url,	
        dataType: "php",	
        success: function(msg){ 
			('#text').html(msg); 
		}
		error: function(msg){ 
			alert(msg); 
		}
	});
}
[Only registered and activated users can see links. Click Here To Register...]