Avatar billede eagle124 Nybegynder
01. januar 2003 - 12:19 Der er 10 kommentarer og
1 løsning

tilmeldingsscript virker ikke korrekt

Jeg skal lave et tilmeldingsscript til et computerparty og det har jeg også gjort problemet er bare at man skal have mulighed for at afmelde sig og det virker ikke, den skriver godt nok at man er slettet fra listen det er man bare ikke.

Her er koderne:

tilmeld.php:

<?php
//tjekker om formen er blevet sendt
if (isset($_POST['nick'])) {
    $nick = $_POST['nick'];
    $nick = strip_tags($nick);
    //åben fil for skrivning
    $fil = fopen("liste.php", "a+");
    //Skriv til fil
    fputs($fil, $nick . "||" . $navn . "||" . $email . "||" . $password . "||" . $telefon . "||" . $gruppe . "\r\n");
    //Luk fil
    fclose($fil);
}                           
?>

<html>
<head>
    <title>Tilmeld</title>
    <link rel="STYLESHEET" type="text/css" href="styles.css">
    <script type="text/javascript">
    //Tjek om alle formfelter er udfyldt, samt korrekt email.
    function tjek() {
        fejl = 0;

        email = document.form.email.value;
        if (!email.match('^[.0-9a-zA-Z_-]{1,}@[.0-9a-zA-Z_-]{1,}\.[0-9a-zA-Z]{2,3}$')) {
            alert('Du har ikke udfyldt \"Email\" rigtigt');
            fejl = 1;
            document.form.email.focus();
        }

        if ((document.form.nick.value=='') && (fejl==0)) {
            alert('Feltet \"nick\" skal udfyldes');
            fejl = 1;
            document.form.nick.focus();
        }

        if ((document.form.navn.value=='') && (fejl==0)) {
            alert('Feltet \"navn\" skal udfyldes');
            fejl = 1;
            document.form.navn.focus();
        }

        if ((document.form.password.value=='') && (fejl==0)) {
            alert('Feltet password skal udfyldes');
            fejl = 1;
            document.form.password.focus();
        }

        if ((document.form.telefon.value=='') && (fejl==0)) {
            alert('Feltet \"telefon\" skal udfyldes');
            fejl = 1;
            document.form.telefon.focus();
        }

        if (fejl == 0) {
            document.form.submit();
        }

       
    }
    </script>

</head>

<body>

<h1> Tilmeld </h1>
Tilmelding til ..........
<form action="tilmeld.php" name="form" method="post" onsubmit="tjek(); return false;">
    <table border="0" width="533">
        <tr>
            <td width="138"> Navn:</td>
            <td width="396"> <input type="text" name="navn" size="30"> </td>
        </tr>

        <tr>
            <td width="138"> Nick: </td>
            <td width="396"> <input type="text" name="nick" size="30"> </td>
        </tr>
       
        <tr>
            <td width="138"> Email:</td>
            <td width="396"> <input type="text" name="email" size="30"> </td>
        </tr>
       
                <tr>
            <td width="138"> Password til afmelding: </td>
            <td width="396"> <input type="password" name="password" size="30"> </td>
        </tr>

        <tr>
            <td width="138"> Telefon</td>
            <td width="396"> <input type="text" name="telefon" size="30"> </td>
        </tr>


        <tr>
            <td width="138"> &nbsp;</td>
            <td width="396"> &nbsp;</td>
        </tr>
       

        <tr>
            <td width="138"> &nbsp;</td>
            <td width="396"> Hvis der er nogle bestemte du ønsker at sidde
            sammen med så kan i tilmelde jer som en gruppe. Det eneste i skal
            gøre er at aftale hvad jeres gruppe skal hedde og skrive det
            nedenunder. Hvis ikke du ønsker nogen bestemt plads skal du bare
            lade feltet stå tomt</td>
        </tr>
       
        <tr>
            <td width="138"> Gruppe:</td>
            <td width="396"> <input type="text" name="gruppe" size="30"> </td>
        </tr>
       
        <tr>
            <td width="138"></td>
            <td align="right" width="396"> <input type="submit" name="tilmeld" value="tilmeld">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>
        </tr>
    </table>
</form>

<br><h1>Følgende er tilmeldt</h1>

<?php
//Vis beskeder.
//Indlæs fil til array
$fil = file("liste.php");
//Kør hver linie igennem.
for($i=1; $i < sizeof($fil); $i++) {
    //Opdel informationerne i et array
    $info = explode("||", $fil[$i]);
    // vis det i en tabel
    echo "<table border=\"0\">
            <tr>
                <td width=\"150\" \"font-family: verdana;\">" 
                  . $info[0] . "<br>"
                  . $info[1] . "<br>Gruppe: "
                  . $info[5] . "<br>
                                          <a href=afmeld.php>afmeld</a>
                                        <br>   
                    <hr color=\"#000000\">
                </tr>
          </table>";
}
?>

</body>
</html>

__________________________________________________________

Afmeld.php:

<?php
//tjek om felterne er udfyldt
if (isset($_POST['password']) && $_POST['email']) {
    $nyt_indhold = "";
    //Indlæs fil til array
    $fil = file("liste.php");
    //Kør hver linie igennem.
    for($i=0; $i<sizeof($fil); $i++) {
        //Opdel nuværende linie i et array
        $info = explode("||", $fil[$i]);
        //Tjek om informationer findes
        if (trim($info[3]) == $_POST['password'] && $_POST['email'] == $info[2]) {
            //Slet linie
            $fil[$i] = "";
            $slettet = true;
        }       
        $nyt_indhold .= $fil[$i];
    }

    if (isset($slettet)) {
        //Skriv nyt indhold til tekstfil
        $fil = fopen("pass/liste.php", "w+");
        fwrite($fil, $nyt_indhold);
        fclose($fil);
        echo "Bruger slettet.<br> Du er nu slettet fra vores partyliste.<br> Du vil derfor ikke være forventet til vores party!<br> men er stadig meget velkommen til at dukke op, hvis du skulle fortryde :)<br> <a href=\"?ref=tilmelding\">Tilbage</a>";
    } else {
        echo "Kunne ikke finde dit password og email, beklager!";
    }

}
?>


<style>

    .put {
        border-color:#102939;
    font-family: verdana;
    font-size: 10;
    border-left: solid 1px;
    border-right: solid 1px;
    border-top: solid 1px;
    border-bottom: solid 1px;
}
</style>

<h1>Afmeld</h1>

<form action="?ref=afmeld" method="post">
    <table border="0">
        <tr>
            <td width="120"> Email: </td>
            <td> <input class="put" type="text" name="email" size="30"> </td>
        </tr>

        <tr>
            <td> Password: </td>
            <td> <input class="put" type="password" name="password" size="30"> </td>
        </tr>

        <tr>
            <td></td>
            <td align="right"><input class="put" type="submit" name="afmeld" value="Afmeld"> </td>
        </tr>
    </table>
</form>

</body>
</html>
_________________________________________________________

I kan se scriptet her http://www.eagle.frip.dk/test/tilmeld.php


Håber i kan hjælpe mig
Avatar billede wave Nybegynder
01. januar 2003 - 12:23 #1
//tjekker om formen er blevet sendt
if (isset($_POST['nick'])) {
    $nick = $_POST['nick'];
    $nick = strip_tags($nick);

her er den da gal...
Avatar billede eagle124 Nybegynder
01. januar 2003 - 12:27 #2
det høre jo til under tilmeld.php og selve tilmeldingen virker da fint
Avatar billede eagle124 Nybegynder
01. januar 2003 - 12:27 #3
men hvad skal der ellers stå i det
Avatar billede wave Nybegynder
01. januar 2003 - 12:32 #4
du har bare 2 variabler der betyder det samme eks. $2=2 samt $2=4.. fint at det fungere, men det er bare ikke rigtigt..

kan sq ikke rigtigt se hvad der forsager problemet... har du ikke adgang til mysql.. det ville gøre det hele meget lettere´,,,
Avatar billede wave Nybegynder
01. januar 2003 - 12:40 #5
hvad med denne her.. den virker ikke i orden 
$fil = fopen("pass/liste.php", "w+");
Avatar billede eagle124 Nybegynder
01. januar 2003 - 12:47 #6
jeg bliver jo nok nødt til at indrømme det ikke er mig der har lavet selve scriptet men bare har udbygget det.

så de der farlige ting du snakker om der kan jeg ikke finde ud af
Avatar billede peterhansen6 Nybegynder
01. januar 2003 - 12:48 #7
du går ind på afmeld og skriver dit navn overst og din e-mail nedenunder
Avatar billede wave Nybegynder
01. januar 2003 - 12:51 #8
når du skriver tilmelder skriver du til filen liste.php men når du ønsker af afmelde beder du om at slette i filen liste.php men i folderen pass "pass/liste.php"  skriv

$fil = fopen("liste.php", "w+"); istedet
Avatar billede eagle124 Nybegynder
01. januar 2003 - 13:13 #9
så nu virker det
Avatar billede eagle124 Nybegynder
01. januar 2003 - 13:14 #10
tak for hjælpen
Avatar billede wave Nybegynder
01. januar 2003 - 13:16 #11
:-)
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