Ergebnis 1 bis 9 von 9
  1. #1
    Anfänger
    Registriert seit
    03.02.2010
    Beiträge
    9

    Standard mail() nur an eine id

    Hallo Leute,

    bin in PHP ziehmlich eingerostet, da ich erst wieder seit langem (ca. 2 Jahre) was mit PHP mache.
    Ich Schreib derzeit ein kleines Freundschaftstest Script. Die Registrierung und das Verschicken funktioniert soweit, das Problem jedoch
    ist das die Ergebnisse des Tests an jede Email in der Datenbank verschickt.

    Folgendermaßen sieht bei mir die Abfrage aus:

    Code:
            $result = mysql_query ("SELECT * FROM ft");
            $num = mysql_num_rows($result);
    
            if (mysql_num_rows($result))
            {
                  while($row = mysql_fetch_array($result))
                  {
                   $id=$row['id'];
                     $name=$row['name'];
                   $email=$row['email'];
                   $ip = $_SERVER['REMOTE_ADDR'];
                   
                   
                   mail($email, $betreff, $ausgabe, $extra, "FROM: Freunde-Test.xe.cx - Team");
                   }
                   }
    Der Code funktioniert zwar, jedoch habe ich das Problem das mail() die Email an jeden schickt, die in der Datenbank Registriert ist.

    Ich habe auch schon Probiert

    Code:
    $result = mysql_query ("SELECT * FROM ft WHERE id ='".$_GET['id']."'");
    zu machen, leider erfolgslos, er Schickt ab da dann keine Email mehr.

    Kann mir da jemand Helfen?

    Mit freundlichen Grüßen

  2. #2
    Fortgeschrittener
    Registriert seit
    02.02.2010
    Beiträge
    44

    Standard

    Also die Idee mit in die SQL Abfrage zu tun ist schonmal soweit ganz richtig :
    Code:
    $result = mysql_query ("SELECT * FROM ft WHERE id ='".$_GET['id']."'");
    und da wir es ja sicher haben wollen,... scannen wir das $_GET lieber nochmal nach irgendwelchen Injections
    also
    mysql_real_escape_string
    Code:
    $result = mysql_query ("SELECT * FROM ft WHERE id ='".mysql_real_escape_string($_GET['id'])."'");
    siehe http://de.php.net/mysql_real_escape_string

    Dann muss aber das darauffolgende anders:
    PHP-Code:
    if (is_array($result)) //Das zählen der Reihen und dann das überprüfen hätte keinen richtigen Sinn da dort eh nur 1 Zeile gibt! Also so ist es gut denn wenn alles richtig ist kommt ein array, wenn nicht false als Ausgabe
            
    {
                  while (
    $row mysql_fetch_assoc($result)) { //Hier war es fast richtig nur nicht mysql_fetch_arrary sondern mysql_fetch_assoc
                  
    {
                   
    $id=$row['id'];
                     
    $name=$row['name'];
                   
    $email=$row['email'];
                   
    $ip $_SERVER['REMOTE_ADDR'];
                   
                   
                   
    mail($email$betreff$ausgabe$extra"FROM: Freunde-Test.xe.cx - Team");
                   }
                   } 
    Infos:
    http://de.php.net/is_array
    http://de.php.net/manual/de/function...etch-assoc.php


    So müsste eigentlich alles gehen

  3. #3
    Anfänger
    Registriert seit
    03.02.2010
    Beiträge
    9

    Standard

    Hast vergessen das if zu schließen

    Leider funktioniert des trotzdem nicht, jetzt schickt er wieder keine Emails, so wie vorhin erwähnt, sobald ich

    PHP-Code:
     WHERE id ='".mysql_real_escape_string($_GET['id'])."'"); 
    einfüge, für mich echt ein Rätsel..

    lg

  4. #4
    Fortgeschrittener
    Registriert seit
    02.02.2010
    Beiträge
    44

    Standard

    PHP-Code:
    $result mysql_query ("SELECT * FROM ft WHERE id ='".mysql_real_escape_string($_GET['id'])."'"); 
    also dies ist aber so richtig (bin ich mir ziemlich sicher )
    was sagt er denn wenn du des result diest.
    Also danach einfach mal folgendes einfügst:
    PHP-Code:
    die($result."<br>".mysql_error()); 
    Dann sollte eigentlich ein Aufschlussreicher Error kommen

  5. #5
    Anfänger
    Registriert seit
    03.02.2010
    Beiträge
    9

    Standard

    Da kommt "Resource id #6"?

    lg

  6. #6
    Fortgeschrittener
    Registriert seit
    02.02.2010
    Beiträge
    44

    Standard

    Was laber ich hier eigentlich gerade -.-... Ich glaub ich muss ins Bett ^^ also probier es mal so:
    PHP-Code:
    $result mysql_query ("SELECT * FROM ft WHERE id ='".mysql_real_escape_string($_GET['id'])."'");
    $row mysql_fetch_array($result);
    if(
    $row){
    $id=$row['id']; 
    $name=$row['name']; 
    $email=$row['email']; 
    $ip $_SERVER['REMOTE_ADDR']; 
                    
    mail($email$betreff$ausgabe$extra"FROM: Freunde-Test.xe.cx - Team");

    Ich programmiere in letzter Zeit auch zu wenig ^^, bekomm nicht mal mehr ne Abfrage hin^^

  7. #7
    Anfänger
    Registriert seit
    03.02.2010
    Beiträge
    9

    Standard

    Scheint trotzdem nicht zu funktionieren, hast du zufällig ICQ das ich dir mal den kompletten Code schicken kann? Weil ich verzweifel schon den ganzen Tag und weiß nich an was das liegen will.

    lg

  8. #8
    Fortgeschrittener
    Registriert seit
    02.02.2010
    Beiträge
    44

    Standard

    Also,... wir haben uns das gerade angeschaut, und falls jemand noch diese Theard liest

    Die beiden möglichkeiten von mir waren richtig , Problem war ein anderes
    Auch Contras Lösung war richtig nur dann mit:
    WHERE id ='".$_GET['id']."'

    und wie ja jetzt schon öfters erwähnt lieber auch mit:
    mysql_real_escape_string

    Also alles richtig hier, ne andere Stelle war falsch

  9. #9
    Anfänger
    Registriert seit
    03.02.2010
    Beiträge
    9

    Standard

    Jop.. dummheit muss weh tun

    Danke für die Hilfe

    lg

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •