alle felter skal udfyldes...

Tags:    php

<< < 12 > >>
hvad skal jeg gøre så alle felter skal udfyldes i min gæstebog??

jeg har 2 felter; navn og tekst ....


.MortenJ



20 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
<?PHP
mysql_connect("localhost","**","**");
mysql_select_db("**");
if(!$navn || !$tekst){
echo "Begge felter skal udfyldes!";
} else {
$query = mysql_query("INSERT INTO ***** SET navn = '$navn', tekst = '$tekst', time = '$time'");
}
?>

sådan ser den nu .. men virker ik ... hvorfor ik ???
.MortenJ

Du kan meget vel sidde med register_globals off... hvilket gør at et form-output ikke kan tilgås via en variabel... Du bør (skal, hvis register_globals er off) istedet skrive:
Fold kodeboks ind/udKode 

Det burde virke..
------------------
// Jonathan at Holst dot tk

Rasmus gav dig PHP'en... Brug den.




hvad skal jeg gøre så alle felter skal udfyldes i min gæstebog??

jeg har 2 felter; navn og tekst ....


.MortenJ


hvis din knap hedder submit, og action er lig med $_SERVER["PHP_SELF"], kan du skrive det sådan her:
Fold kodeboks ind/udKode 

Håber det kan bruges...







Jeg går ud fra at du har lavet en form der sender videre ... Lad os kalde dem $navn og $tekst.
Det er faktisk ganske simpelt:
<pre>

<?php

[Mulighed #1]

if(!$navn || !$tekst)
{ echo "Du skal udfylde begge felter. Prøv igen"; }

else
{
[Resten af siden her]
}

[Mulighed #2]

if(!$navn) // Her udskriver den
{ echo "Du har ikke intastet noget navn. Prøv igen."; } // nedenstående hvis
// $navn er tom, dvs. !$navn
else
{
if(!$tekst) // Hvis $navn ikke er tom
{ echo "Du har ikke intastet noget i tekst feltet. Prøv igen."; } // går den videre og gør
// det samme med $tekst
else
{ // Hvis både $navn og
[Resten af siden her] // $tekst har indhold
} // går den videre og viser
} // resten af siden.

?>
</pre>
En meget simpel måde at gøre det på som burde være nem at forstå.
[Redigeret d. 16/12-02 00:20:27 af Peter Stæhr]



jeg har lavet det om så det ser sådan her ud:

Fold kodeboks ind/udKode 


men den skriver ik "Begge felter skal udfyldes!" .... en der ved hvorfor??



.MortenJ



Jeg går ud fra at du har lavet en form der sender videre ... Lad os kalde dem $navn og $tekst.
Det er faktisk ganske simpelt:
<pre>

<?php

[Mulighed #1]

if(!$navn && !$tekst)
{ echo "Du skal udfylde begge felter. Prøv igen"; }

else
{
[Resten af siden her]
}

[Mulighed #2]

if(!$navn)
{ echo "Du har ikke intastet noget navn. Prøv igen."; }

else
{
if(!$tekst)
{ echo "Du har ikke intastet noget i tekst feltet. Prøv igen."; }

else
{
[Resten af siden her]
}
}

?>
</pre>
En meget simpel måde at gøre det på som burde være nem at forstå.


det er næsten den samme måde som den jeg allerede har skrevet... men den kom lige efter dit indlæg :) ...

men den skriver det heller ik nu .....

jeg kan ik fatte hvorfor... ?
.MortenJ




det er næsten den samme måde som den jeg allerede har skrevet... men den kom lige efter dit indlæg :) ...


sikkert, men jeg har taget højde for at du sikkert lige er startet på PHP, så jeg har opstilt det lidt mere overskueligt og indsat kommentarer så der ikke skulle være tvivl.

(rettede bare en fejl, kom til at skrive "qoute")
[Redigeret d. 15/12-02 23:57:43 af Peter Stæhr]



ik det der er problemet .. :)

den skriver det bare ikke ud...

så den kager på samme måde som det jeg skrev... ved du hvrofr den gør det??

.MortenJ



Og et lille tip til mySQL ....

<pre>
$query=("INSERT INTO brugere(navn, tekst) VALUES('$navn', '$tekst')");

mysql_query($query); // husk at man også skal køre den :)


Og hvis du skal have ud igen ...

$hent_data=mysql_query("SELECT * FROM brugere");

mysql_query($hent_data);

while($data = mysql_fetch_array($hent_data)
{
echo "$data[navn]";
echo "$data[tekst]";
}

</pre>




ik det der er problemet .. :)

den skriver det bare ikke ud...

så den kager på samme måde som det jeg skrev... ved du hvrofr den gør det??

.MortenJ

<pre>
if ($add) { // <---- WTF er dette??? Fjern det ....
if($navn == '' || $tekst == ''){
echo "Begge felter skal udfyldes!";
} else {
$query = mysql_query("INSERT INTO ***** SET navn = '$navn', tekst = '$tekst', time = '$time'");
}} // Fjern en "}"
</pre>


Det du skriver er "Hvis $add, gør blah blah blah" (uden noget kriterie for $add).... Er det en action du har brugt?

<pre>
<form method='post' action='ting.php?action=add'>
</pre>
Så hedder det
<pre>
if (action=='add')
blah blah blah .....
</pre>
[Redigeret d. 16/12-02 00:18:36 af Peter Stæhr]



Og et lille tip til mySQL ....

<pre>
$query=("INSERT INTO brugere(navn, tekst) VALUES('$navn', '$tekst')");

mysql_query($query); // husk at man også skal køre den :)


Og hvis du skal have ud igen ...

$hent_data=mysql_query("SELECT * FROM brugere");

mysql_query($hent_data);

while($data = mysql_fetch_array($hent_data)
{
echo "$data[navn]";
echo "$data[tekst]";
}

</pre>


jamen den virker fint.... den vil bare ik skrive "Begge felter skal udfyldes" ud...
.MortenJ



<< < 12 > >>
t