Geen bericht in postvak in
Kan iemand er eens naar kijken ?
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
include_once("config.php");
include_once("lang/lang_".$lang.".php");
$pml_title = $site_name;
include("htmltop.php");
include_once("connect.php");
// Login required
require("safe.php");
?>
<table width="300">
<tr>
<td width="1%">
</td>
<td width="20%">
From:
</td>
<td width="25%">
Date
</td>
<td width="48%">
subject:
</td>
</tr>
<form action="pm_inbox.php" method="post">
<?
if (isset($_POST["what"])){
$what = $_POST["what"];
foreach ($_POST as $mid){
if (is_numeric($mid) == true){
if (isset($mid)){
switch ($what) {
case "delete":
$check_dwd = mysql_query("SELECT * FROM pmoptions WHERE user = '$uuser'");
while (list($id, $user, $alert, $buddy, $block, $dwd) =
mysql_fetch_row($check_dwd)){
if ($dwd == "delete"){
$query = "DELETE FROM pm WHERE id = '$mid'";
mysql_query($query);
}else{
$query = "UPDATE pm SET read = '-1' WHERE id = '$mid'";
mysql_query($query);
}
}
break;
case "unread";
$query = "UPDATE pm SET read = '0' WHERE id = '$mid'";
mysql_query($query);
break;
case "read";
$query = "UPDATE pm SET read = '1' WHERE id = '$mid'";
mysql_query($query);
break;
}
}else{}
}else{}
}
}else{}
$i = 0;
$result = mysql_query("SELECT * FROM pm WHERE `to` = '$uuser' && `read` != -1 ORDER by id DESC", $db);
while (list($id, $from, $ipsender, $to, $date, $time, $sub, $mes, $read) =
mysql_fetch_row($result)){
?>
<tr>
<td>
<input type="checkbox" name="<? echo $i?>" value="<? echo $id ?>">
</td>
<td>
<a href="pm_new.php?to=<? echo $from ?>"><? echo $from ?></a>
</td>
<td>
<? echo $date ?> <? echo $time ?>
</td>
<td>
<a href="pm_read.php?m=<? echo $id ?>"><? echo $sub ?></a>
</td>
</tr>
<?
$i++;
}
?>
</table>
<table width="300">
<tr>
<td>
what u wanna do whit the selected messages ??
<select name="what">
<option value="delete">Delete</option>
<option value="unread">Mark Unread</option>
<option value="read">Mark Read</option>
</select>
<input type="submit" value="Go">
</td>
</tr>
</table>
</form>
</body>
</html>
include_once("config.php");
include_once("lang/lang_".$lang.".php");
$pml_title = $site_name;
include("htmltop.php");
include_once("connect.php");
// Login required
require("safe.php");
?>
<table width="300">
<tr>
<td width="1%">
</td>
<td width="20%">
From:
</td>
<td width="25%">
Date
</td>
<td width="48%">
subject:
</td>
</tr>
<form action="pm_inbox.php" method="post">
<?
if (isset($_POST["what"])){
$what = $_POST["what"];
foreach ($_POST as $mid){
if (is_numeric($mid) == true){
if (isset($mid)){
switch ($what) {
case "delete":
$check_dwd = mysql_query("SELECT * FROM pmoptions WHERE user = '$uuser'");
while (list($id, $user, $alert, $buddy, $block, $dwd) =
mysql_fetch_row($check_dwd)){
if ($dwd == "delete"){
$query = "DELETE FROM pm WHERE id = '$mid'";
mysql_query($query);
}else{
$query = "UPDATE pm SET read = '-1' WHERE id = '$mid'";
mysql_query($query);
}
}
break;
case "unread";
$query = "UPDATE pm SET read = '0' WHERE id = '$mid'";
mysql_query($query);
break;
case "read";
$query = "UPDATE pm SET read = '1' WHERE id = '$mid'";
mysql_query($query);
break;
}
}else{}
}else{}
}
}else{}
$i = 0;
$result = mysql_query("SELECT * FROM pm WHERE `to` = '$uuser' && `read` != -1 ORDER by id DESC", $db);
while (list($id, $from, $ipsender, $to, $date, $time, $sub, $mes, $read) =
mysql_fetch_row($result)){
?>
<tr>
<td>
<input type="checkbox" name="<? echo $i?>" value="<? echo $id ?>">
</td>
<td>
<a href="pm_new.php?to=<? echo $from ?>"><? echo $from ?></a>
</td>
<td>
<? echo $date ?> <? echo $time ?>
</td>
<td>
<a href="pm_read.php?m=<? echo $id ?>"><? echo $sub ?></a>
</td>
</tr>
<?
$i++;
}
?>
</table>
<table width="300">
<tr>
<td>
what u wanna do whit the selected messages ??
<select name="what">
<option value="delete">Delete</option>
<option value="unread">Mark Unread</option>
<option value="read">Mark Read</option>
</select>
<input type="submit" value="Go">
</td>
</tr>
</table>
</form>
</body>
</html>
hier is men niet zo gek op backquotes...
Wat is het verschil tussen connect.php en config.php? staan daar dingen niet dubbel in?
ma zo los mijn probleem zich niet op he
en ik den dat de fout op regel 60 tot 63 zit maar ik weet niet wat
Gewijzigd op 01/01/1970 01:00:00 door Nicolas Pierre
Ik zie dat jou php code in de form staat, ik weet niet of dit effect heeft...dus haal hem is buiten de <form>...
Hij gaat namelijk bij een post pas wat doen...en als jij zegt dat hij moet posten, zal hij dat wel uitvoeren, maar omdat het binnen de form staat leest die daar overheen...
Gewijzigd op 01/01/1970 01:00:00 door Wim E
heb ik gedaan en nog steeds geen verandering maar hij moet er toch niet een form lezen hij moet die gewoon ophalen en printen ?
Ik zie php-shorttags, backtics in query's, vars niet buiten quotes en totaal geen foutafhandeling. Verder is het script zeer onoverzichtelijk (zonder inspringen e.d.) en dus niet te lezen en/of debuggen. Ga daar eerst maar eens mee aan de slag.
Vervolgens ga je de nodige foutafhandeling in je script aanbrengen. Je controleert nu bijvoorbeeld nergens of de queries die je uitvoert wel gelukt zijn. Die garantie heb je nooit dus daar zul je altijd op moeten controleren!
Verder kan het ook geen kwaad om je code eens wat overzichtelijker te schrijven. Dus netjes inspringen waar dat hoort en af en toe een entertje kan ook geen kwaad...
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /data/members/free/tripod/nl/k/n/i/knightsonline/htdocs/pm_inbox.php on line 62
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /data/members/free/tripod/nl/k/n/i/knightsonline/htdocs/pm_inbox.php on line 64
oke dit krijg ik nu
Gewijzigd op 01/01/1970 01:00:00 door Nicolas Pierre
"ORDER by id DESC" Een id is niets, en op niets kun je niet sorteren. Gebruik een datum (veldtype DATETIME) om op te sorteren.
Nicolas schreef op 08.03.2008 15:31:
Maar dat is toch nog geen reden om het ook in deze vorm te gebruiken? Op dit moment is het gewoon een slecht script omdat een essentieel ding als foutafhandeling volledig ontbreekt.dit script is ook niet van mij het komt van een tut hier :)
Het is aan jou om ofwel een ander script te zoeken ofwel dit script zodanig aan te passen dat het wel een goed script wordt. En voor dat laatste zou je in ieder geval de twee adviezen die ik in mijn vorige post geef op moeten volgen.
de $uuser haalt ie op uit config he
maar ik weet niet of ie daaruitwerkt
$uuser = "$_SESSION['user_id']";
en daarbij waarom geeft hij aan dat de mysql query geen valid agrument is ??
Pas als je dat doet voor elke query die je gebruikt, kun je op een serieuze manier gaan debuggen. Zonder dat is het maar gokken wat en waar het fout gaat...
Notice: Undefined variable: uuser in /data/members/free/tripod/nl/k/n/i/knightsonline/htdocs/pm_inbox.php on line 77
dus de error zit in die aanroeping van die $uuser he ?
Blanche alle queries kloppen zo te zien alleen dit nog he
Gewijzigd op 01/01/1970 01:00:00 door Nicolas Pierre
Quote:
SELECT * FROM pm WHERE `to` = '$uuser' && `read` != -1 ORDER by id DESC
Dit is een betere versie:
Code (php)
1
2
3
4
2
3
4
<?php
$query = "SELECT * FROM pm WHERE to = '".$uuser."' AND read <> '-1' ORDER BY datum DESC";
$result = mysql_query($query);
?>
$query = "SELECT * FROM pm WHERE to = '".$uuser."' AND read <> '-1' ORDER BY datum DESC";
$result = mysql_query($query);
?>
Lees mijn reactie van 15:32 hierboven voor de wijziging van het ORDER BY-deel.
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
Quote:
Met andere woorden de variabele $uuser bestaat niet. Dat is een probleem dat je op moet zien te lossen.Notice: Undefined variable: uuser
@Djemo: ook jij mist de foutafhandeling bij je query! Het mag dan een klein voorbeeldje zijn, maar persoonlijk zou ik daar toch ook graag de foutafhandeling zien...
Die variabele bestaat gewoon niet.
@Blanche: Ik weet het, maar ik had het hier even over de query zelf, niet over wat er omheen gebeurd ; ).
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
// Settings
$site_url = "http://members.lycos.nl/knightsonline/";
$site_mail = "[email protected]";
$site_name = "Elite Slayers At War";
$activate = "FALSE";
$afterlogin = "index.php";
$lang = "en";
$uuser = "$_SESSION['user_id']";
$site_url = "http://members.lycos.nl/knightsonline/";
$site_mail = "[email protected]";
$site_name = "Elite Slayers At War";
$activate = "FALSE";
$afterlogin = "index.php";
$lang = "en";
$uuser = "$_SESSION['user_id']";
Uit welke tijd stamt dit script?...
SanThe schreef op 08.03.2008 15:27:
Ik zie php-shorttags, backtics in query's, vars niet buiten quotes en totaal geen foutafhandeling. Verder is het script zeer onoverzichtelijk (zonder inspringen e.d.) en dus niet te lezen en/of debuggen. Ga daar eerst maar eens mee aan de slag.
Je doet er blijkbaar niks mee. Dan houdt het voor mij ook op. Helaas.
2. Wie zegt dat $_SESSION['user_id'] zelf wel bestaat? Dat controleer je nergens...
3. Eigenlijk maak je nu gewoon een nutteloze kopie van de sessievariabele. Wat is er mis met het gebruik van $_SESSION['user_id'] in de rest van je script. Op die manier weet je tenminste ook nog dat het een sessievariabele betreft.
4. Ik zie nergens session_start() in je script? Zonder die regel zullen sessievariabelen in ieder geval niet bestaan...
ps. Wanneer ga je eigenlijk wat doen met alle goede adviezen die hier in dit topic gegeven worden? Neem nu eens een uurtje de tijd en ga een wat dingetjes uit proberen. We helpen hier graag, maar verwacht tegelijkertijd dat mensen er ook zelf wel wat voor doen...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit