beste webmasters ik ben volop php aan het leren ik ben nu een gastenboek aan het maken
mijn eerste scriptje maar bij het posten maakt hij de ID aan in de db maar hij zend
de naam email en msg niet mee in de database wie kan me helpen

<?php
  include("connect.php");
  if ($_POST["submit"]) {
  mysql_connect("$dbhost","$username","$dbww");
  mysql_select_db("$db");
  $_POST['naam'];
  $_POST['email'];
  $_POST['msg'];

  $naam = htmlspecialchars($naam);
  $email = htmlspecialchars($email);
  $msg = htmlspecialchars($esg);

  $naam = strip_tags($naam);
  $email = strip_tags($email);
  $msg = strip_tags($msg);

    $msg = addslashes($msg);
    $msg = eregi_replace('klote','***',$msg);
    $msg = eregi_replace('kut','***',$msg);
    $msg = nl2br($msg);
  $sql = "INSERT INTO Guestbook SET Name='$naam', Email='$email', Message='$msg'";
  $query = mysql_query($sql) or die("bericht niet geplaatst!");
  echo "<a href=\"index.php\">Bedankt we hebben je bericht goed ontvangen klik hier om terug naar het gastenboek te surfen</a>";
  } else { ?>

  <form method="post" action="<?php echo $PHP_SELF;?>">
  Naam: <input type="text" name="naam"><br>
  Email: <input type="text" name="email"><br>
  Bericht: <textarea name="msg" rows="10" cols="10"></textarea><br>
  <input type="submit" name="submit" value="submit">
  </form>
 <?php } ?>
regel 6-8 hoeven niet...

op regel 22, je variabelen buiten quotes.
En controleren of er iets verstuurd is doen we altijd met:

if($_SERVER['REQUEST_METHOD']=="POST")


En niet met:

if ($_POST["submit"]) {
Aar schreef op 22.01.2010 12:52
En controleren of er iets verstuurd is doen we altijd met:

if($_SERVER['REQUEST_METHOD']=="POST")


En niet met:

if ($_POST["submit"]) {


heb ik net eens getest maar werkt spijtig genoeg niet alvast bedankt
Dat is ook niet het enige wat je moet doen.

Je hele code is bagger/fout/slecht

-> http://phptuts.nl goeie tutorials.

Verder mis je ook nog veld controle's en foutenafhandeling in je query.
Waar komt $naam vandaan op regel 10 (enz)?

Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
<?php
$naam = htmlspecialchars($naam);
$email = htmlspecialchars($email);
$msg = htmlspecialchars($esg);

$naam = strip_tags($naam);
$email = strip_tags($email);
$msg = strip_tags($msg);
?>
je wilt de naam vullen met de htmlspecialchars VAN diezelfde naam??
of wilde je die vullen met $_POST['naam']

<?php
$naam = htmlspecialchars($_POST['naam']);
$email = htmlspecialchars($_POST['email']);
$msg = htmlspecialchars($_POST['esg']);
?>
en controleer je POST-data voor sqlinjectie, mysql_real_escape_string()
thx voor de hulp ik ben weer wat verslimt bedankt allemaal
@Mr.Ark
net bezig met php , en wordt al gelijk met de grond gelijk gemaakt:P

@swabbel
-
<form method="post" action="<?php echo $PHP_SELF;?>">

vervangen door:
<form method="post">


- Daarnaast is het netter om alle output in een php script te echoën en niet tussen het php script in te zetten.

- Je hebt geen fouten afhandeling, wat als mysql_connect nou verkeerd gaat?

-
$naam = htmlspecialchars($naam);
  $email = htmlspecialchars($email);
  $msg = htmlspecialchars($esg);

  $naam = strip_tags($naam);
  $email = strip_tags($email);
  $msg = strip_tags($msg);

vervangen door

$naam = strip_tags(htmlspecialchars($naam));
  $email = strip_tags(htmlspecialchars($email));
  $msg = strip_tags(htmlspecialchars($esg));


-gebruik in plaats van eregi_replace()
[php]str_replace()[/php]
Waarom?
je gebruikt geen patterns, dus str_replace voldoet ook. Wat jij doet is een mammoet tanker gebruiken om het Ijzelmeer over te steken.
@Mr.Ark
net bezig met php , en wordt al gelijk met de grond gelijk gemaakt:P


Problemen mee?, had even een karl momentje.
Mr.Ark schreef op 22.01.2010 13:10
@Mr.Ark
net bezig met php , en wordt al gelijk met de grond gelijk gemaakt:P


Problemen mee?, had even een karl momentje.

Als je wat beter had opgelet, dan had je wel gezien dat ik over het algemeen beginners niet direct de grond in boor.
Ik vertel alleen wat ze fout doen en hoe ze dat zouden kunnen oplossen (zonder code te geven want daar leren ze van, zelf te scripten).
Verder ben ik niet van mening dat ik altijd negatief ben, dus over een Karl momentje kun je niet spreken. Er zijn zat mensen die hartstikke blij met mij zijn, omdat ik hun probleem verholpen heb.
En als ik negatief ben, dan schuif ik dat niet af op iets anders. Of een 'hanzelfanse moment'.
Ook vind ik het nogal hypocriet van jou, volgens mij was jij toch zo tegen dat negatieve gedoe. Waarom doe je het dan zelf? (But correct me if I am wrong.)

Reageren