Avatar billede Xelot Nybegynder
08. november 2002 - 01:33 Der er 5 kommentarer og
3 løsninger

Hvordan stopper jeg det igen..!?

Hej jeg er i gang med at kode en mailingliste. Der skal være en slags begrænsning på sådan at der ikke kan blive tilmeldt mere end 50 personer. jeg har lavet en del af scritptet, men hvordan stopper jeg koden efter at den har printet skriften "Der er ikke mere plads" ud..?!

Koden ser sådan her ud.. :
<html>
<head></head>

<body>

<?
include "config.php";

$db;
$select;
if($skriv){
mysql_query("INSERT INTO mail(navn,email) VALUES('$navn','$email')");
echo "<b>Din emailadresse er nu tilføjet til vores arkiv. Du vil nu fremover modtage vores nyhedsbrev via email<hr></b>";



$fil=fopen("count.txt", "r");
$antal=fgets($fil, 1096);

fclose($fil);



$antal++;
if($antal>"10"){
echo "Der er ikke mere plads";


}
$fil=fopen("count.txt","w");
fwrite($fil,$antal);
fclose($fil);

}

?>
<title><? echo "$pagename"; ?></title>
<left>
<h1>Tilføj navn og mail</h1>
<form method=post action=<? echo $PHP_SELF; ?>>
<input type=hidden name=skriv VALUE=1>
Navn: <input type=text name=navn><br>
Email: <input type=text name=email><br>
<input type=submit value="Tilføj">
</form>



</left>
</body>
</html>


Så altså jeg vil gerne have det sådan at formularen IKKE popper op når teksten kommer..
Avatar billede thez Nybegynder
08. november 2002 - 01:44 #1
Du skal nok lave lidt om på din kode struktur.
Man skal vel slet ikke ku tilmelde sig hvis der er mere end det antal du nu ønsker.
Så allerede helt i toppen af din kode skal du vel åbne din fil med antallet op og se hvormange der er med, hvis det tal er større end det du ønsker, stopper det jo her.

Det ka du gøre ved at bruge en if-then-else konstruktion
if ( samlet antal > ønsket antal ) {
desværre der er allerede nok med
} else {
jeps der er plads til flere, så vi koder videre...
}

Jeg ved ikke helt hvordan din struktur er, men man ka meget simpelt finde ud af hvor mange entries der er i din tabel, altså tælle udfra MySQL hvor mange der allerede er medlemmer, så du undgår at benytte dig af textfiler til at gemme data i, som vel også er grunden til at du gemmer email adresserne i MySQL?

Var det nok til at hjælpe dig videre?

mvh Simon
Avatar billede Slettet bruger
08. november 2002 - 02:38 #2
Prøv med følgende:

$sql = "select * from mail";
$result = mysql_query($sql);
$rows = mysql_num_rows($result); //antal rækker i mail / emailadresser!

if($skriv && $rows < 50){
mysql_query("INSERT INTO mail(navn,email) VALUES('$navn','$email')");
echo "<b>Din emailadresse er nu tilføjet til vores arkiv. Du vil nu fremover modtage vores nyhedsbrev via email<hr></b>";
}
else
{
echo "der er ikke plads til flere adresser i mailinglisten!";
}
Avatar billede bpuschl Nybegynder
08. november 2002 - 09:32 #3
Hvis du vil have koden til at stoppe så er 2 muligheder. Den første (og nemmeste) er at bruge die() eller exit(). Dette stopper eksekveringen af koden.

Den anden Metode er at ligge din formkode i en php variabel og ud fra dit valg, vælge om variablen skal vises.
Avatar billede Xelot Nybegynder
09. november 2002 - 01:14 #4
FEEEEEEEG.. findes der en kode der disabler opdatering af hele siden..?!
Avatar billede Xelot Nybegynder
10. november 2002 - 00:37 #5
Ska jeg oprette den som en ny tråd..?!
Avatar billede Slettet bruger
10. november 2002 - 00:40 #6
når der er blevet kaldt en side som eksisterer. kan du nok ikke undgå at der bliver returneret en blank side. Men hvis du vil have et ordentligt svar skal du nok oprette en ny tråd!
Avatar billede Xelot Nybegynder
10. november 2002 - 00:47 #7
regin>> Ska du have en del af points'ne så skriv et svar.
Avatar billede Slettet bruger
10. november 2002 - 00:55 #8
sure
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