PM Systeem probleem
Jammer genoeg zijn er verschillende problemen...
1) Als ik berichten verwijdert geeft hij een fout van "undefined offset".
2) Als ik geen berichten aanklik en op de knop verwijderen klik dan geeft hij ook een fout van "undefined variable".
3) In Firefox en in IE werkt regel 69 niet. Als ik op de knop lezen druk in Firefox of IE dan vernieuwt hij de pagina inbox.php
Hopelijk kan iemand helpen. Bedankt
*edit
Kan ditdit mij helpen voor probleem 3?
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
100
101
102
103
104
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
100
101
102
103
104
<script type="text/javascript" language="javascript">
function check_all(iam)
{
var node_list = document.getElementsByTagName('input');
for (var i = 0; i < node_list.length; i++)
{
var node = node_list[i];
if (node.getAttribute('type') == 'checkbox')
{
if (iam.checked == 1)
node.checked = 1;
else
node.checked = 0;
}
}
}
</script>
<?
$qryBerichten = "SELECT *,DATE_FORMAT(datum, ('%d.%m.%Y %H:%i')) AS data FROM tbl_berichten WHERE naar = '$vID' ORDER BY berichtid DESC";
$rBerichten = mysql_query($qryBerichten);
$vAantal = mysql_num_rows($rBerichten);
if($vAantal == 0)
echo "<b>Op dit moment staan er geen berichten in je inbox.</b><br><hr><a href='berichtmaken.php'><input type='submit' value='Nieuw bericht maken'></a>";
else
{
if($vAantal == 1)
$vAantal = "staat er $vAantal bericht";
else
$vAantal = "staan er $vAantal berichten";
echo "<b>Op dit moment $vAantal in je inbox.</b><hr>";
$sql = "SELECT *,DATE_FORMAT(datum, ('%d.%m.%Y %H:%i')) AS data FROM tbl_berichten WHERE naar = '$vID' ORDER BY berichtid DESC";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<form name="frmBerichten" method="post">
<table width="640" border="0" cellspacing="0">
<tr>
<td width="20" align="center"><input type='checkbox' name='checkall' onclick='check_all(this)'></td>
<td width="220"><b>Onderwerp</b></td>
<td width="200"><b>Gebruiker</b></td>
<td width="130"><b>Datum</b></td>
<td width="70"><b>Lezen</b></td>
</tr>
<?php
while($rows = mysql_fetch_array($result))
{
if($rows['gelezen'] == 1)
$kleur = "#7FFF00";
else
$kleur = "#FF4500";
?>
<tr bgcolor="<?php echo $kleur; ?>">
<td width="20" height="25" align="center"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['berichtid']; ?>"></td>
<td width="220 height="25""> <? echo $rows['onderwerp']; ?></td>
<td width="200" height="25"> <?
$vVan = $rows['van'];
$qryZoeken = mysql_query("SELECT * FROM tbl_gebruikers WHERE gebruikerid = '$vVan'");
while($vJij = mysql_fetch_object($qryZoeken))
{
$vAuteur = $vJij->gebruikersnaam;
}
echo $vAuteur; ?>
</td>
<td width="130" height="25"> <? echo $rows['data']; ?></td>
<td width="70" height="25" align="center">
<input type="image" src="images/lezen.png" name="lezen" id="lezen" value="<? echo $rows['berichtid']; ?>"></td>
</tr>
<?php
}
?>
</table>
<br>
<input name="delete" type="submit" id="delete" value="Geselecteerde berichten verwijderen"> <input type="submit" name="new" id="new" value="Nieuw bericht maken">
</form>
</td>
</tr>
</table>
<?
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($delete))
{
for($i=0;$i<$count;$i++)
{
$del_id = $checkbox[$i];
$sql = "DELETE FROM tbl_berichten WHERE berichtid = '$del_id'";
$result = mysql_query($sql);
}
if($result)
echo "<meta http-equiv='refresh' content='0;URL=inbox.php'>";
}
if(isset($new))
header('location: berichtmaken.php');
if(isset($lezen))
{
$_SESSION["f_bericht"] = $_POST["lezen"];
header('location: berichtlezen.php');
}
}
}
?>
function check_all(iam)
{
var node_list = document.getElementsByTagName('input');
for (var i = 0; i < node_list.length; i++)
{
var node = node_list[i];
if (node.getAttribute('type') == 'checkbox')
{
if (iam.checked == 1)
node.checked = 1;
else
node.checked = 0;
}
}
}
</script>
<?
$qryBerichten = "SELECT *,DATE_FORMAT(datum, ('%d.%m.%Y %H:%i')) AS data FROM tbl_berichten WHERE naar = '$vID' ORDER BY berichtid DESC";
$rBerichten = mysql_query($qryBerichten);
$vAantal = mysql_num_rows($rBerichten);
if($vAantal == 0)
echo "<b>Op dit moment staan er geen berichten in je inbox.</b><br><hr><a href='berichtmaken.php'><input type='submit' value='Nieuw bericht maken'></a>";
else
{
if($vAantal == 1)
$vAantal = "staat er $vAantal bericht";
else
$vAantal = "staan er $vAantal berichten";
echo "<b>Op dit moment $vAantal in je inbox.</b><hr>";
$sql = "SELECT *,DATE_FORMAT(datum, ('%d.%m.%Y %H:%i')) AS data FROM tbl_berichten WHERE naar = '$vID' ORDER BY berichtid DESC";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<form name="frmBerichten" method="post">
<table width="640" border="0" cellspacing="0">
<tr>
<td width="20" align="center"><input type='checkbox' name='checkall' onclick='check_all(this)'></td>
<td width="220"><b>Onderwerp</b></td>
<td width="200"><b>Gebruiker</b></td>
<td width="130"><b>Datum</b></td>
<td width="70"><b>Lezen</b></td>
</tr>
<?php
while($rows = mysql_fetch_array($result))
{
if($rows['gelezen'] == 1)
$kleur = "#7FFF00";
else
$kleur = "#FF4500";
?>
<tr bgcolor="<?php echo $kleur; ?>">
<td width="20" height="25" align="center"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['berichtid']; ?>"></td>
<td width="220 height="25""> <? echo $rows['onderwerp']; ?></td>
<td width="200" height="25"> <?
$vVan = $rows['van'];
$qryZoeken = mysql_query("SELECT * FROM tbl_gebruikers WHERE gebruikerid = '$vVan'");
while($vJij = mysql_fetch_object($qryZoeken))
{
$vAuteur = $vJij->gebruikersnaam;
}
echo $vAuteur; ?>
</td>
<td width="130" height="25"> <? echo $rows['data']; ?></td>
<td width="70" height="25" align="center">
<input type="image" src="images/lezen.png" name="lezen" id="lezen" value="<? echo $rows['berichtid']; ?>"></td>
</tr>
<?php
}
?>
</table>
<br>
<input name="delete" type="submit" id="delete" value="Geselecteerde berichten verwijderen"> <input type="submit" name="new" id="new" value="Nieuw bericht maken">
</form>
</td>
</tr>
</table>
<?
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($delete))
{
for($i=0;$i<$count;$i++)
{
$del_id = $checkbox[$i];
$sql = "DELETE FROM tbl_berichten WHERE berichtid = '$del_id'";
$result = mysql_query($sql);
}
if($result)
echo "<meta http-equiv='refresh' content='0;URL=inbox.php'>";
}
if(isset($new))
header('location: berichtmaken.php');
if(isset($lezen))
{
$_SESSION["f_bericht"] = $_POST["lezen"];
header('location: berichtlezen.php');
}
}
}
?>
Gewijzigd op 19/11/2011 19:25:10 door PH Piet
Code (php)
1
<a href="lezen.php"><img src="images/lezen.png" name="lezen" id="lezen" value="<? echo $rows['berichtid']; ?>"></a></td>
De bedoeling is de waarde van het bericht mee te sturen naar de volgende pagina.
Selecteer het veld/de velden die je nodig hebt, geen *
Waarom 2x dezelfde query?
Je mist foutafhandeling in je query.
Waar komt $vID vandaag?
Variabelen buiten quotes.
waar komt $delete vandaan?
Om sessie te gebruiken, moet je session_start(); gebruiken.
Gewijzigd op 19/11/2011 20:37:29 door Obelix Idefix
jaa klopt dan gaat ie naar die pagina toe maar dan geef je alles toch mee met een session ?
$vID is gewoon leeg als alles goed is. Vroeger, 9 jaar geleden was die wel gevuld. maar tegenwoordig is dat bijna niet meer, tenzij iemand het nog aandurft om register_globals op ON te zetten.
Gewijzigd op 21/11/2011 00:03:25 door PH Piet
PH Piet op 19/11/2011 20:50:32:
$delete krijg je als je op de knop drukt (staat in een form).
Dan krijg je geen $delete volgens mij. Je zult moeten werken met $_POST['delete']
Zie ook reactie van Aar.
En uiteraaard ontbreekt het aan de benodigde:
- controles en validaties
- bescherming tegen sql injectie
En het belangrijkste: script logica is ver te zoeken
Ik ga het opnieuw schrijven want nu zit het vol fouten
Ik heb nu een rollover voor mijn berichten, onmouseover & onmouseout.
Hoe zorg ik ervoor dat als ik op een random plaats in de rij mijn "berichtid" kan toevoegen aan een variabelen zodat ik deze kan verzenden?