PHP, werk maar er staat toch: "undifenid index: txtName" line 11

Status
Niet open voor verdere reacties.

gebruiker78

Gebruiker
Lid geworden
29 jun 2010
Berichten
428
hallo dit is een zeer simpele reactie script, alles werkt maar toch staat er "undifenid index: txtName" at line 11. (en het zelfde voor 12)
hoe haal ik dit weg? en wat is er fout.
(ik heb alleen de fout als ik via wamp werk, maar natuurlijk klopt er iets niet dus ik wil het er wel uit)

en niet perse nodig, maar nou komt de datum in het engels kan dat ook in het nederlands? (zeker ergens bij phpmyadmin?)


PHP en DATABASE:
CREATE TABLE guests (
id int(10) NOT NULL auto_increment,
name varchar(50) NOT NULL,
message varchar(255) NOT NULL,
date timestamp(14) NOT NULL,
PRIMARY KEY (id)
)

PHP:
<?php 
// Change these to your own database settings 
$host = "localhost"; 
$user = "..."; 
$pass = "..."; 
$db = "..."; 

mysql_connect($host, $user, $pass) OR die ("Could not connect to the server."); 
mysql_select_db($db) OR die("Could not connect to the database."); 
       
$name = stripslashes($_POST['txtName']); 
$message = stripslashes($_POST['txtMessage']); 

if (!isset($_POST['txtName'])) { 

    $query = "SELECT id, name, message, DATE_FORMAT(date, '%D %M, %Y @ %H:%i') as newdate FROM guests ORDER BY id DESC";
     $result = mysql_query($query); 
     
    while ($row = mysql_fetch_object($result)) { 

?> 

<br />Naam: <b><?php echo $row->name; ?></b> <FONT size="-2"><i><?php echo $row->newdate; ?></i><br></FONT>
<?php echo $row->message; ?>
 

<?php 
         
    } 
     
?> 

<p>Post a message</p> 

<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>"> 

    <p><label for="txtName">Name:</label><br /> 
    <input type="text" title="Enter your name" name="txtName" /></p> 

    <p><label for="txtMessage">Your message:</label><br /> 
    <textarea title="Enter your message" name="txtMessage"></textarea></p> 
     
    <p><label title="Send your message"> 
    <input type="submit" value="Send" /></label></p> 
     
</form> 

<?php 

} 

else { 

    // Adds the new entry to the database 
    $query = "INSERT INTO guests SET message='$message', name='$name', date=NOW()";
     $result = mysql_query($query); 

    // Takes us back to the entries 
    $ref = $_SERVER['HTTP_REFERER']; 
    header ("Location: $ref"); 
} 

?>
 
Laatst bewerkt:
ik denk omdat buildmode? aanstaat. moet je ergens uitzetten in de instellingen van wamp.
 
Het komt omdat je verwijst naar een variabele in $_POST zonder te controleren of die wel bestaat. Als iemand op je pagina komt zonder het formulier ingevuld te hebben wil je gebruik maken van die waarde, die er niet is.

Je moet je script herschrijven en gebruiken maken van isset om te zorgen dat die foutmeldingen niet meer voorkomen.
 
Gewoon de regels

Code:
$name = stripslashes($_POST['txtName']); 
$message = stripslashes($_POST['txtMessage']);

na de } else {

constructie plaatsen.

Maikel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan