php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.11.2009, 17:07  
Neuer Benutzer
 
Registriert seit: 25.11.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
I NEED MONEY befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Probleme mit Mail() und Daten in Datenbank löschen

Hey liebe Community,

ich hätte einige Fragen an euch.
Und zwar ich habe eine Nachrichtendienst und als 1. möchte ich das man angekommene Nachrichten löschen kann, was aber leider nicht funktioniert.
Als 2. möchte ich das wenn jemand eine Nachricht bekommt automatisch auch eine E-Mail erhält was auch leider nicht funktioniert

Bei meinem ersten Problem wird einfach nur angezeigt "Die Nachricht wurde nicht gelöscht." Ich habe alles was ich für möglich hielt ausprobiert und habe auch in einem PHP Buch nachgelesen und keine Antworten gefunden.
Beim zweiten Problem schätze ich das das Problem bei der Variable "$send_it" liegt und das irgendwie nicht mit mail() zusammenfunktioniert.
Wenn ich meine E-Mail Addresse manuell einfüge wird die Bestätigung erfolgreich versandt.
Wenn ich versuche mir die Variable $send_it ausgeben zu lassen wird nichts angezeigt.

Hier mein Code vielleicht findet ihr ja die Fehler die ich verzapft habe:

PHP-Code:
<?php
include 'dbc.php';
page_protect();

$rs_settings mysql_query("select * from users where id='$_SESSION[user_id]'");

$send_it mysql_query("select user_email from users where user_name='$_POST[userTo]'") or die(mysql_error());


if(
$_POST['doUpdate'] == 'Aktualisieren')  
{

$rs_pwd mysql_query("select pwd from users where id='$_SESSION[user_id]'");
list(
$old) = mysql_fetch_row($rs_pwd);

    if(
$old == md5($_POST['pwd_old']))
    {
    
$newmd5 md5(mysql_real_escape_string($_POST['pwd_new']));
    
mysql_query("update users set pwd='$newmd5' where id='$_SESSION[user_id]'");
    
header("Location: mysettings.php?msg=Passwort geändert");
    } else
    {
     
header("Location: mysettings.php?msg=Dein altes Passwort ist falsch");
    }

}

if (isset(
$_POST["auswahl"]))
    {
        
$sqlba "delete from message where";
        
$sqlba .= " userTo = " $_SESSION["user_name"];
        
        
mysql_query($sqlba);

        
$num mysql_affected_rows();
        if (
$num>0) echo "Die Nachricht wurde gelöscht<p>";
        else        echo 
"Die Nachricht wurde nicht gelöscht<p>";

    }

if (isset(
$_POST["senden"]))
    {
        
$sqlab "insert message";
        
$sqlab .= "(date, userFrom, userTo, message) values ";
        
$sqlab .= "('" $_POST["date"] . "', ";
        
$sqlab .= "'" $_POST["userFrom"] . "', ";
        
$sqlab .= "'" $_POST["userTo"] . "', ";
        
$sqlab .= "'" $_POST["message"] . "')";

        
mysql_query($sqlab);

        
mail("$send_it",
             
"Sie habem eine neue Nachricht",
             
"Hallo,\nSie haben eine neue Private Nachricht erhalten!\n\nhttp://diekellerkinder.de.ms",
             
"From:auto-reply@xtremehunters.xail.net");

header("Location: nachrichten.php?msg=Nachricht+erfolgreich+verschickt");


 }

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; UTF-8" />
<title>Mein Account</title>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
</head>
<body>
<div id="wrapper">
    <div id="header" class="container">
        <div id="logo">
            <h1><a href="#">DieKellerkinder<sup> 2.0</sup></a></h1>
            
        </div>
        <div id="banner"><img src="http://www.php.de/images/img01.jpg" width="667" height="118" alt="" /></div>
    </div>
    <div id="menu" class="container">
        <ul>
            <li><a href="myaccount.php">Mein Account</a></li>
            <li><a href="bilder.php">Bilder</a></li>
            <li><a href="users.php">Benutzer</a></li>
            <li class="active"><a href="nachrichten.php">Nachrichtendienst</a></li>
            <li><a href="mysettings.php">Einstellungen</a></li>
            <li><a href="logout.php">Ausloggen</a></li>
        </ul>
    </div>
    <div id="top-bar" class="container">
        <div class="bar">
            <div class="text">Willkommen <? echo $_SESSION['user_name'];?></div>
            <div id="search">
                <form method="get" action="">
                    <fieldset>
                        <input type="text" name="query" value="" class="input-text" />
                        <input type="submit" value="Search" class="input-submit" />
                    </fieldset>
                </form>
            </div>
        </div>
    </div>
    <div id="page" class="container">
        <div id="content">
            <div class="entry">
              <p> 
               <?    
              
if (isset($_GET['msg'])) {
        echo 
"<div class=\"msg\">$_GET[msg]</div>";
          }
          
?>
             </p>
    &nbsp<p><h2>Nachricht schreiben:</h2></p>

    <form action="nachrichten.php" method="post" name="myform" id="myform">
      <input name="date" type="hidden" id="date"  class="required" value='
<? 
$datum 
date("d.m.Y"); 
$uhrzeit date("H:i"); 
echo 
$datum," - ",$uhrzeit," Uhr"
?>' size="50"><br>
    <input name="userFrom" type="hidden" id="userFrom"  class="required" value="<? echo $_SESSION['user_name'];?>" size="50"><br>
    <h3>Name: (Der Volle Name des Benutzers der die Nachricht erhalten soll)</h3>
    <p><input name="userTo" type="text" id="userTo"  class="required" value="" size="50"><br></p>
    <h3>Nachricht:</h3>
    <p><textarea name="message" cols="40" rows="4" class="required" id="message"></textarea><br>
    <p><input name="senden" type="submit" id="senden" value="Abschicken"></p></form>
            &nbsp<p><h2>Meine Nachrichten:</h2></p><form action="nachrichten.php" method="post">
<?php

    $res 
mysql_query("select * from message where userTo='$_SESSION[user_name]'");
    while (
$dsatz mysql_fetch_array($res))

    {
        echo 
"Verschickt am ";
        echo 
$dsatz["date"];
        echo 
" von ";
        echo 
$dsatz["userFrom"];
        echo 
"<input type='radio' name='auswahl' value='$_SESSION[user_name]'><p><div class='border'>";
        echo 
$dsatz["message"];
        echo 
"</div>";
        echo 
"</p>";
    }


    echo 
"<br>";

echo 
mysql_error()
?>
<input type="submit" value="Ausgewähle Nachrichten löschen">
</form>

    </div>
        </div>
        <div id="sidebar">
            <ul>
                <li>
                    <h2>News</h2>
                <p>22.11.2009:</p>
                <p>Zahlreiche Verbesserungen an der Website und ein neues Design.</p>
                </li>
                
            </ul>
        </div>
        <div class="clearfix">&nbsp;</div>
        <div id="footer-bar" class="two-cols">
            <div class="col1">
                <br><br><p>&copy; 2009 http://diekellerkinder.de.ms</p>
            </div>
            <div class="col2">
                <ul>
                    <li><a href="bilder.php">Bilder</a></li>
                    <li><a href="users.php">Benutzer</a></li>
                    <li><a href="mysettings.php">Einstellungen</a></li>
                    <li><a href="logout.php">Ausloggen</a></li>
                </ul>
            </div>
            <div class="clearfix">&nbsp;</div>
        </div>
    </div>
</div>
<div id="footer" class="container">
    
</div>
</body>
</html>

Geändert von I NEED MONEY (26.11.2009 um 14:15 Uhr).
I NEED MONEY ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.11.2009, 17:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bitte beachten: Forenrichtlinien

Bitte schildere Deine Versuche, das Problem einzugrenzen. Wir sind keine Änderungsschneiderei der man einfach seinen Brocken hinwirft.

Und ändere den Threadtitel.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 26.11.2009, 14:11  
Neuer Benutzer
 
Registriert seit: 25.11.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
I NEED MONEY befindet sich auf einem aufstrebenden Ast
Standard

Hat keiner eine Idee?
I NEED MONEY ist offline  
Alt 26.11.2009, 14:20  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

zu 1.) Das Löschen der Nachricht willst du über den Namen des Verfassers realisieren? Schlechte Idee, die Datenbank ID wäre wesentlich besser geeignet zur eindeutigen Identifikation.

zu 2.)
Zitat:
Als 2. möchte ich das wenn jemand eine Nachricht bekommt automatisch auch eine E-Mail erhält was auch leider nicht funktioniert
Das ist keine hinreichende Fehlerbeschreibung.
Als Randtipp: Verwende eine fertige Mailer Klasse (z.B. PHPMailer) anstatt mail()

Allgemein: Du sprichst die assoziativen Arrays falsch an:
PHP-Code:
// falsch
$_SESSION[key]

// richtig
$_SESSION['key']
// oder
$_SESSION["key"]; 
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 26.11.2009, 15:46  
Neuer Benutzer
 
Registriert seit: 25.11.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
I NEED MONEY befindet sich auf einem aufstrebenden Ast
Standard

Ich habe das Problem mit der Mailen gelöst indem ich ein bisschen rumgebastelt habe

Ich habe es einfach so gemacht und die Mail kommt an:

PHP-Code:
if (isset($_POST["senden"]))
    {
        
$sqlab "insert message";
        
$sqlab .= "(date, userFrom, userTo, message) values ";
        
$sqlab .= "('" $_POST["date"] . "', ";
        
$sqlab .= "'" $_POST["userFrom"] . "', ";
        
$sqlab .= "'" $_POST["userTo"] . "', ";
        
$sqlab .= "'" $_POST["message"] . "')";

        
mysql_query($sqlab);

        
$sql9 "select * from users";
        
$sql9 .= " where user_name='{$_POST['userTo']}'";

        
$re9 mysql_query($sql9);

        while (
$d9 mysql_fetch_assoc($re9))
            {
        
$sut $d9["user_email"];
            }

        
mail("$sut",
             
"Sie haben eine neue Nachricht",
             
"Hallo,\nSie haben eine neue Private Nachricht erhalten!\n\nhttp://diekellerkinder.de.ms",
             
"From:auto-reply@xtremehunters.xail.net");

header("Location: nachrichten.php?msg=Nachricht+erfolgreich+verschickt");

echo 
mysql_error();

 } 
I NEED MONEY ist offline  
Alt 26.11.2009, 17:14  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Das SQL-Statement musst du nicht Zeile für Zeile zusammensetzen. Es ist übersichtlicher, wenn man das am Stück schreibt. Zeilenumbrüche filtert Mysql selbst raus. Zudem hast du die Eingaben nicht escaped:

PHP-Code:
        $sqlab "INSERT INTO message
                        (date, userFrom, userTo, message) 
                    VALUES (
                        '" 
mysql_real_escape_string($_POST["date"]) . "',
                        '" 
mysql_real_escape_string($_POST["userFrom"]) . "',
                        '" 
mysql_real_escape_string($_POST["userTo"]) . "',
                        '" 
mysql_real_escape_string($_POST["message"]) . "')"
SELECT * FROM ist quatsch, vor allem, wenn man nur eine einzige Spalte, in deinem Fall $d9["user_email"] benötigt. Da sollte SELECT user_email FROM stehen.

SELECT * ist sogar dann falsch, wenn man alle Spalten der Tabelle benötigt.

Die While-Schleife ist hier überflüssig, weil du sicher nur eine einziger Ergebniszeile erwartest.

mail("$sut",
Wie oben schon beschrieben sollte man auf die Nutzung der mail()-Anweisung komplett verzichten und eine fertige Mailer-Klasse einsetzen, z.B. PHPmailer.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] mail() mit &lt;a herf... Link in Html Mail geht nicht!? BettinaSyn PHP Tipps 2009 11 16.05.2009 22:28
Probleme mit einer HTML-Mail und verschiedenen Multipart-Blöcken Eremit PHP Tipps 2008 6 23.12.2008 13:17
Wieder mal Cc: Probleme mit mail() feedthemonkey PHP-Fortgeschrittene 9 11.09.2008 08:57
Unterschied zwischen mail() und popen(/usr/sbin/sendmail)... DonTermi PHP Tipps 2007 8 27.03.2007 13:25
Probleme mit der mail() Funktion Kein Genie PHP Tipps 2006 2 22.10.2006 16:37
mail() und boundary Problem Gef PHP Tipps 2006 4 02.03.2006 00:47
Mail mit mail() kommt nicht an center PHP Tipps 2005-2 5 18.08.2005 13:02
php mail() header &amp;amp;amp;amp;amp;amp; Spam Problem PHP-Fortgeschrittene 4 04.05.2005 12:31
Probleme mit mail PHP Tipps 2005 5 10.04.2005 18:22
Probleme mit mail() Mano PHP Tipps 2005 8 17.02.2005 17:10
[Erledigt] Hi habe 3 Probleme mit mail und einen farblichen text. PHP Tipps 2005 1 06.01.2005 13:52
php mail onlineshop - probleme :-( PHP Tipps 2004-2 10 30.11.2004 19:07
mail() - mail header PHP-Fortgeschrittene 2 28.09.2004 15:35
probleme mit mail() PHP Tipps 2004 14 15.09.2004 17:39
Probleme mit mail PHP Tipps 2004 2 02.06.2004 17:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
daten aus datenbank mailen, if($_post[\'delete\'] funktioniert nicht, sql9_ enu löschen, datenbank id löschen über bild, <div class=\bar\ php, daten mit php aus datenbank löschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum