Waarom wel los, en niet in andere script?[HELP]

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny@dw-designs.n

[email protected]

04/06/2008 21:18:00
Quote Anchor link
Alweer hallo!

Ik heb nu deze script gehad van hier ieamdn op het fora.

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
<form action="#" method="POST">
Voornaam:   <input name="firstname" type="text" value="firstname"><br>
Achternaam: <input name="lastname" type="text" value="lastname"><br>
<input type="submit" value="Verzend">
</form>

<?php

$firstname
=$_POST["firstname"];
$lastname=$_POST["lastname"];

if(isset($firstname) && isset($lastname)) {

$db_host = "localhost";
$db_name = "voortest";
$db_user = "root";
$db_password = "";

$db=mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_name, $db)
or trigger_error (mysql_error());

mysql_query("
    INSERT INTO
         voortest (
             anaam,
             vnaam
         )
     VALUES
         (
             '"
.mysql_real_escape_string($firstname)."',
             '"
.mysql_real_escape_string($lastname)."'
         )
"
) or trigger_error(mysql_error());

$status_message="Verstuurd!";

}

?>


die heb ik heel klein beetje aangepast in me andere script:
ZIE ONDER IN SCRIPT:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<style type="text/css">
<!--
.stijl1 {color: #FF2025}
-->
</style>
<?php
$titel
= "";

$onderschrift = "---------------\n<br>\n<br>\n<small>De provider van de afzender is: " .
    gethostbyaddr($_SERVER["REMOTE_ADDR"]) . ".\n<br>\n<br>\nHet IP van de afzender is: " .
    $_SERVER["REMOTE_ADDR"] . ".\n<br>\n<br>\nAls er problemen zijn stuur dan een mail naar de provider.</small>";
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?PHP
if($_SERVER['REQUEST_METHOD'] == "POST") {
    $strtitel = "E-Mail Verstuurd";
}
else {
    $strtitel = "E-Mail versturen";
}

if (!empty($titel)) {
    $strtitelmid = " - ";
}
else {
    $strtitelmid = "";
}

?>

<title><?= $titel . $strtitelmid . $strtitel ?></title>
</head>
<body>
<?PHP
$form
= true;
if($_SERVER['REQUEST_METHOD'] == "POST") {
    if(!empty($_POST['from']) && !empty($_POST['frommail']) && !empty($_POST['message'])) {
        // volgens mij zijn er nog meer velden, maak deze controle af met die velden
        $subject = $_POST['lijst'];
        
        $from = $_POST['from'];
        $frommail = $_POST['frommail'];
    
        $to = $_POST['to']; // onbekend formveld?
        $tomail = "[email protected]";
    
        $headers = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .= "To: " . $to . " <" . $tomail . ">\r\n";
        $headers .= "From: " . $from . " <" . $frommail . ">\r\n";
    
        if ($_POST['pic'] == 'eig') { // onbekend formveld?
            $message = "<img src=" . $_POST['piceig'] . "><br><br>";
        }
elseif (strlen($_POST['pic']) > 0) {
            $message = "<img src=" . $_POST['pic'] . "><br><br>";
        }
else {
            $message = "";
        }

    
        $message .= nl2br($_POST['message']);
    
        if (!isset($_GET['adm'])) {
            $message .= "\n<br>\n<br>\n" . $onderschrift;
        }

    
        if(mail($tomail, $subject, $message, $headers)) {
            echo "&nbsp;Je E-mail is verstuurd!<br><br>";
            echo "&nbsp;Alle E-mails worden met respect behandeld, en binnen 48 uur beantwoord worden.<br>";
            echo "&nbsp;Klik <a href=?pagina=contact>hier</a> om nog een mail te versturen.";
            echo "<BR><BR>&nbsp;Hieronder zie je hoe de E-Mail op het scherm getoond wordt van de ontvanger.<br><br>";
            echo "&nbsp;Met vriendelijke groet,<br>";
            echo "&nbsp;Gevel en Kozijn.";
            echo "<br /><br />";
            ?>

              <hr />
                <blockquote>
                  <B>Van:</B> <?= $from ?> [<?= $frommail ?>]
                  <BR />
                  <B>Verzonden:</B>
                  <?= date("d-m-Y H:i") ?>
                  <BR />
                  <B>Aan:</B> <?= $to ?> [<?= $tomail ?>]
                  <BR />
                  <B>Onderwerp:</B> <?= $subject ?>
                  <BR />
                  <?= $message ?>
                </blockquote>
              <hr />
            <?PHP
            $form
= false;
        }
else {
            echo 'Je mail is niet verzonden. Probeer het nogmaals.';
        }
    }
else {
        echo '<span class="stijl1">&nbsp;Niet alles is ingevuld.</span><br><br>';
    }

    $values = $_POST;
}
else {
    $values = array(
        'from'=>'',
        'frommail'=>'',
        'message'=>''
    );
}


if($form) {
    if (isset($_GET['adm'])) {
        echo '<form action="?adm=true" method="post" enctype="multipart/form-data" name="mail" target="_self" id="mail">';
    }
else {
        echo '<form action="" method="post" enctype="multipart/form-data" name="mail" target="_self" id="mail">';
    }

?>

<?php
    $bewerking
= $_POST["bewerkinsg"];
    switch ($bewerking){
        case
1:
            $subject = "Klacht";
            break;
        case
2:
            $subject = "Suggestie";
            break;
        case
3:
            $subject = "Links";
            break;
        case
4:
            $subject = "F.A.Q.";
            break;
        case
5:
            $subject = "Overig";
            break;
        default:
            
    }

?>

  <table width="100%"  border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td valign="top" align="left">&nbsp;Afzender:
      </td>
      <td valign="top" align="left">Naam: </td>
      <td valign="top" align="left"><input name="from" type="text" id="from" value="<?php echo $values['from']; ?>"></td>
    </tr>
    <tr>
      <td valign="top" align="left">&nbsp;</td>
      <td valign="top" align="left">E-Mail: </td>
      <td valign="top" align="left"><input name="frommail" type="text" id="frommail" value="<?php echo $values['frommail']; ?>"></td>
    </tr>
    <tr>
    </tr>
    <tr>
      <td valign="top" align="left">&nbsp;Bericht:</td>
      <td valign="top" align="left">Onderwerp: </td>
      <td valign="top" align="left"><select name="lijst">
      <option value="Klacht" name="bewerking">Klacht</option>
      <option value="Suggestie" name="bewerking">Suggestie</option>
      <option value="Links" name="bewerking">Links</option>
      <option value="F.A.Q." name="bewerking">F.A.Q.</option>
      <option value="Overig" name="bewerking">Overig</option>
      </select></td>
    </tr>
    <tr>
      <td valign="top" align="left">&nbsp;</td>
      <td valign="top" align="left">Uw bericht voor Gevel en Kozijn: </td>
      <td valign="top" align="left"><p>
        <textarea name="message" cols="40" rows="5" id="message" ><?php echo $values['message']; ?></textarea>
        </p>
        </td>
    </tr>
  </table>
  &nbsp;<span class="stijl1">Alle velden moeten worden ingevuld!</span><br>
  <p align="right">
    <input type="submit" name="Submit" value="verzend">
    <input type="reset" name="Reset" value="legen">
  </p>
</form>
<?php

$from
=$_POST['from'];
$frommail=$_POST['frommail'];
if(isset($from) && isset($frommail)) {

$db_host = "localhost";
$db_name = "Niet voor jullie";
$db_user = "niet voor jullie";
$db_password = "niet voor jullie";

$db=mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_name, $db)
or trigger_error (mysql_error());

mysql_query("
    INSERT INTO
         verzendinfo (
             from,
             frommail
         )
     VALUES
         (
             '"
.mysql_real_escape_string($from)."',
             '"
.mysql_real_escape_string($frommail)."'
         )
"
) or trigger_error(mysql_error());

$status_message="Verstuurd!";

}

?>

<?php
}
?>


nou zou die email en afzender in database gooien maar hij doet niks.
Krijg geen fout melding of iets. werkelijk niets, ik kijk in database en er staat niks toegevoegd, tabbelen en dergelijke komen overeen met me database maar nog steeds.. Niks

Database code;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
CREATE TABLE `verzendinfo` (
  `from` text NOT NULL,
  `frommail` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Weet iemand of ziet iemand wat de fout is?

met vriendelijke groet,

Danny
Gewijzigd op 01/01/1970 01:00:00 door [email protected]
 
PHP hulp

PHP hulp

20/04/2024 00:21:07
 
Klaasjan Boven

Klaasjan Boven

04/06/2008 21:23:00
Quote Anchor link
al eens aan fout afhandeling gedacht?
 
Danny@dw-designs.n

[email protected]

04/06/2008 21:24:00
Quote Anchor link
Staan er toch tussen:
MySQL Error

en ik krijg wel emailtej binnen, maar hij impoteert gewoon niks in me database?
 
Jesper Diovo

Jesper Diovo

04/06/2008 21:59:00
Quote Anchor link
Danny, je hebt nergens een fatsoenlijke foutafhandeling staan.
Een foutafhandeling is een controle of een query is gelukt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$query
= "SELECT....";
$result = mysql_query($query);
if($result) { // check of de query gelukt is
  // gelukt

} else {
  // niet gelukt, mysql_error()
}
?>


'Or' is geen goede oplossing, dat zorgt alleen maar voor meer fouten en lelijkheden. Handel je fouten dus op een juiste manier af.

Bovendien moet je niet alles klakkeloos overnemen, maar er zelf ook even naar kijken van: "Wat doet dit?" en "Wat doet dat?". Zal je ook weer wat van opsteken ;-).
 
