Avatar billede tcp Nybegynder
14. oktober 2006 - 13:56 Der er 24 kommentarer og
1 løsning

får for mange tomme felter i databasen

hej bruger dette til at tilføje link til min side problemet er bare at man kan trykke på link uden der er udfyldt noget i felterne og det giver en masse tomme felter i men data base


nogen der kan hjælpe!

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>link</title>
</head>
<body>

<!-- Her er formularen -->
<form name="link" method="post" action="link2.php">
<p>&nbsp; sidens navn:</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<p>&nbsp;sidens adresse (http://www.sidens-navn.dk)&nbsp;</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<input type="submit" name="send" value="Link">
</form>

<?php
// Hent indholdet af formularens felter
$navn = $_REQUEST["navn"];
$link = $_REQUEST["link"];


// Skab forbindelse til databasen her
mysql_connect("localhost", "123", "") or die(mysql_error());
mysql_select_db("limenet") or die(mysql_error());

//Indsæt indholdet af formularfelterne i databasen
mysql_query("INSERT INTO link(id, navn, link) values(0, '$navn', '$link')");
?>
</body>
</html>
Avatar billede jaw Nybegynder
14. oktober 2006 - 13:59 #1
Prøv:

if( (isset($_POST['navn']) && !empty($_POST['navn'])) && (isset($_POST['navn']) && !empty($_POST['link'])) ) {
  mysql_query("INSERT INTO link(id, navn, link) values(0, '$navn', '$link')");
}

...så indsætter den kun, hvis navn og link ikke er blanke.
Avatar billede coderdk Praktikant
14. oktober 2006 - 13:59 #2
<?php
// Hent indholdet af formularens felter
$navn = trim( $_POST["navn"] );
$link = trim( $_POST["link"] );

if ( strlen( $navn ) > 0 && strlen( $link ) > 0 )
{
  // Skab forbindelse til databasen her
  mysql_connect("localhost", "123", "") or die(mysql_error());
  mysql_select_db("limenet") or die(mysql_error());

  //Indsæt indholdet af formularfelterne i databasen
  mysql_query("INSERT INTO link(id, navn, link) values(0, '$navn', '$link')");
}
else
{
  echo "Du skal udfylde begge felter...";
}
?>
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:00 #3
oki hvor skal den stå ?
Avatar billede coderdk Praktikant
14. oktober 2006 - 14:00 #4
hehe jaw :D
Avatar billede jaw Nybegynder
14. oktober 2006 - 14:01 #5
Hehe, det er bare om at komme ud af starthullerne :)

Du har i forvejen den mysql_query()-linie der står. Linien før og efter har jeg så tilføjet, så du skal blot tilpasse...
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:05 #6
virker ikke nu til føjer den ikke noget

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>link</title>
</head>
<body>

<!-- Her er formularen -->
<form name="link" method="post" action="link2.php">
<p>&nbsp; sidens navn:</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<p>&nbsp;sidens adresse (http://www.sidens-navn.dk)&nbsp;</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<input type="submit" name="send" value="Link">
</form>

<?php
// Hent indholdet af formularens felter
$navn = trim( $_POST["navn"] );
$link = trim( $_POST["link"] );

if ( strlen( $navn ) > 0 && strlen( $link ) > 0 )
{
  // Skab forbindelse til databasen her
  mysql_connect("localhost", "123", "123") or die(mysql_error());
  mysql_select_db("limenet") or die(mysql_error());

  //Indsæt indholdet af formularfelterne i databasen
  mysql_query("INSERT INTO link(id, navn, link) values(0, '$navn', '$link')");
}
else
{
  echo "Du skal udfylde begge felter...";
}
?>
</body>
</html>
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:08 #7
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:08 #8
den skriver Du skal udfylde begge felter... bare man åbner siden
Avatar billede jaw Nybegynder
14. oktober 2006 - 14:11 #9
Det er fordi begge dine input felter hedder "navn". Ét af dem skal du jo kalde link :)
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:14 #10
ja smiler det virker næsten,,,, nu tilføjer den det bare to gange hvis man opdatere siden efter man har skrevet det
Avatar billede jaw Nybegynder
14. oktober 2006 - 14:15 #11
Kan løses sådan her f.eks.: http://www.eksperten.dk/spm/738408
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:20 #12
oki forstår jeg ikke...skal bruger bare sendes til en anden side når de trykker på link....
Avatar billede jaw Nybegynder
14. oktober 2006 - 14:29 #13
Nej, din form har nu lin2.php som action. Det udskifter du f.eks. med add_link.php, og add_link.php skal så indeholde:

<?php
// Hent indholdet af formularens felter
$navn = trim( $_POST["navn"] );
$link = trim( $_POST["link"] );

if ( strlen( $navn ) > 0 && strlen( $link ) > 0 )
{
  // Skab forbindelse til databasen her
  mysql_connect("localhost", "123", "123") or die(mysql_error());
  mysql_select_db("limenet") or die(mysql_error());

  //Indsæt indholdet af formularfelterne i databasen
  mysql_query("INSERT INTO link(id, navn, link) values(0, '$navn', '$link')");
  //Sender brugeren tilbage
  header("Location: ".$_SERVER['HTTP_REFERER']);
  exit;
}
else
{
  echo "Du skal udfylde begge felter...";
}
?>

...men om det giver bøvl når du bruger frames, det er jeg lidt usikker på. Ved at være noget tid siden jeg har brugt frames :)
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:35 #14
skal det så fjernes fra link2.php
Avatar billede jaw Nybegynder
14. oktober 2006 - 14:37 #15
Yes...
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:37 #16
<!-- Her er formularen -->
<form name="link" method="post" action="link2.php">
<p>&nbsp; sidens navn:</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<p>&nbsp;sidens adresse (http://www.sidens-navn.dk)&nbsp;</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<input type="submit" name="send" value="Link">
</form>
og hvor skriver jeg så add_link.php ind
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:38 #17
<!-- Her er formularen -->
<form name="link" method="post" action="add_link.php">
<p>&nbsp; sidens navn:</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<p>&nbsp;sidens adresse (http://www.sidens-navn.dk)&nbsp;</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<input type="submit" name="send" value="Link">
</form>
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:43 #18
du kan se det her www.limenet.dk

nu får jeg fejlen Du skal udfylde begge felter... når den viser add_link.php
Avatar billede jaw Nybegynder
14. oktober 2006 - 14:45 #19
Ja, men det er jo klart, eftersom du stadig har 2 felter, der hedder "navn". Et af dem skal stadig hedde "link".
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:45 #20
sådam ser link2.php ud

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>link</title>
</head>
<body>

<!-- Her er formularen -->
<form name="link" method="post" action="add_link.php">
<p>&nbsp; sidens navn:</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<p>&nbsp;sidens adresse (http://www.sidens-navn.dk)&nbsp;</p>
<p>&nbsp;<input type="text" name="navn" size="30" maxlength="50"></p>
<input type="submit" name="send" value="Link">
</form>

</body>
</html>
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:46 #21
sorry
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:48 #22
Det virker Smiler mange tak for hjælpen :) bare send et svar
Avatar billede jaw Nybegynder
14. oktober 2006 - 14:49 #23
Super :)

Men som minimum, så skal coderdk have halvdelen, hvis han vil dele?! Løsningen på det originale spørgsmål kom han jo med...
Avatar billede jaw Nybegynder
14. oktober 2006 - 14:50 #24
Hovsa, det skulle jo så have været et svar.
Avatar billede tcp Nybegynder
14. oktober 2006 - 14:52 #25
sender 200p til ham også smiler
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
Computerworld tilbyder specialiserede kurser i database-management

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