mail werk niet echt lekker

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

John breedveld

john breedveld

09/12/2012 11:40:44
Quote Anchor link
Ik ben sinds gisteren aan knutslen om
1 mail binnen te krijgen
en dat hij alles netjes weg
schrijf naar archief2

zou iemand mijn kunnen vertellen
hoe ik hiervan een mail binnen krijg krijg er nou 2
en geen foutcodes meer op de website
Quote:
<!DOCTYPE html>
<html>
<head>
<title>Combigoods - Afspraak</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="page-container">
<div id="content">
<header>
<img src="images/combigoodslogo.png" style="margin-top: 20px;" alt="logo" />
<h1 style="position: relative; display:inline; padding-left: 50px; bottom: 20px;">Afspraak</h1>
</header>
<script src="lib/jquery/jquery-1.8.3.min.js"></script>





</head>

<body>
<header>
<h1>afspraak</h1>
</header>

<h2>Christiaan van Engen</h2>
<table border='1'>
<tr>
<th>Naam:</th>
<th>Datum:</th>
<th>Tijd:</th>
<th>afspraak:</th>
</tr>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

    $db_host
= "lxxx";
    $db_username = "xxx";
    $db_pass = "uxxx";
    $db_name = "administratie";

    mysql_connect ("$db_host","$db_username","$db_pass") or die ("Kon niet verbinden met de MySQL database");
    mysql_select_db ("$db_name") or die ("Geen database gevonden");
    
    $result = mysql_query("SELECT * FROM ASPRAKEN WHERE WIE = 'Christiaan van Engen'");
    
    while($row = mysql_fetch_array($result)) {
        if (!empty($row['wie'])) {
            echo "<tr>";
            echo "<th>".$row['Naam']."</th>";
            echo "<th>".$row['Datum']."</th>";
            echo "<th>".$row['tijd']."</th>";
            echo "<th>".$row['Afspraak']."</th>";
            echo "</tr>";
        }
    }

?>


</table>

<h2>Roeland van Engen</h2>
<table border='1'>
<tr>
<th>Naam:</th>
<th>Datum:</th>
<th>Tijd:</th>
<th>afspraak:</th>
</tr>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    
    $result
= mysql_query("SELECT * FROM ASPRAKEN WHERE WIE = 'Roeland van Engen'");
    
    while($row = mysql_fetch_array($result)) {
        if (!empty($row['wie'])) {
            echo "<tr>";
            echo "<th>".$row['Naam']."</th>";
            echo "<th>".$row['Datum']."</th>";
            echo "<th>".$row['tijd']."</th>";
            echo "<th>".$row['Afspraak']."</th></tr>";
        }
    }


?>

</table>

<h2>Saskia van Engen</h2>
<table border='1'>
<tr>
<th>Naam:</th>
<th>Datum:</th>
<th>Tijd:</th>
<th>afspraak:</th>
</tr>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    
    $result
= mysql_query("SELECT * FROM ASPRAKEN WHERE WIE = 'Saskia van Engen'");
    
    while($row = mysql_fetch_array($result)) {
        if (!empty($row['wie'])) {
            echo "<tr>";
            echo "<th>".$row['Naam']."</th>";
            echo "<th>".$row['Datum']."</th>";
            echo "<th>".$row['tijd']."</th>";
            echo "<th>".$row['Afspraak']."</th></tr>";
        }
    }


?>

</table>

<h2>Jan de Wit</h2>
<table border='1'>
<tr>
<th>Naam:</th>
<th>Datum:</th>
<th>Tijd:</th>
<th>afspraak:</th>
</tr>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    
    $result
= mysql_query("SELECT * FROM ASPRAKEN WHERE WIE = 'Jan de Wit'");
    
    while($row = mysql_fetch_array($result)) {
        if (!empty($row['wie'])) {
            echo "<tr>";
            echo "<th>".$row['Naam']."</th>";
            echo "<th>".$row['Datum']."</th>";
            echo "<th>".$row['tijd']."</th>";
            echo "<th>".$row['Afspraak']."</th></tr>";
        }
    }


?>

</table>

<h2>John Breedveld</h2>
<table border='1'>
<tr>
<th>Naam:</th>
<th>Datum:</th>
<th>Tijd:</th>
<th>afspraak:</th>
</tr>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    
    $result
= mysql_query("SELECT * FROM ASPRAKEN WHERE WIE = 'John Breedveld'");
    
    while($row = mysql_fetch_array($result)) {
        if (!empty($row['wie'])) {
            echo "<tr>";
            echo "<th>".$row['Naam']."</th>";
            echo "<th>".$row['Datum']."</th>";
            echo "<th>".$row['tijd']."</th>";
            echo "<th>".$row['Afspraak']."</th></tr>";
        }
    }


?>

</table>

<h2>Receptie</h2>
<table border='1'>
<tr>
<th>Naam:</th>
<th>Datum:</th>
<th>Tijd:</th>
<th>afspraak:</th>
</tr>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
    
    $result
= mysql_query("SELECT * FROM ASPRAKEN WHERE WIE = 'Receptie'");
    
    while($row = mysql_fetch_array($result)) {
        if (!empty($row['wie'])) {
            echo "<tr>";
            echo "<th>".$row['Naam']."</th>";
            echo "<th>".$row['Datum']."</th>";
            echo "<th>".$row['tijd']."</th>";
            echo "<th>".$row['Afspraak']."</th></tr>";

        }
    }


?>

</table>

<br>

<form method="post">
Door wie : <select id="wie" name="wie">
<option value="Christiaan van Engen">Christiaan van Engen</option>
<option value="Roeland van Engen">Roeland van Engen</option>
<option value="Saskia van Engen">Saskia van Engen</option>
<option value="Jan de Wit">Jan de Wit</option>
<option value="John Breedveld">John Breedveld</option>
<option value="Receptie">Receptie</option>
</select><br>
Naam:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $result
= mysql_query("SELECT * FROM WERKNEMERS");
    echo "<select name='naam'>";
    
    while ($row = mysql_fetch_array($result)) {
        echo "<option value='".$row['Naam']."'>".$row['Naam']."</option>";
    }

    echo "</select>";
?>

<div id="Datum">Datum: <input name="datum" type="date" /></div>
<div id="tijd">Tijd: <input name="tijd" type="time" /></div>
<div id="Afspraak">Afspraak: <input name="afspraak" type="text" /></div>
<input name="submit" type='submit' value="Verzenden" />
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
    if (isset($_POST['submit'])) {
    
        $wie            = $_POST['wie'];
        $naam            = $_POST['naam'];
        $datum            = $_POST['datum'];
        $tijd            = $_POST['tijd'];
        $afspraak         = $_POST['afspraak'];
        
        if ($_POST['wie'] == "Christiaan van Engen") {
            mysql_query("INSERT INTO ASPRAKEN(wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);
        }
elseif ($_POST['wie'] == "Roeland van Engen") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);
        }
elseif ($_POST['wie'] == "Saskia van Engen") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);
        }
elseif ($_POST['wie'] == "Jan de Wit") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);
        }
elseif ($_POST['wie'] == "John Breedveld") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);        
        }
elseif ($_POST['wie'] == "Receptie") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);        
        }

        echo "<script>window.location = 'afspraak.php';</script>";
          $result = mysql_query("SELECT * FROM WIE");
    }

           $result = mysql_query("SELECT * FROM ASPRAKEN ORDER BY WIE");
          
        ob_start();
        echo "<table border='1'>";
        echo "<th>wie</th>";
        echo "<th>Naam</th>";
        echo "<th>Datum</th>";
        echo "<th>tijd</th>";
        echo "<th>Afspraak</th>";
            while ($row = mysql_fetch_array($result)) {
                echo "<tr><td>".$row['wie']."</td>";
                echo "<td>".$row['Naam']."</td>";
                echo "<td>".$row['Datum']."</td>";
                echo "<td>".$row['tijd']."</td>";
                echo "<td>".$row['Afspraak']."</td>";
                
                $headers = "MIME-Version: 1.0\r\n";
                $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
                }

        echo "</table>";
        $bericht = ob_get_contents();
        ob_end_clean();
        
      
           mail('[email protected]', 'Combigoods - Afspraken', $bericht, $headers);
           $result = mysql_query("SELECT * FROM aspraken");
              while ($row = mysql_fetch_array($result)) {
                mysql_query("INSERT IGNORE INTO archief2 SELECT * FROM aspraken");
                mysql_query("DELETE FROM ASPRAKEN");
            }


              ?>

<footer>
<p>
&copy; Copyright by Ciske de Rat
</p>
</footer>
</body>
</html>


Toevoeging op 09/12/2012 11:47:35:

ik hbe mijn vermoeden dat de fout onderste gedeelte zit bij regel 41 tot 46
regel 56
wanneer ik regel 58 tot 61 toe past komen mijn mail er nog vreemde er uit te zien
Gewijzigd op 09/12/2012 11:42:09 door John breedveld
 
PHP hulp

PHP hulp

23/12/2024 02:34:40
 
Moose -

Moose -

09/12/2012 12:01:42
Quote Anchor link
Je krijgt waarschijnlijk twee emails binnen omdat je niet je mail functie aanroept binnen een POST request, maar gewoon altijd. Oftewel zodra je pagina geladen wordt, wordt er al een email verstuurd, en als je op de knop Verzenden drukt, wordt hij gewoon opnieuw verstuurd.
 
