Onbekend |
|
'lo.
't is misschien wel laat maar ik denk niet dat dit veel te maken zal hebben met de volgende fout.
Dus:
Ik ben bezig met mijn eigen CP/ACP en wil opvragen uit de database of en ook hoeveel nieuwe PM's er zijn.
Dit doe ik 2 keer maar ik begin met het eerste:
linksboven wordt de functie <?php unreadmail($username); ?> uitgevoerd. (admin.php)
Voor, tijdens of na stopt de parser en geeft hij de gebruiker slechts de code totaan die functie weer.
Dit resulteert uiteraard in een W3C fout en de hele site die niet werkt.
Hier is de code van de functie unreadmail() :
<?php
function unreadmail($ontvanger){
$ontvanger = strip_tags_sql(strip_tags(trim($ontvanger)));
$db = mysql_connect("localhost","ddbs2_webadmin","PASSWORD") or die(mysql_error());
mysql_select_db("ddbs2_server", $db) or die(mysql_error());
$aantal = mysql_query("SELECT * FROM pm WHERE map='inbox' AND gelezen='0' AND ontvanger='".$ontvanger."'") or die(mysql_error());
$rows = (int) mysql_num_rows($aantal) or die(mysql_error());
if($rows == 1 && $rows != null && $rows != 0){
echo("<font color=\"#ff0000\">".$rows." nieuw bericht</font>");
}elseif($rows > 1 && $rows != null && $rows != 0){
echo("<font color=\"#ff0000\">".$rows." nieuwe berichten</font>");
}else{
//Geen nieuwe berichten
}
mysql_close();
}
?>
<?php function unreadmail($ontvanger){ $aantal = mysql_query("SELECT * FROM pm WHERE map='inbox' AND gelezen='0' AND ontvanger='".$ontvanger."'") or die(mysql_error()); if($rows == 1 && $rows != null && $rows != 0){ echo("<font color=\"#ff0000\">".$rows." nieuw bericht</font>"); }elseif($rows > 1 && $rows != null && $rows != 0){ echo("<font color=\"#ff0000\">".$rows." nieuwe berichten</font>"); }else{ //Geen nieuwe berichten } } ?>
Bovenstaande functie staat in functies.php
In admin.php staat bovenaan require("functies.php");
Hierbij geen enkel probleem.
Of er nu PM's in de inbox zitten of niet, hierbij stopt de parser altijd.
tweede deel:
Ook kan je alle PM's opvragen. Dit gebeurt in een deel van pm.php.
code pm.php:
<?php
$sub = $_GET['sub'];
if(isset($sub) && strlen($sub) >= 2){
switch($sub){
case "outbox":
display_outbox($username);
break;
case "deleted":
display_recyclebin($username);
break;
default:
display_inbox($username);
}
}else{
display_inbox($username);
}
?>
<?php $sub = $_GET['sub']; switch($sub){ case "outbox": display_outbox($username); break; case "deleted": display_recyclebin($username); break; default: display_inbox($username); } }else{ display_inbox($username); } ?>
de functies display_outbox() en display_recyclebin() zijn nog niet gedefinieëerd en geven dus ook geen fouten.
Echter bij display_inbox() werkt het script enkel en alleen Als er PM's zijn voor de gebruiker.
Als de tabel pm geen rijen bevat met als ontvanger de gebruikersnaam van de huidige persoon stopt de parser voor het uitvoeren van het script. (weer)
Er is geen parse error of niets.
Geen mySQL error...
Dit is display_inbox() (zit ook in functies.php) :
<?php
function display_inbox($ontvanger){
global $MSGnopminbox;
global $taal;
$prefix = "admin.php?section=pm&sub=detail&pmid=";
$ontvanger = strip_tags_sql(strip_tags(trim($ontvanger)));
$db = mysql_connect("localhost","ddbs2_webadmin","PASSWORD") or die(mysql_error());
mysql_select_db("ddbs2_server", $db) or die(mysql_error());
$aantal = mysql_query("SELECT * FROM pm WHERE map='inbox' AND ontvanger='".$ontvanger."'") or die(mysql_error());
$rows = (int) mysql_num_rows($aantal) or die(mysql_error());
if($rows > 0 && $rows != null){
echo("<table class=\"pmlist\" cellspacing=\"0\"><tr><th class=\"pmgelezen\">gelezen</th><th class=\"pmzender\">zender</th><th class=\"pmonderwerp\">onderwerp</th><th class=\"pmtijd\">tijd en datum</th></tr>");
$ontvanger = strip_tags_sql(strip_tags(trim($ontvanger)));
$resultb = mysql_query("SELECT ID, zender, onderwerp, gelezen, tijd FROM pm WHERE map='inbox' AND ontvanger='".$ontvanger."' ORDER BY gelezen, tijd DESC LIMIT 0,20")or die(mysql_error());
while($data = mysql_fetch_assoc($resultb)){
if($data['gelezen'] == 1){
$data['gelezen'] = "<img src=\"../images/notepad%20blue.png\" alt=\"YES\" title=\"Dit bericht is al gelezen\" border=\"0\" width=\"20\" height=\"20\">";
}else{
$data['gelezen'] = "<img src=\"../images/notepad%20red.png\" alt=\"NO\" title=\"Dit bericht is nog niet gelezen\" border=\"0\" width=\"20\" height=\"20\">";
}
echo("\n<tr><td><a href=\"". $prefix . $data['ID'] ."\">".$data['gelezen']."</a></td><td>".$data['zender']."</td><td>".$data['onderwerp']."</td><td>".date("d-m-Y G:i", $data['tijd'])."</td></tr>");
}
echo("\n</table>");
}else{
//Geen berichten in de inbox
echo($MSGnopminbox[$taal]);
}
mysql_close();
}
?>
<?php function display_inbox($ontvanger){ $prefix = "admin.php?section=pm&sub=detail&pmid="; if($rows > 0 && $rows != null){ echo("<table class=\"pmlist\" cellspacing=\"0\"><tr><th class=\"pmgelezen\">gelezen</th><th class=\"pmzender\">zender</th><th class=\"pmonderwerp\">onderwerp</th><th class=\"pmtijd\">tijd en datum</th></tr>"); $resultb = mysql_query("SELECT ID, zender, onderwerp, gelezen, tijd FROM pm WHERE map='inbox' AND ontvanger='".$ontvanger."' ORDER BY gelezen, tijd DESC LIMIT 0,20")or die(mysql_error()); if($data['gelezen'] == 1){ $data['gelezen'] = "<img src=\"../images/notepad%20blue.png\" alt=\"YES\" title=\"Dit bericht is al gelezen\" border=\"0\" width=\"20\" height=\"20\">"; }else{ $data['gelezen'] = "<img src=\"../images/notepad%20red.png\" alt=\"NO\" title=\"Dit bericht is nog niet gelezen\" border=\"0\" width=\"20\" height=\"20\">"; } echo("\n<tr><td><a href=\"". $prefix . $data['ID'] ."\">".$data['gelezen']."</a></td><td>".$data['zender']."</td><td>".$data['onderwerp']."</td><td>".date("d-m-Y G:i", $data['tijd'])."</td></tr>"); } }else{ //Geen berichten in de inbox echo($MSGnopminbox[$taal]); } } ?>
Nogmaals: enkel als er geen berichten zijn zit ik in de problemen met het tweede script.
Ik weet echt niet meer waar de fout zit.
Ik zit nu al drie dagen naar mijn scherm te kijken en telkens dingen weg te commentarieëren maar helaas...
Hopelijk zijn er andere (betere) pro's die mij een eindje vooruit kunnen helpen.
Daarvoor is Sitemasters er
Cracker.
|