Avatar billede exp-ralle Nybegynder
01. maj 2003 - 21:05 Der er 8 kommentarer og
1 løsning

Fejl i PHP script, hvorfor?????

Harj...

Jeg har dette script som er indsæt siden til en gæstebog jeg er ved at lave:

<?php

ob_start();

//indsaet.php

?>

<link rel="stylesheet" href="../style.css" type="text/css">

<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<table border="0" width="400" cellspacing="0" cellpadding="0">
  <tr>
    <td width="50%"><b>Navn:</b></td>
    <td width="50%"><input type="text" name="navn"></td>
  </tr>
  <tr>
    <td width="50%"><b>E-mail:</b></td>
    <td width="50%"><input type="text" name="email"></td>
  </tr>
  <tr>
    <td width="50%"><b>Hjemmeside:</b></td>
    <td width="50%"><input value="http://" type="text" name="hjemmeside"></td>
  </tr>
  <tr>
    <td width="50%"><b>Besked:</b></td>
    <td width="50%"> <textarea name="besked"></textarea>
  </td>
  </tr>
  <tr>
    <td width="50%"><input type="submit" name="tilfoj" value="Tilføj"> <input type="reset" name="nulstil" value="Nulstil form"></td>
    <td width="50%"></td>
  </tr>
</table>
</form>

<?php

if($tilfoj){

    include("db.php");

    $navn = $_POST['navn'];
    $email = $_POST['email'];
    $hjemmeside = $_POST['hjemmeside'];
    $besked = $_POST['besked'];
    $dato = date("d/m/Y H:i:s");

    $query = "Insert into Tagwall (navn, email, hjemmeside, besked, dato) values('$navn', '$email', '$hjemmeside', '$besked', '$dato')";

    mysql_query($query) or die (mysql_error());

        if(mysql_error() == 0){

            header("Location: index.php");
        }

    mysql_close();

}

ob_end_flush();

?>

Den vil ikke indsætte det når man trykker på Tilføj submit knappen og den skriver:

Notice: Undefined index: navn in C:\Programmer\Apache2\files\Hjemmeside\Tagwall\indsaet.php on line 39

allernederst også inden man submitter...

BTW. Hvis man sætter et felt til null i mysql SKAL det så være null eller er det bare så det MÅ være null og not null må ikke...




Rasmus
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 21:09 #1
if(isset($_POST['tilfoj']){
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 21:10 #2
if(isset($_POST['tilfoj'])){
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 21:11 #3
Null betyder "kan være null eller en værdi"
Not null betyder "det er en fejl hvis der ikke er en værdi"
- en indsættelse vil fx give en fejl. En tom streng er
dog ikke null
Avatar billede exp-ralle Nybegynder
01. maj 2003 - 21:16 #4
Ok det virker nu...

Er der en måde jeg kan redirecte på så der ikke bliver ved med at stå indsaet.php i adresselinien men index.php som den "header, location" til...?
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 21:22 #5
Du fjerner bare if-en rundt om din header

  if(mysql_error() == 0){

            header("Location: index.php");
        }
Avatar billede exp-ralle Nybegynder
01. maj 2003 - 21:35 #6
Aaahh... mange tak det virker perfekt nu :D

Vil du have nogle point inden jeg smutter i seng?
Avatar billede fangel Nybegynder
01. maj 2003 - 21:54 #7
erik => skulle det ikke være

if(mysql_errno() == 0){ ... }

hvis du skal bruge mysql_error() skal det være

if(mysql_error() == ''){ ... }

Morten
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 21:58 #8
Ingen point, tak.
Dea - det er ligegyldigt - der er en die i linien ovenover. ;)
Avatar billede exp-ralle Nybegynder
02. maj 2003 - 14:29 #9
Nå nå :)

Men mange mange tak alligevel...

Jeg tar dem bare selv igen så :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester