500 Internal Server Error bij Ajax + PHP
Als ik me niet vergis is er bij een 500 internal server error geen fout in mijn Javascript. Dit zijn de queries. Ik weet zeker dat mijn database gewoon werkt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function saveNote($movie_id, $user_id, $text, $mode) {
$con = $this->database->connect();
$text = $this->database->real_escape_string($text);
$user_id = $this->database->real_escape_string($user_id);
if (is_numeric($movie_id)) {
$len = 16;
$base = 'ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz123456789';
$max = strlen($base) - 1;
$password = '';
mt_srand((double) microtime() * 1000000);
while (strlen($activatecode) < $len + 1) {
$password.=$base{mt_rand(0, $max)};
}
$query = "INSERT INTO notes( user_id, movie_id, TEXT, MODE , PASSWORD)
VALUES ('$user_id', $movie_id, '$text', $mode, '$password')";
return $query;
$result = $con->query($query);
if ($result) {
return true;
} else {
return false;
}
} else {
return false;
}
$this->database->close();
$con = null;
}
function updateNote($movie_id, $user_id, $text, $mode) {
$con = $this->database->connect();
$user_id = $this->database->real_escape_string($user_id);
$text = $this->database->real_escape_string($text);
if (is_numeric($movie_id)) {
$query = "UPDATE notes SET text='$text' WHERE user_id='$user_id' AND movie_id=$movie_id";
$result = $con->query($query);
if ($result) {
return true;
} else {
return false;
}
} else {
return false;
}
$this->database->close();
$con = null;
}
$con = $this->database->connect();
$text = $this->database->real_escape_string($text);
$user_id = $this->database->real_escape_string($user_id);
if (is_numeric($movie_id)) {
$len = 16;
$base = 'ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz123456789';
$max = strlen($base) - 1;
$password = '';
mt_srand((double) microtime() * 1000000);
while (strlen($activatecode) < $len + 1) {
$password.=$base{mt_rand(0, $max)};
}
$query = "INSERT INTO notes( user_id, movie_id, TEXT, MODE , PASSWORD)
VALUES ('$user_id', $movie_id, '$text', $mode, '$password')";
return $query;
$result = $con->query($query);
if ($result) {
return true;
} else {
return false;
}
} else {
return false;
}
$this->database->close();
$con = null;
}
function updateNote($movie_id, $user_id, $text, $mode) {
$con = $this->database->connect();
$user_id = $this->database->real_escape_string($user_id);
$text = $this->database->real_escape_string($text);
if (is_numeric($movie_id)) {
$query = "UPDATE notes SET text='$text' WHERE user_id='$user_id' AND movie_id=$movie_id";
$result = $con->query($query);
if ($result) {
return true;
} else {
return false;
}
} else {
return false;
}
$this->database->close();
$con = null;
}
De file die ik aanroep heet Notes.php en die roep ik hier aan met ajax:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
$('#savenote').click(function() {
var text = $('#taNotes').val();
$.post('toolkit/Notes.php', {
text : text,
movie_id : test,
mode : 1
},
function(output) {
$('#confirm').html(output).show().delay(3000).queue(function(n) {
$(this).hide();
n();
});
});
});
var text = $('#taNotes').val();
$.post('toolkit/Notes.php', {
text : text,
movie_id : test,
mode : 1
},
function(output) {
$('#confirm').html(output).show().delay(3000).queue(function(n) {
$(this).hide();
n();
});
});
});
En mijn Notes.php is als volgt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
include_once('../connection/Querymanager.php');
session_start();
if (isset($_POST['movie_id']) && isset($_POST['text']) && isset($_POST['mode'])) {
$movie_id = $_POST['movie_id'];
$user_id = $_SESSION['id'];
$mode = $_POST['mode'];
if(!empty($_POST['text'])) {
$text = $_POST['text'];
$text = str_replace("\n", "<br />", $text);
$database = Querymanager::getInstance();
$check = $database->loadNote($movie_id, $user_id);
if(isset($check)) {
$success = $database->updateNote($movie_id, $user_id, $text, $mode);
} else {
$success = $database->saveNote($movie_id, $user_id, $text, $mode);
}
if($success) {
echo "<div style='color:green;'>De note is succesvol opgeslagen.</div>";
} else {
echo "<div style='color:red;'>De note is niet succesvol opgeslagen.</div>";
}
} else {
echo "Er staat niks in het notitieblok.";
}
} else {
echo "Er is niks gevonden";
}
session_start();
if (isset($_POST['movie_id']) && isset($_POST['text']) && isset($_POST['mode'])) {
$movie_id = $_POST['movie_id'];
$user_id = $_SESSION['id'];
$mode = $_POST['mode'];
if(!empty($_POST['text'])) {
$text = $_POST['text'];
$text = str_replace("\n", "<br />", $text);
$database = Querymanager::getInstance();
$check = $database->loadNote($movie_id, $user_id);
if(isset($check)) {
$success = $database->updateNote($movie_id, $user_id, $text, $mode);
} else {
$success = $database->saveNote($movie_id, $user_id, $text, $mode);
}
if($success) {
echo "<div style='color:green;'>De note is succesvol opgeslagen.</div>";
} else {
echo "<div style='color:red;'>De note is niet succesvol opgeslagen.</div>";
}
} else {
echo "Er staat niks in het notitieblok.";
}
} else {
echo "Er is niks gevonden";
}
Ik krijg de heletijd een Internal Server Error, maar ik zou echt niet weten waar. Ik hoop dat jullie misschien mijn fout zien, want ik zit echt helemaal vast en heb een deadline te halen haha. In mijn console wordt de POST gedaan, maar dan blijft die Pending. Dus hij maakt Notes.php niet af.
Bij voorbaat dank,
Thomas.
Gewijzigd op 25/05/2012 10:14:01 door Thomas Helling
Gewijzigd op 25/05/2012 10:16:48 door - Ariën -