Toon posts:

PHP/MYSQL mailscript mailt niet? querieprobleem?

Pagina: 1
Acties:
  • 127 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
PHP:
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
<?
 

// herinner.php - zoekt voor opgegeven e-mail adres gegevens en mailt deze... 

if ($HTTP_POST_VARS["email"]) { // kijken of de variable zijn opgegeven in het formulier 

    include ("functie.php"); // de fuctie verbind() is nodig 

    verbind(); //verbinden 

//gegevens uit database halen(?) 
    $sql = "SELECT * FROM members WHERE email LIKE '%$email%' ORDER BY id DESC"; 
    $resultaat = mysql_query($sql) or die(mysql_error()); 

    // e-mail check of e-mail bestaat, gegevens uit db halen 
    if ($row = mysql_fetch_object($resultaat)) { 
        echo "email gevonden, gegevens worden naar u gestuurd!"; //echo! 

    //Overige gegevens voor e-mail? Klopt dit wel? 
    while ($row = mysql_fetch_object($resultaat)) { 
        //E-mail bericht? 
        $ip = $REMOTE_HOST; 
        $recipient = "$email"; 
        $subject = "Helping you remind you're password?!"; 
        $message .= "You have requested your ID for $email\n\n"; 
        $message .= "------------------------------------------------------\n"; 
        $message .= "Name:                $row->name\n"; 
        $message .= "Username:            $row->username\n"; 
        $message .= "Email:               $row->email\n"; 
        $message .= "Password:            $row->password\n"; 
        $message .= "you're ip-adress     $ip\n"; 
        $message .= "------------------------------------------------------\n\n"; 
        $message .= "Please try to remember you're password in the future!\n"; 
        $message .= "See you soon\n"; 
        $headers .= "From: info@mijnsite.nl\n"; //afzender e-mail 
        $headers .= "Reply-To: info@mijnsite.nl\n\n"; //reply e-mail adres... 
        } 


    //Array for sending e-mail 
    mail($recipient, $subject, $message, $headers); 
    } 
    else { 

        echo "email niet gevonden"; 
         } 
         } 
else { // ander formulier weergeven 
?> 
<form action="herinner.php" method="post"> 
    e-mail:<input type="Text" name="email"><br> 
    <input type="Submit" name="Submit" value="E-mail"> 
</form> 

<?} // else einde 
?> 
?>

Hoi ik weet niet de functie 'while' werkt. Die functie moet namelijk overige gegevens voor in het mailtje uit tabel halen?!

Hier ff het hele bestand.
Hij print(echo) email gevonden, gegevens worden naar u gestuurd!
Maar hij verstuurd helemaal nix?!
Misschien een bug in query of in }{takken?

Ik zit met me handen in het haar..
Ik heb al het 1 en ander geprobeerd, maar krijg alleen maar parse errors...

Hopelijk kan iemand mij helpen?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

begin met slechts 1x mysql_fetch_object als je maar 1 record verwacht... daarbij kan je dan if() ipv while() gebruiken.

Probeer het eens in kleine stukje te hakken?

Klaar voor een nieuwe uitdaging.


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Dit lijkt op phpfreakz code?

maar goed....

Je doet dit
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
//
// mysql_fetch_object: Haalt 1 record op uit de query_result
//
if ($row=mysql_fetch_object($query)) 
// Dus deze kan waar zijn als query_result 1+ record bevat
echo "gevonden"
// Hier wordt een poging gedaan om het volgende record op te halen
// Als deze niet waar is dan moet de loop worden gestopt!
// maw. het kan dus zijn dat je query result maar 1 record heeft 
// en dan word deze loop nooit uit gevoerd. 
// En als er meer als 1 record word gevonden dan word het eerste record genegeerd!
while ($row=mysql_fetch_object($query))
?>

Nog maals kort gezegd.
Je moet nogmaals maar eens goed nalezen hoe de control-structures werken en hoe de functies die gebruikt werken.

http://www.php.net/manual/nl/control-structures.php <-- Nederlandstalig
http://www.php.net/manual/en/function.mysql-fetch-object.php

HTH

Programmer - an organism that turns coffee into software.


  • Quarks
  • Registratie: Maart 2001
  • Laatst online: 05-08-2024
Das vrij logisch want je doet 2 keer mysql_fletch_object en waarschijlijk ziet er maar een regel in als je begrijpt wat je bedoelt!

Powershot S30


Verwijderd

Topicstarter
PHP:
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
<?
?php

// herinner.php - zoekt voor opgegeven e-mail adres gegevens en mailt deze...

if ($HTTP_POST_VARS["email"]) { // kijken of de variable zijn opgegeven in het formulier

    include ("functie.php"); // de fuctie verbind() is nodig

    verbind(); //verbinden

    // e-mail check of e-mail bestaat
    $sql = "SELECT * FROM lsmembers WHERE email LIKE '%$email%' ORDER BY id DESC";
    $resultaat = mysql_query($sql) or die(mysql_error());

    if ($row = mysql_fetch_object($resultaat)) {
        echo "email gevonden, gegevens worden toegestuurd!";

        //E-mail bericht?
        $ip = $REMOTE_HOST;
        $recipient = "$email";
        $subject = "Helping you remind you're password?!";
        $message .= "You have requested your ID for $email\n\n";
        $message .= "------------------------------------------------------\n";
        $message .= "Name:                $row->name\n";
        $message .= "Username:            $row->username\n";
        $message .= "Email:               $row->email\n";
        $message .= "Password:            $row->password\n";
        $message .= "you're ip-adress     $ip\n";
        $message .= "------------------------------------------------------\n\n";
        $message .= "Please try to remember you're password in the future!\n";
        $message .= "See you soon\n";
        $headers .= "From: info@mijnsite.nl\n"; //afzender e-mail
        $headers .= "Reply-To: info@mijnsite.nl\n\n"; //reply e-mail adres...

    //Array for sending e-mail
    mail($recipient, $subject, $message, $headers);

    }
    else {

        echo "email niet gevonden";

    }
}
else { // ander formulier weergeven
?>

<form action="herinner.php" method="post">
    e-mail:<input type="Text" name="email"><br>
    <input type="Submit" name="Submit" value="E-mail">
</form>

<?php } // else einde
?>

oke ik heb 'm aangepast tot het volgende... Nou doetie het beter! hij mailt alle gegevens behalve ip?
Iemand een idee hoe dat kan? ip staat gewoon in database. Ook word timestamp ts opgeslagen.

Alvast bedankt allemaal voor de hulp!

Verwijderd

$row->ip als 'ie uit het databeest komt en anders $REMOTE_ADDR
Pagina: 1