Danny@dw-designs.n

[email protected]

04/06/2008 22:13:00
Quote Anchor link
Ik weet precies wat alles doet.
Maar ik snap echt niet waar de fout zit waarom hij niks impoteert!
 
Danny@dw-designs.n

[email protected]

04/06/2008 22:55:00
Quote Anchor link
Iemand?
 
- SanThe -

- SanThe -

04/06/2008 22:58:00
Quote Anchor link
Niet Bumpen.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.

Edit: En er wordt niks in de database gezet omdat de query in dezelfde if() staat waarin je het formulier toont en niet in het stuk waar je de mail() stuurt.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Danny@dw-designs.n

[email protected]

04/06/2008 23:07:00
Quote Anchor link
Sorry!
 
- SanThe -

- SanThe -

04/06/2008 23:08:00
Quote Anchor link
SanThe schreef op 04.06.2008 22:58:
Edit: En er wordt niks in de database gezet omdat de query in dezelfde if() staat waarin je het formulier toont en niet in het stuk waar je de mail() stuurt.
 
Danny K

Danny K

04/06/2008 23:09:00
Quote Anchor link
Mijn glazen bol vertelde me meerdere dingen:
- Is de connectie wel goed? => echo $db eens na het aanmaken!
- Is de query wel goed => $_POST gevuld? => echo die query om te debuggen!
- Wordt de query wel goed uitgevoerd? (Foutafhandeling zou makkelijk zijn..!)
- Gebruik eens de functie mysql_affected_rows()

$status_message wordt altijd "verstuurd" want er is totaal geen controle!

Regel 12 van je 1e script is totaal nutteloos! Die vars zijn namelijk altijd geset want dat doe je daarboven. Je moet daar de POST checken.

Je moet ook geen short-tags gebruiken (
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? & ?>
)

Verder moet je zelf maar even kijken.
Je moet gewoon even leren om goede foutafhandeling toe te voegen. Iedereen zegt het, dus is dat vast niet voor niets!
Als je niet aan de foutafhandeling wil is het gedoemd om te mislukken.
 
Danny@dw-designs.n

[email protected]

05/06/2008 23:05:00
Quote Anchor link
Ik heb wat tutorials genomen

heb nu dit

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
64
65
66
67
68
69
70
71
  <table width="100%"  border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td valign="top" align="left">&nbsp;Afzender:
      </td>
      <td valign="top" align="left">Naam: </td>
      <td valign="top" align="left"><input name="from" type="text" id="from" value="<?php echo $values['from']; ?>"></td>
    </tr>
    <tr>
      <td valign="top" align="left">&nbsp;</td>
      <td valign="top" align="left">E-Mail: </td>
      <td valign="top" align="left"><input name="frommail" type="text" id="frommail" value="<?php echo $values['frommail']; ?>"></td>
    </tr>
    <tr>
    </tr>
    <tr>
      <td valign="top" align="left">&nbsp;Bericht:</td>
      <td valign="top" align="left">Onderwerp: </td>
      <td valign="top" align="left"><select name="lijst">
      <option value="Klacht" name="bewerking">Klacht</option>
      <option value="Suggestie" name="bewerking">Suggestie</option>
      <option value="Links" name="bewerking">Links</option>
      <option value="F.A.Q." name="bewerking">F.A.Q.</option>
      <option value="Overig" name="bewerking">Overig</option>
      </select></td>
    </tr>
    <tr>
      <td valign="top" align="left">&nbsp;</td>
      <td valign="top" align="left">Uw bericht voor Gevel en Kozijn: </td>
      <td valign="top" align="left"><p>
        <textarea name="message" cols="40" rows="5" id="message" ><?php echo $values['message']; ?></textarea>
        </p>
        </td>
    </tr>
  </table>
  &nbsp;<span class="stijl1">Alle velden moeten worden ingevuld!</span><br>
  <p align="right">
    <input type="submit" name="Submit" value="verzend">
    <input type="reset" name="Reset" value="legen">
  </p>
</form>
<?php
$db_host
= "localhost";
$db_name = "mijne";
$db_user = "mijne";
$db_password = "mijne";

$db=mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_name, $db)
or mysql_error();

$from = mysql_real_escape_string($_POST['from']);
$frommail = mysql_real_escape_string($_POST['frommail']);


$sql = "
    INSERT INTO `verzendinfo`
    (
        `from`,
        `frommail`
    )
    VALUES
    (
        '"
.$from."',
        '"
.$frommail."'
    )
"
;
if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

?>

Maar nog steeds, niks in database
Gewijzigd op 01/01/1970 01:00:00 door [email protected]
 
Danny@dw-designs.n

[email protected]

06/06/2008 14:15:00
Quote Anchor link
1 Probleem is opgelost!
Hij maakt nu wel een rijen aan maar voert nu de naam en afzender nog steeds niet.

Waarom niet?
 



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.