John breedveld

john breedveld

09/12/2012 12:04:27
Quote Anchor link
notmosse hoe zou script er anders moeten uit zien


Toevoeging op 09/12/2012 12:04:31:

notmosse hoe zou script er anders moeten uit zien
 
Moose -

Moose -

09/12/2012 13:05:25
Quote Anchor link
Pas een email versturen als er op de submit knop gedrukt is. Heb je dit script zelf geschreven?
 
Reshad F

Reshad F

09/12/2012 13:35:18
Quote Anchor link
Offtopic:

Ten eerste moet ik aangeven dat jou script een lekker doelwit is voor hackers!


Verder zou ik even goede foutafhandelingen inbouwen geen OR DIE gebruiken want jij gaat ook niet dood als je iets fout doet, tevens vind je ook de fout veel sneller als er iets gebeurt ( 2 vliegen in 1 klap )

waarom je alles in tabellen hebt gestopt snap ik ook niet, en plaats voortaan alleen relevante code a.u.b. niet de broncode van je hele website...

dit soort dingen zijn overbodig behalve als je die variabele echt vaker nodig hebt op eenzelfde pagina.. maar dat betwijfel ik..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
       $wie
            = $_POST['wie'];
        $naam            = $_POST['naam'];
        $datum            = $_POST['datum'];
        $tijd            = $_POST['tijd'];
        $afspraak         = $_POST['afspraak'];
?>


en je controleert of iemand een submit heeft gedaan met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
 // hier alle code die uitgevoerd moet worden nadat op knopje is gedrukt.. ( dus verzend mail )
}
?>


neem deze tutorial is door misschien steek je er een en ander van op :)

http://www.phphulp.nl/php/tutorial/overig/beginnersfouten-tegengaan/763/
 
John breedveld

john breedveld

09/12/2012 13:46:51
Quote Anchor link
ja zelf samen met een maatje waarom hackers gevoelig dit wordt niet een openbare site dit wordt intern gebruikt alls alles goed draait maar ik heb het probleemgevonden bleek teken } stond verkeerd waar door hij een 2de mail stuurde
 
- Ariën  -
Beheerder

- Ariën -

09/12/2012 13:49:57
Quote Anchor link
Zou je graag leestekens in je bericht willen gebruiken?
 
Erwin H

Erwin H

09/12/2012 13:50:14
Quote Anchor link
Als we toch tips aan het geven zijn.....

1) voor elke persoon doe je nu precies hetzelfde, inclusief query bouwen, uitvoeren, tabelletje printen. Normaal gesproken zou je dat natuurlijk in een loop doen, zodat je maar 1 query hoeft uit te voeren (en niet 6 zoals in jouw geval) en het scheelt je pakweg 200 regels code.
2) de <th> tag ALLEEN bedoeld voor de tableheader rij, niet voor elke rij.
3) volgens mij zou je tabel naam 'afspraken' moeten zijn en niet 'aspraken'. De database zal het worst wezen, als noem je de tabel 'sdfdftewrxcvs', maar voor programmeurs is 'afspraken' natuurlijk wat logischer dan 'aspraken'. Scheelt jou, of je opvolger later.
4) het nu van de if statements ontgaat me hier volledig:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
        if ($_POST['wie'] == "Christiaan van Engen") {
            mysql_query("INSERT INTO ASPRAKEN(wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);
        }
elseif ($_POST['wie'] == "Roeland van Engen") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);
        }
elseif ($_POST['wie'] == "Saskia van Engen") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);
        }
elseif ($_POST['wie'] == "Jan de Wit") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);
        }
elseif ($_POST['wie'] == "John Breedveld") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);        
        }
elseif ($_POST['wie'] == "Receptie") {
            mysql_query("INSERT INTO ASPRAKEN (wie, Naam, Datum, tijd, Afspraak)
            VALUES ('$wie', '$naam', '$datum', '$tijd', '$afspraak')"
);        
        }

?>

Je voert namelijk elke keer alsnog gewoon dezelfde query uit. Gooi die ifs dan weg, of, check het allemaal in 1 if.
5) Nog een stuk code waarvan de logica mij volledig ontgaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
            $result
= mysql_query("SELECT * FROM aspraken");
            while ($row = mysql_fetch_array($result)) {
                mysql_query("INSERT IGNORE INTO archief2 SELECT * FROM aspraken");
                mysql_query("DELETE FROM ASPRAKEN");
            }

?>

Dus je selecteert alle rijen en voor elke rij uit de resultset copieer je ALLE afspraken naar het archief... dus als er 10 rijen in staan, copieer je 10 rijen, maar dan wel 10 keer (behalve dan dat alle rijen er na de 1e keer uit zijn en je de andere 9 dus voor jan met de korte achternaam doet)? Sorry, misschien ben ik gek, maar dit slaat volgens mij helemaal nergens op.

Mijn advies zou zijn om het nog een keer te proberen.... maar dan wel met driekwart minder code.
Gewijzigd op 09/12/2012 13:52:12 door Erwin H
 
John breedveld

john breedveld

09/12/2012 14:10:04
Quote Anchor link
Sorry ik ben een beginnenling in php.
Fouten maken is menselijk,daarvoor zijn we mensen
sorry ik heb alleen een basis school gehad entaal probleem. (met punten en comma's)
Ik probeer juist een stuk script waar ik fout in gemaakt heb te vragen maar.
Sommige dingen zijn mijn niet helemaal duidelijk wat betreft de mogelijkheden.
Ik haal veel code taal weg via websites om te kijken en te leren om iets werkendte krijgen.
Dat daar gelijk op wordt gerageerd dat zo lek als een mandje is wist ik niet
Beveiling in een later stadium word het script voor zien van een een beveiling,
met inlog protection betreft op alle pagina en verder wordt project intern gebruikt
 
- Raoul -

- Raoul -

09/12/2012 14:13:37
Quote Anchor link
Nee, zo werkt het niet. Beveiliging moet gemaakt worden terwijl je aan het scripten bent en niet in een later stadium
 
Ro Gra

Ro Gra

09/12/2012 14:35:59
Quote Anchor link
Beste mensen,

Het doel van het hele systeem is dat het gebruikt gaat worden binnen een bedrijf, dus intern. Niemand zal dus extern toegang hebben tot het systeem, dat wilt nog niet wegnemen dat het niet beveiligd moet worden, hierop zullen we ons zeker ook nog gaan richten. De medewerkers hebben echter geen kennis van web(ontwikkeling) en kunnen hierdoor geen kwade dingen uitvoeren, het systeem gaat gebruikt worden door 3 tot ongeveer 8 mensen. De ontwikkeling (scripting) wordt gedaan door John en mij.

Verder vind ik het niet toepasselijk om iemand te beoordelen op zijn (taal)fouten, ieder persoon moet leren van zijn fouten die hij of zij gemaakt heeft, en jullie zijn ervoor om iemand te ondersteunen en te helpen.

Hoop dat er wat duidelijkheid zit in doel van het systeem, en mochten er nog onduidelijkheden zijn, dan hoor ik deze graag.
 
Obelix Idefix

Obelix Idefix

09/12/2012 15:17:23
Quote Anchor link
Ro Gra op 09/12/2012 14:35:59:
Verder vind ik het niet toepasselijk om iemand te beoordelen op zijn (taal)fouten, ieder persoon moet leren van zijn fouten die hij of zij gemaakt heeft, en jullie zijn ervoor om iemand te ondersteunen en te helpen.


Een ieder moet (/kan) leren van zijn fouten. Mee eens.
Hierboven worden genoeg fouten aangegeven. Aan TS (of jou) om daar (n)iets mee te doen. De ondersteuning / hulp is er naar mijn mening dus.
Dat het mogelijk niet direct een antwoord is op de vraag, maar neem de tips/adviezen/aanwijzingen wel ter harte. Ook als iets alleen voor intern gebruik is.

Wat betreft taalfouten: bijna niemand is in staat om foutloos Nederlands te schrijven. Over een d of t wordt niet moeilijk gedaan. Maar als iemand een paar regels tekst plaatst zonder enige interpunctie, dan kost het (veel) moeite om te begrijpen wat iemand bedoelt. Hij/zij verwacht van anderen dat ze moeite doen om te helpen. Dan is het naar mijn idee niet vreemd om aan diegene dan te vragen om de reacties in leesbaar Nederlands te plaatsen.
 
Erwin H

Erwin H

09/12/2012 16:48:46
Quote Anchor link
Ro Gra op 09/12/2012 14:35:59:
De medewerkers hebben echter geen kennis van web(ontwikkeling) en kunnen hierdoor geen kwade dingen uitvoeren,

Zeer foute en gevaarlijke aanname. Het feit dat men het niet bewust kan, wil niet zeggen dat het niet onbewust kan.

Een heel klein, dagelijks voorbeeldje (wat ik hier gisteren ook nog tegenkwam zonder dat de bewuste poster er erg in had). Je voert nu alle gebruikers input in in de database zonder escapen, zonder beveiliging dus. Dat escapen is niet alleen om SQL injectie tegen te gaan, het is ook nodig om bepaalde, normale, input goed te kunnen verwerken.
Neem de zin:
Quote:
Ik kom uit 's Gravenhage.

en probeer die zonder escapen in je database te krijgen. Daar ga je al op nat.

Beveiliging is dus ALTIJD nodig, ook bij een intern systeem, zelfs als jij de enige bent die het gebruikt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.