Nieuws systeem: Wil niet echt goed werken.

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Plaats reactie
Gebruikersavatar
CG bandicoot
Berichten: 391
Lid geworden op: 18 mar 2004, 17:47
Locatie: Amersfoort
Contacteer:

Nieuws systeem: Wil niet echt goed werken.

Bericht door CG bandicoot » 24 nov 2004, 17:48

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

Code: Selecteer alles

<?
$sql = mysql_query("SELECT * FROM bestevanbeste WHERE name = 'CG Bandicoot'");
while ($obj = mysql_fetch_assoc($sql)) {
if (mysql_num_rows($sql) == 0) {
echo 'Huh?';
} else {
echo 'Als je het maar weet.';
}} ?>

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 24 nov 2004, 22:44

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']";

Plaats reactie