bericht versturen

Status
Niet open voor verdere reacties.

assassinscreed3

Gebruiker
Lid geworden
30 okt 2012
Berichten
68
beste,

ik heb een bericht systeem en die werkt niet helemaal...
de user_id session word aangemaakt in dbc.php
de code is :
PHP:
<?php 
include '../dbc.php';
$tijd = date("H:i"); 

//nederlandse datum opstellen 

$dagvanweek = date("l"); 
$arraydag = array("Zondag", "Maandag", "Dinsdag","Woensdag", "Donderdag","Vrijdag", "Zaterdag"); 
$dagvanweek = $arraydag[date("w")]; 
$arraymaand = array("Januari", "Februari", "Maart", "April", "Mei","Juni", "Juli", "Augustus", "September","Oktober", "November", "December"); 
$datum = date("j ") . $arraymaand[date("n") - 1] . date(" Y"); 
if(isset($_POST['Submit'])) { //als er op submit is gedrukt 
//checken of alles ingevuld is 
if ($_POST['titel'] == "") 
  $error ="Je moet een titel invullen!"; 
  elseif ($_POST['bericht'] == "") 
  $error = "Je moet een bericht invullen!"; 
if ($error) 
  { //als er iets niet is ingevuld... 
?><div align="center"><table width="50%" border="1" 
       cellspacing="0" cellpadding="2"> 
       <tr bordercolor="#000000"> 
       <td bordercolor="#000000" bgcolor="#CCCCCC" height="36"> 
       <div align="center"><font color="#000000" face="Verdana, 
       Arial, Helvetica, sans-serif" size="-1"><div align=center> 
       <font color=black size=-1 face=verdana><b><?php echo"$error"?></b> 
       <br></font></div></font></div> 
       <form method="post" action="javascript:history.go(-1)"> 
       <div align=center><input type="submit" name="Terug" 
       value="Terug"></div> 
       </form></td></tr></table></div> 
<?php 
  } 
elseif (!$error) //als alles is ingevuld ... 
{ 

$rs_settings = mysql_query("select * from users where id='$_SESSION[user_id]'"); 
while ($row_settings = mysql_fetch_array($rs_settings)){
}
$titel = $_POST['titel'];
$bericht = $_POST['bericht'];
$aanwie = $persoon;
$user_email = $row_settings['user_email'];
$jeid = $row_settings['user_id'];

//MOGELIJK AANPASSEN VAN GEGEVENS 
//JENICKNAME EN JEID IS MAAR EEN VOORBEELD 
//JE ZAL DAT MOETEN VERANDEREN NAAR WAT DE WAARDE IS VAN DE ID VAN DE MEMBER EN DE NICKNAME ETC. 

$query = "INSERT INTO berichten (titel, wie, bericht, datum, 
tijd, van, vanid) VALUES ('$titel', '$aanwie', '$bericht', '$datum', 
'$tijd', '$user_email', '$jeid')"; 
mysql_query($query) or die (mysql_error()); 

echo "Het bericht is succesvol gestuurd naar de persoon"; 

  } 
} 

else 

{ 

?> 
<form method="post" action="berichttoevoegen.php"> 
  <table width="100%" border="0" cellspacing="0" cellpadding="2"> 
    <tr> 
      <td> 
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="100">Naar 
          wie:</font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-1"> 
          <select name="nummer" size="1"> 
            <?php 
$query = mysql_query("SELECT * FROM users order by user_name"); 
while ($obj2 = mysql_fetch_object($query)) { 
$persoon = $obj2->user_email; 
echo"<option value=\"$persoon\">$persoon</option>"; 
} 
?> 
          </select> 
          </font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">Titel:</font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-1"> 
          <input type="text" name="titel" size="50" maxlength="50"> 
          </font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">Bericht:</font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="-1"> 
          <textarea name="bericht" cols="60" rows="20"></textarea> 
          </font></font></div> 
      </td> 
    </tr> 
    <tr> 
      <td>&nbsp;</td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"> 
          <input type="submit" name="Submit" value="Stuur bericht"> 
          <input type="reset" name="Reset" value="Reset"> 
        </div> 
      </td> 
    </tr> 
  </table> 
</form> 
<?php 
} 
?>

deze is om een bericht te sturen maar als je nu op versturen klik staat er:
Het bericht is succesvol gestuurd naar de persoon.

dit moet ook maar in de database blijven de calommen "wie" en "van" leeg.

weet iemand wat ik fout doe?

btw het is gedownload.

mvg ac3
 
Laatst bewerkt:
Je variabele $aanwie wordt gevuld met de variabele $persoon alleen bestaat die niet in dit script.

Voor de 'van' zul je regel 43 tussen de accolades van regel 38 en 39 moeten zetten.
 
ik heb nu dit:

PHP:
<?php 
include '../dbc.php';
$tijd = date("H:i"); 
 
//nederlandse datum opstellen 
 
