Pagina 1 van 1

Nieuws systeem: Wil niet echt goed werken.

Geplaatst: 24 nov 2004, 17:48
door CG bandicoot
Yo phpBB'ers (ja, phpBB is een werkwoord)

Ik ben bezig met een nieuws systeem voor een site (los van phpBB).
Deze bestaat nu ff uit 3 pagina's (het is dus een simpel systeem)

index.php (werkt uitstekend)
addnews.php (werkt niet)
news.php (werkt ook niet)

Dit is addnews.php:

Code: Selecteer alles

<?

mysql_connect ('/*localhost*/','/*gebruiker*/','/*wachtwoord*/' ); 
mysql_select_db ('/*database*/' );  

  if($submit)

  {//begin of if($submit).

      // Set global variables to easier names

     // and pervent sql injection and apostrophe to break the db.

      $catergorie = mysql_real_escape_string($_POST['catergorie']);

      $onderwerp = mysql_real_escape_string($_POST['onderwerp']);

      $auteur = mysql_real_escape_string($_POST['auteur']);
      
      $tijd = mysql_real_escape_string($_POST['tijd']);
      
      $datum = mysql_real_escape_string($_POST['datum']);
      
      $body = mysql_real_escape_string($_POST['body']);
      
      $bron_naam = mysql_real_escape_string($_POST['bron_naam']);

      $bron_site = mysql_real_escape_string($_POST['bron_site']); 

              //check if (onderwerp) field is empty then print error message.

              if(!$onderwerp){  //this means If the title is really empty.

                     echo "Fout: Je moet een onderwerp invullen.";

                     exit(); //exit the script and don't do anything else.

              }// end of if

 

         //run the query which adds the data gathered from the form into the database

         $result = mysql_query("INSERT INTO nieuws (catergorie, onderwerp, auteur, tijd, datum, body, bron_naam, bron_site)

                       VALUES ('$onderwerp',NOW(),'$catergorie','$onderwerp','$auteur','$tijd','$datum','$body','$bron_naam','$bron_site')",$connect);

          //print success message.

          echo "<b>Dank u wel! Het nieuwsbericht is succesvol toegevoegd<br>Je wordt over (4) Seconden terug gestuurd naar de hoofdpagina";

          echo "<meta http-equiv=Refresh content=4;url=index.php>";

  }//end of if($submit).

 

 

  // If the form has not been submitted, display it!

else

  {//begin of else

 

      ?>

      <br>

      <h3>::Voeg nieuws toe</h3>

 

      <form method="post" action="<?php echo $PHP_SELF ?>">

      
      
      Catergorie: <select name="catergorie" size="1">
    <option selected value="multi">multi</option>
    <option value="pc">pc</option>
    <option value="ps2">ps2</option>
    <option value="xbox">xbox</option>
    <option value="ngc">ngc</option>
    <option value="gba">gba</option>
    <option value="nes">nes</option>
    <option value="snes">snes</option>
    <option value="gbc">gbc</option>
    <option value="ps1">ps1</option>
    <option value="ps3">ps3</option>
    <option value="xbox2">xbox2</option>
    <option value="psp">psp</option>
    <option value="nds">nds</option>
    <option value="algemeen">algemeen</option>
    </select> <br>Onderwerp: <input name="onderwerp" size="40" maxlength="255">

      <br>

      Auteur: <input type="text" name="auteur"><br>Bericht: <textarea name="body" rows="11" cols="59"></textarea><br>Bron 
    naam: <input type="text" name="bron_naam"><br>Bron url &nbsp;&nbsp;&nbsp;: 
    <input type="text" name="bron_site"><br><br>

      <br><input type="submit" name="submit" value="Add News">

      </form>

      <?

  }//end of else

  

  

?>
Ik vind het een beetje vreemd dat de data niet in de db verwerkt wordt
Dit is de structuur van de tabel nieuws:

Code: Selecteer alles

CREATE TABLE nieuws (
  id tinyint(8) unsigned NOT NULL auto_increment,
  catergorie varchar(255) NOT NULL default '',
  onderwerp varchar(255) NOT NULL default '',
  auteur varchar(255) NOT NULL default '',
  tijd time NOT NULL default '00:00:00',
  datum date NOT NULL default '0000-00-00',
  body longtext NOT NULL,
  bron_naam varchar(255) NOT NULL default '',
  bron_site varchar(255) NOT NULL default '',
  UNIQUE KEY id (id)
) TYPE=MyISAM;
Nu weer ff een andere zaak. news.php. Daar kun je het volledige bericht op lezen zodat je bijvoorbeeld krijgt news.php?id=1

Dit is news.php:

Code: Selecteer alles

<?

mysql_connect ('/*localhost*/','/*gebruiker*/','/*wachtwoord*/' ); 
mysql_select_db ('/*database*/' ); 

        $result = mysql_query("SELECT * FROM nieuws WHERE id='$id' ",$connect);

        while($myrow = mysql_fetch_assoc($result))

             {

                     echo "<b>Onderwerp:</b> $myrow['onderwerp']<br> <b>tijd:</b> $myrow['tijd']&nbsp;&nbsp;&nbsp;<b>datum:</b> $myrow['datum']&nbsp;&nbsp;&nbsp;<b>auteur:</b> $myrow['auteur']";

                     echo $myrow['body'];

                     echo "</b><br>On: <i>";

                     echo "<b>Bron: <a href="$myrow['bron_site']">$myrow['bron_naam']";

                     echo "<br><br><a href=\"javascript:self.history.back();\"><-- Terug naar vorige pagina</a>";

             }

?>
De error is:

Code: Selecteer alles

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /data/members/free/tripod/nl/n/o/o/noogc/htdocs/news.php on line 12
/dit is line 12:

Code: Selecteer alles

echo "<b>Onderwerp:</b> $myrow['onderwerp']<br> <b>tijd:</b> $myrow['tijd']&nbsp;&nbsp;&nbsp;<b>datum:</b> $myrow['datum']&nbsp;&nbsp;&nbsp;<b>auteur:</b> $myrow['auteur']";
Heeft iemand een oplossing?

http://members.lycos.nl/noogc/addnews.php
http://members.lycos.nl/noogc/news.php?id=1

Geplaatst: 24 nov 2004, 22:44
door mosymuis
Heel simpel; quotes binnen quotes.
echo "<b>Bron: <a href=\"$myrow['bron_site']\">$myrow['bron_naam']";
Ook is je script nogal onzurgvuldig. Het is beter om variabelen, arrays zeker, van strings los te koppelen:
echo "<b>Bron: <a href=\"" . $myrow['bron_site'] . "\">$myrow['bron_naam']";