Pokebert Posted January 26, 2013 Share Posted January 26, 2013 I can't get to get this code to display anything other than " |Compose | Inbox | and I can't seem to fins the issue in the code. Can someone help me with this? An example of this mail system can be seen at http://nintendoville.3owl.com/Member%20System/mail.php <?PHP INCLUDE("dbconn.php"); $result1=MYSQL_QUERY("select * from users WHERE username='$username'") or DIE ("cant do it"); $row100 = MYSQL_FETCH_ARRAY($result1); ?> <html> <head> <title> NintendoVille - Mail </title> <meta name='viewport' content='width=320'> <style> body { background-color:#FFFFFF; padding: 0px; margin: 0px; } #topscreen { width: 320px; height: 218px; background-color:#FFFFFF; } #bottomscreen { width: 320px; height: 400px; background-color:#C8C8C8; } #marquee { width: 320px; height: 20px; background-color:#B0B0B0; border-radius: 7px; } #credits { width: 320px; height: 20px; background-color:#B0B0B0; border-radius: 7px; } #infos { width: 320px; height: 60px; background-color:#B0B0B0; border-radius: 7px; } #text { width: 320px; height: 20px; background-color:#B0B0B0; border-radius: 7px; } </style> </head> <body> <div id='topscreen'> <img src="../NintendoVilleLogoBeta.jpg.jpg" width=320px height=217px> </div> <div id='bottomscreen'> <br> <center>| <a href="mail.php?action=compose">Compose</a> | <a href="mail.php?action=inbox">Inbox</a> | </center> <table cellpadding="1" cellspacing="1" height="300" width="320"> <tr><td align=center valign=top> <?PHP IF($action==compose) { ECHO "<form action=mail.php?action=compose2 method=post>"; ECHO "<table>"; ECHO "<tr><td>Subject:</td><td><input type=text name=subject size=20 value=$subject></td></tr>"; ECHO "<tr><td>To:</td><td><input type=text name=to size=20 value=$to></td></tr>"; ECHO "<tr><td>Message:</td><td><textarea rows=16 cols=45 name=message></text></td></tr>"; ECHO "<tr><td><button type=submit>Send Mail!</button></td></tr>"; ECHO "</table>"; ECHO "</form>"; } IF($action==compose2) { $subject or DIE("Subject Blank"); $message or DIE("Message Black"); $to or DIE("To blank"); $date = DATE(YmdHis); $create = "INSERT INTO mail (UserTo, UserFrom, Subject, Message, SentDate, status) VALUES ('$to','$username','$subject','$message','$date','unread')"; $create2 = MYSQL_QUERY($create) or DIE("A letter could not be sent to $to!"); ECHO("Message Sent to $to!"); } IF($action==inbox) { $result=MYSQL_QUERY("select * from mail where UserTo='$username' ORDER BY SentDate DESC") or DIE ("cant do it"); ECHO "<table cellpadding=2 cellspacing=1 width=500 valign=top>"; WHILE ($row=MYSQL_FETCH_ARRAY($result)) { ECHO "<tr><td width=30>Mail:</td><td><a href=mail.php?action=veiw&mail_id=$row[mail_id]>$row[subject]</a></td><td width=50> <a href=mail.php?action=delete&id=$row[mail_id]><center>Delete</a><br></td></tr>"; } ECHO "</table>"; } IF($action==veiw) { $result=MYSQL_QUERY("select * from mail where UserTo='$username' and mail_id=$mail_id") or DIE ("cant do it"); $row=MYSQL_FETCH_ARRAY($result); IF($row[userTo]==$username) { } ELSE { ECHO "<font face=verdana><b>This isn't your mail!"; EXIT; } $query="UPDATE mail SET status='read' WHERE UserTo='$username' AND mail_id='$row[mail_id]'"; $query or DIE("An error occurred resulting that this message has not been marked read."); ECHO "<table border = 1 bordercolor = black width = 50% align=center><tr><td>$row[subject]</td><td>$row[userFrom]</td></tr><tr><td colspan='2'>$row[Message]<br><a href=mail.php?action=compose&to=$row[userFrom]&subject=RE:$row[subject]>Reply</a></td></tr></table>"; $rs = MYSQL_QUERY("UPDATE mail SET status='read' WHERE mail_id='$mail_id'"); } IF($action==delete) { $query = MYSQL_QUERY("DELETE FROM mail WHERE mail_id='$id' LIMIT 1"); IF($query) { ECHO "<font face=verdana>Message Deleted.</font>"; } ELSE { ECHO "The message wasnt deleted."; } } ?> <br> </div> </body> </html> Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/ Share on other sites More sharing options...
Barand Posted January 26, 2013 Share Posted January 26, 2013 (edited) String values like "compose" and "delete" should be enclosed in quotes (as I did), unless you have defined them as constants, but no sign of that. And where is $action variable's value defined? try adding var_dump($action); and see what it contains Edited January 26, 2013 by Barand Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/#findComment-1408427 Share on other sites More sharing options...
trq Posted January 26, 2013 Share Posted January 26, 2013 Turn error reporting on. PHP will point out your errors. Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/#findComment-1408432 Share on other sites More sharing options...
Pokebert Posted January 26, 2013 Author Share Posted January 26, 2013 Fixed undefined constants; now I just need to define actions. Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/#findComment-1408433 Share on other sites More sharing options...
Pokebert Posted January 26, 2013 Author Share Posted January 26, 2013 (edited) Code is now: <?PHP INCLUDE("dbconn.php"); $result1=MYSQL_QUERY("select * from users WHERE username='$username'") or DIE ("cant do it"); $row100 = MYSQL_FETCH_ARRAY($result1); ini_set('display_errors',1); error_reporting(E_ALL); ?> <html> <head> <title> NintendoVille - Mail </title> <meta name='viewport' content='width=320'> <style> body { background-color:#FFFFFF; padding: 0px; margin: 0px; } #topscreen { width: 320px; height: 218px; background-color:#FFFFFF; } #bottomscreen { width: 320px; height: 400px; background-color:#C8C8C8; } #marquee { width: 320px; height: 20px; background-color:#B0B0B0; border-radius: 7px; } #credits { width: 320px; height: 20px; background-color:#B0B0B0; border-radius: 7px; } #infos { width: 320px; height: 60px; background-color:#B0B0B0; border-radius: 7px; } #text { width: 320px; height: 20px; background-color:#B0B0B0; border-radius: 7px; } </style> </head> <body> <div id='topscreen'> <img src="../NintendoVilleLogoBeta.jpg.jpg" width=320px height=217px> </div> <div id='bottomscreen'> <br> <center>| <a href="mail.php?action=compose">Compose</a> | <a href="mail.php?action=inbox">Inbox</a> | </center> <table cellpadding="1" cellspacing="1" height="300" width="320"> <tr><td align=center valign=top> <?PHP IF($action=='compose') { ECHO "<form action=mail.php?action=compose2 method=post>"; ECHO "<table>"; ECHO "<tr><td>Subject:</td><td><input type=text name=subject size=20 value=$subject></td></tr>"; ECHO "<tr><td>To:</td><td><input type=text name=to size=20 value=$to></td></tr>"; ECHO "<tr><td>Message:</td><td><textarea rows=16 cols=45 name=message></text></td></tr>"; ECHO "<tr><td><button type=submit>Send Mail!</button></td></tr>"; ECHO "</table>"; ECHO "</form>"; } IF($action=='compose2') { $subject or DIE("Subject Blank"); $message or DIE("Message Black"); $to or DIE("To blank"); $date = DATE(YmdHis); $create = "INSERT INTO mail (UserTo, UserFrom, Subject, Message, SentDate, status) VALUES ('$to','$username','$subject','$message','$date','unread')"; $create2 = MYSQL_QUERY($create) or DIE("A letter could not be sent to $to!"); ECHO("Message Sent to $to!"); } IF($action=='inbox') { $result=MYSQL_QUERY("select * from mail where UserTo='$username' ORDER BY SentDate DESC") or DIE ("cant do it"); ECHO "<table cellpadding=2 cellspacing=1 width=500 valign=top>"; WHILE ($row=MYSQL_FETCH_ARRAY($result)) { ECHO "<tr><td width=30>Mail:</td><td><a href=mail.php?action=veiw&mail_id=$row[mail_id]>$row[subject]</a></td><td width=50> <a href=mail.php?action=delete&id=$row[mail_id]><center>Delete</a><br></td></tr>"; } ECHO "</table>"; } IF($action=='veiw') { $result=MYSQL_QUERY("select * from mail where UserTo='$username' and mail_id=$mail_id") or DIE ("cant do it"); $row=MYSQL_FETCH_ARRAY($result); IF($row[userTo]==$username) { } ELSE { ECHO "<font face=verdana><b>This isn't your mail!"; EXIT; } $query="UPDATE mail SET status='read' WHERE UserTo='$username' AND mail_id='$row[mail_id]'"; $query or DIE("An error occurred resulting that this message has not been marked read."); ECHO "<table border = 1 bordercolor = black width = 50% align=center><tr><td>$row[subject]</td><td>$row[userFrom]</td></tr><tr><td colspan='2'>$row[Message]<br><a href=mail.php?action=compose&to=$row[userFrom]&subject=RE:$row[subject]>Reply</a></td></tr></table>"; $rs = MYSQL_QUERY("UPDATE mail SET status='read' WHERE mail_id='$mail_id'"); } IF($action=='delete') { $query = MYSQL_QUERY("DELETE FROM mail WHERE mail_id='$id' LIMIT 1"); IF($query) { ECHO "<font face=verdana>Message Deleted.</font>"; } ELSE { ECHO "The message wasnt deleted."; } } ?> <br> </div> </body> </html> And i fixed undefined constants but still get: Notice: Undefined variable: action in/home/u253096179/public_html/Member System/mail.php on line 75 Notice: Undefined variable: action in/home/u253096179/public_html/Member System/mail.php on line 86 Notice: Undefined variable: action in/home/u253096179/public_html/Member System/mail.php on line 101 Notice: Undefined variable: action in/home/u253096179/public_html/Member System/mail.php on line 110 Notice: Undefined variable: action in/home/u253096179/public_html/Member System/mail.php on line 124 So how should I fix this? And since I'm very new to PHP could I get an example piece of coding? Edited January 26, 2013 by Pokebert Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/#findComment-1408439 Share on other sites More sharing options...
Pokebert Posted January 26, 2013 Author Share Posted January 26, 2013 String values like "compose" and "delete" should be enclosed in quotes (as I did), unless you have defined them as constants, but no sign of that. And where is $action variable's value defined? try adding var_dump($action); and see what it contains Where should I insert var_dump? I'm new to PHP... Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/#findComment-1408442 Share on other sites More sharing options...
trq Posted January 26, 2013 Share Posted January 26, 2013 You haven't defined $action anywhere. No point var_dumping it, it doesn't exist. Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/#findComment-1408443 Share on other sites More sharing options...
Barand Posted January 26, 2013 Share Posted January 26, 2013 Between these two lines below would be as good a place as any <?PHP IF($action=='compose') { Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/#findComment-1408444 Share on other sites More sharing options...
Pokebert Posted January 26, 2013 Author Share Posted January 26, 2013 I'll try to develop a different PM system for my website. Marked as resolved. Quote Link to comment https://forums.phpfreaks.com/topic/273674-php-actions-wont-work/#findComment-1408448 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.