Geen bericht in postvak in

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Nicolas Pierre

Nicolas Pierre

08/03/2008 14:36:00
Quote Anchor link
Hey ik heb van een tut hier een pmsysteem gehaald maar de berichten komen iet in het postvak in ?

Kan iemand er eens naar kijken ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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 ??&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<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>
 
PHP hulp

PHP hulp

22/12/2024 17:08:03
 
Wim E

Wim E

08/03/2008 15:04:00
Quote Anchor link
Post aub alleen relevante code. of zorg dat beetje overzichtelijk is...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php `to` ?>
hier is men niet zo gek op backquotes...

Wat is het verschil tussen connect.php en config.php? staan daar dingen niet dubbel in?
 
Nicolas Pierre

Nicolas Pierre

08/03/2008 15:11:00
Quote Anchor link
nee de en daar staat de DB info en nog vanalles in en connect is gewoon de connect

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
 
Wim E

Wim E

08/03/2008 15:21:00
Quote Anchor link
nee maar ik kan wel de code met jou doorlopen...

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
 
Nicolas Pierre

Nicolas Pierre

08/03/2008 15:26:00
Quote Anchor link
heb ik gedaan en nog steeds geen verandering maar hij moet er toch niet een form lezen hij moet die gewoon ophalen en printen ?
 
- SanThe -

- SanThe -

08/03/2008 15:27:00
Quote Anchor link
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.
 
Joren de Wit

Joren de Wit

08/03/2008 15:29:00
Quote Anchor link
Begin eerst eens met het plaatsen van deze regels boven aan je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>

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...
 
Nicolas Pierre

Nicolas Pierre

08/03/2008 15:31:00
Quote Anchor link
dit script is ook niet van mij het komt van een tut hier :)


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
 
Jesper Diovo

Jesper Diovo

08/03/2008 15:32:00
Quote Anchor link
Wat is de 'read'-status wanneer een bericht in de tabel wordt gezet (dus de standaard waarde)?

"ORDER by id DESC" Een id is niets, en op niets kun je niet sorteren. Gebruik een datum (veldtype DATETIME) om op te sorteren.
 
Joren de Wit

Joren de Wit

08/03/2008 15:34:00
Quote Anchor link
Nicolas schreef op 08.03.2008 15:31:
dit script is ook niet van mij het komt van een tut hier :)
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.

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.
 
Nicolas Pierre

Nicolas Pierre

08/03/2008 15:39:00
Quote Anchor link
jah ik weet dat blanche en ik heb dat gedaan en gepost

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 ??
 
Joren de Wit

Joren de Wit

08/03/2008 15:42:00
Quote Anchor link
Nicolas, ga nu eerst eens controleren of je queries überhaupt wel gelukt zijn. Als blijkt dat dat niet het geval is echo je de mysql foutmelding met behulp van mysql_error() en echo je tevens de gebruikte query.

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...
 
Nicolas Pierre

Nicolas Pierre

08/03/2008 15:43:00
Quote Anchor link
jaja heb wat aangepast en nu geeft ie alleen nog
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
 
Jesper Diovo

Jesper Diovo

08/03/2008 15:45:00
Quote Anchor link
Je hebt toch maar een enkele connectie met de database? Dan is $db in mysql_query() ook niet nodig. Je moet óók variabelen buiten quotes zetten, en als je in een where clause op een bepaalde waarde controleert, deze waarde tussen enkele quotes zetten.

Quote:
SELECT * FROM pm WHERE `to` = '$uuser' && `read` != -1 ORDER by id DESC


Dit is een betere versie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$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
 
Joren de Wit

Joren de Wit

08/03/2008 15:47:00
Quote Anchor link
Quote:
Notice: Undefined variable: uuser
Met andere woorden de variabele $uuser bestaat niet. Dat is een probleem dat je op moet zien te lossen.

@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...
 
- SanThe -

- SanThe -

08/03/2008 15:48:00
Quote Anchor link
Die variabele bestaat gewoon niet.
 
Jesper Diovo

Jesper Diovo

08/03/2008 15:49:00
Quote Anchor link
@Blanche: Ik weet het, maar ik had het hier even over de query zelf, niet over wat er omheen gebeurd ; ).
 
Nicolas Pierre

Nicolas Pierre

08/03/2008 15:50:00
Quote Anchor link
jah ik roep die aan in mijn config met sessie en hoe kan die dan niet bestaan ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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']";
 
Jesper Diovo

Jesper Diovo

08/03/2008 15:52:00
Quote Anchor link
$_SESSION[] variabele binnen quotes!?
Uit welke tijd stamt dit script?...
 
- SanThe -

- SanThe -

08/03/2008 15:52:00
Quote Anchor link
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.
 
Joren de Wit

Joren de Wit

08/03/2008 15:53:00
Quote Anchor link
1. Waarom staat $_SESSION['user_id'] daar tussen quotes? Het is toch geen string of wel?

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
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.