$dagvanweek = date("l"); 
$arraydag = array("Zondag", "Maandag", "Dinsdag","Woensdag", "Donderdag","Vrijdag", "Zaterdag"); 
$dagvanweek = $arraydag[date("w")]; 
$arraymaand = array("Januari", "Februari", "Maart", "April", "Mei","Juni", "Juli", "Augustus", "September","Oktober", "November", "December"); 
$datum = date("j ") . $arraymaand[date("n") - 1] . date(" Y"); 
if(isset($_POST['Submit'])) { //als er op submit is gedrukt 
//checken of alles ingevuld is 
if ($_POST['titel'] == "") 
  $error ="Je moet een titel invullen!"; 
  elseif ($_POST['bericht'] == "") 
  $error = "Je moet een bericht invullen!"; 
if ($error) 
  { //als er iets niet is ingevuld... 
?><div align="center"><table width="50%" border="1" 
       cellspacing="0" cellpadding="2"> 
       <tr bordercolor="#000000"> 
       <td bordercolor="#000000" bgcolor="#CCCCCC" height="36"> 
       <div align="center"><font color="#000000" face="Verdana, 
       Arial, Helvetica, sans-serif" size="-1"><div align=center> 
       <font color=black size=-1 face=verdana><b><?php echo"$error"?></b> 
       <br></font></div></font></div> 
       <form method="post" action="javascript:history.go(-1)"> 
       <div align=center><input type="submit" name="Terug" 
       value="Terug"></div> 
       </form></td></tr></table></div> 
<?php 
  } 
elseif (!$error) //als alles is ingevuld ... 
{ 
$titel = $_POST['titel'];
$bericht = $_POST['bericht'];
$user_email = $_SESSION['user_email'];
$jeid = $_SESSION['user_id'];
$aanwie = $persoon;

 
//MOGELIJK AANPASSEN VAN GEGEVENS 
//JENICKNAME EN JEID IS MAAR EEN VOORBEELD 
//JE ZAL DAT MOETEN VERANDEREN NAAR WAT DE WAARDE IS VAN DE ID VAN DE MEMBER EN DE NICKNAME ETC. 
 
$query = "INSERT INTO berichten (id, van, vanid, gelezen, 
titel, wie, bericht, datum, tijd) VALUES ('', '$user_email', '$jeid', '0', '$titel', '$aanwie', '$bericht', '$datum', '$tijd')"; 
mysql_query($query) or die (mysql_error()); 
 
echo "Het bericht is succesvol gestuurd naar de persoon"; 
 
  } 
} 
 
else 
 
{ 
 
?> 
<form method="post" action="berichttoevoegen.php"> 
  <table width="100%" border="0" cellspacing="0" cellpadding="2"> 
    <tr> 
      <td> 
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="100">Naar 
          wie:</font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-1"> 
          <select name="nummer" size="1"> 
            <?php 
$query = mysql_query("SELECT * FROM users order by user_name"); 
while ($obj2 = mysql_fetch_object($query)) { 
$persoon = $obj2->user_email; 
echo"<option value=\"$persoon\">$persoon</option>"; 
} 
?> 
          </select> 
          </font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">Titel:</font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"> <font face="Verdana, Arial, Helvetica, sans-serif" size="-1"> 
          <input type="text" name="titel" size="50" maxlength="50"> 
          </font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">Bericht:</font></div> 
      </td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="-1"> 
          <textarea name="bericht" cols="60" rows="20"></textarea> 
          </font></font></div> 
      </td> 
    </tr> 
    <tr> 
      <td>&nbsp;</td> 
    </tr> 
    <tr> 
      <td> 
        <div align="center"> 
          <input type="submit" name="Submit" value="Stuur bericht"> 
          <input type="reset" name="Reset" value="Reset"> 
        </div> 
      </td> 
    </tr> 
  </table> 
</form> 
<?php 
} 
?>

hij laat nog steeds die vakjes leeg :(
 
Regel 40:
PHP:
$aanwie = $_POST['nummer'];
 
ah daar zat het dus in dom dom xd

maar nu deed hij het niet. het toevoegen in database gaat goed :D maar daarna... ik heb deze query:

PHP:
$query = mysql_query("SELECT * FROM berichten where wie = " . $_SESSION['user_name'] . "AND gelezen = '0'");

en nu zegt hij:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home//bericht/tabel.php on line 9

het is de bedoeling dat hij kijkt of degene die sessie heeft nog berichten heeft die ongelezen zijn maar hoe doe ik dat :$
 
spatie achter AND.. zet er die(mysql_error()) achter voor fatsoenlijke debugging. Wanneer je live gaat dit verwijderen. Ook escape je niks en ben je dus een gemakkelijke prooi voor een hacker ;)
 
Plus er moeten quotes om de username aangezien het een string is.

PHP:
"SELECT * FROM berichten WHERE wie = '" . $_SESSION['user_name'] ."' AND gelezen = '0'"
 
ik heb nu:
PHP:
$result = mysql_query("SELECT * FROM berichten WHERE wie = '" . $_SESSION['user_name'] ."' AND gelezen = '0'") . mysql_error();

EN nu krijg ik error:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /public_html/bericht/tabel.php on line 11
doe ik iets fout?
 
Verander ". mysql_error();" eens door "or die(mysql_error());"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan