php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.04.2006, 13:34  
Erfahrener Benutzer
 
Registriert seit: 25.06.2005
Beiträge: 228
Marian
Standard mail() problem bei <select> und <option>

Also...

Als erstes habe ich mir ein login system gemacht.
man meldet sich dort mit E-mail addy und nutzernamen an.
Natürlicha uch mit PW, aber das ist für das amil versenden unrelevant.

So. jetzt habe ich mir ein weiteres script gemacht, was die datenbank ausliest, und die nutzer + e-mailadresse in ein dropdown feld einfügt, und dann an eine weitere php datei weiter gibt, die diese mail dann versenden soll.
Das klappt auch alles ganz gut. Nur kriege ich keine Mail.

Ich poste jetzt hier mal die scripte. Vieleicht kann mir dann einer nen tip geben, was ich verändern muss.

PHP-Code:
<?php

$_GET
['var'];

if (
$var=="k1")
{
$send="$Abs \n $texte";
$empf="Marian-e@web.de";
mail($empf$betrf$send);

?>

<script language="javascript">
alert("Die E-Mail wurde versendet\nSie werden jetzt weiter geleitet")
</script>
<meta http-equiv="refresh" content="0; URL=main.htm"> 

<?php
}

if(
$var=="a1")
{
$send="$abs \n $namen \n $vornamen \n $nicnamen \n $alter \n $hobbie \n\n $texte";
$empf="Marian-e@web.de";
mail($empf$betrf$send);

?>

<script language="javascript">
alert("Die E-Mail wurde versendet\nSie werden jetzt weiter geleitet")
</script>
<meta http-equiv="refresh" content="0; URL=main.htm"> 

<?php
}

if(
$var=="pgcr")
{
mail($lol$betrf$texte);

?>

<script language="javascript">
alert("Die E-Mail wurde versendet\nSie werden jetzt weiter geleitet")
</script>
<meta http-equiv="refresh" content="0; URL=main.htm">

<?php
}
?>
Mit <form ... action="...php?var="a1"> oder ähnlichen werten, veranlasse ich, das mein script nur von einem teil des scriptes verarbeitet werden kann, denn ich nutze das auch noch für andere sachen.

PHP-Code:
<form method="post" action="anmelden.php?var=pgcr">
<table border="0" cellpadding="0" style="border-collapse: collapse" width="52%" id="table1">
    <tr>
        <td width="112">[b]<font face="Verdana">Empfänger:</font>[/b]</td>
        <td><select name="lol" style="color: #AD0303; font-family: Verdana; border: 1px solid #AD0303; padding: 1px; background-color: #000000">
<?php
error_reporting
(E_ALL);     
define('MYSQL_HOST',     'localhost');     
define('MYSQL_USER',     'sqwan3');     
define('MYSQL_PASS',     'xxxxxx');     
define('MYSQL_DATABASE''xxxxxxx'); 

@
mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die("Es konnte keine Verbindung aufgebaut werden");
@
mysql_select_db(MYSQL_DATABASE) OR die ("Es konnte keine Verbindung aufgebaut werden");

$sql "SELECT*FROM login"
$result mysql_query($sql) OR die(mysql_error()); 

if(
mysql_num_rows($result)) 

    while(
$row mysql_fetch_assoc($result)) 
    {
    
?>
<option value="<?php echo $row['email']?>"><?php echo $row['user']?></option>
<?php 
    


else 

    echo (
"Es sind keine News in der datenbank"); 

?>
</select>
</td>
    </tr>
    <tr>
        <td width="112"></td>
        <td></td>
    </tr>
    
    
    <tr>
        <td width="112"></td>
        <td><input type="text" name="betrf" style="color: #AD0303; font-family: Verdana; border: 1px solid #AD0303; padding: 1px; background-color: #000000" size="40"></td>
    </tr>

    
    
    <tr>
        <td width="112"></td>
        <td></td>
    </tr>
    <tr>
        <td width="112" valign="top">[b]<font face="Verdana">Text:</font>[/b]</td>
        <td>
        <textarea name="texte" rows="19" cols="76" style="color: #AD0303; font-family: Verdana; border: 1px solid #AD0303; padding: 1px; background-color: #000000"></textarea></td>
    </tr>
    <tr>
        <td width="112"></td>
        <td></td>
    </tr>
    <tr><td></td>
        <td colspan="2">
        <p align="left">
        <input type="submit" name="lololololol" style="color: #AD0303; border: 1px solid #AD0303; padding: 1px; background-color: #000000"></td>
    </tr>
</table>
</form>
Mit diesem script beabsichtige ich die mail zu versenden.
Hier wird in einem dropdown menü alles nutzer mir nutzernamen angezeigt, und als wert die E-mailadresse aus der datenbank geholt.
Wenn man dann auf absenden drückt, werden alle werte an den teil des scriptes gesendet der durch die variable pgcr aufgefordert wird.

Leider funktioniert es nicht.
ich habe auch schon versucht den vert und den teil wo jetzt der nutzername ist mit der e-mail-addy zu belegen, so das beides den wert der e-mail-addy tragen sollte. geht auch nicht.

Ich hoffe es kann mir einer nen nützlichen tip geben.

MFG Marian
Marian ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.04.2006, 13:41  
Gast
 
Beiträge: n/a
Standard

Fragen:

1. Was versprichst du dir von der Zeile: $_GET['var'];
2. Hast du überprüft, ob $var überhaupt einen Wert hat?
3. Warum hast du kein error_reporting(E_ALL); am Anfang des Scriptes stehen?
4. Warum "Select *"? Siehe dazu: http://www.php-faq.de/q/q-sql-select.html
5. Hältst du das wirklich für gut, wenn ein User alle User plus eMail-Adressen sehen kann?

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
phpfan
 
Alt 02.04.2006, 13:57  
Erfahrener Benutzer
 
Registriert seit: 25.06.2005
Beiträge: 228
Marian
Standard

Also.
Den größten teil der schritte bin ich schon vorher durchgegangen.

Zu1.
<form... action="anmelden.php?var=pgcr>
Damit gebe ich die werte aus dem formular an die php datei weiter.
Den wert var (in diesem fall pgcr) lese ich mit $_GET['var'] aus.
damit habe ich den wert, den ich dem formular mitgegeben habe im script.
den vergleiche ich jetzt mit einer IF-anweisung. Nur der teil des scripts der dieser variable entsprciht soll ausgeführt werden. bis dahin gehts. habe ich ausprobiert.
Es wird auch nur dieser teil ausgegben.

Zu2.
var hat einen wert.
anmelden.php?var=pgcr sollt den wert bestimmen.
Geht auch. Habe ich mir ausgeben lassen.

Zu3.
Mein Diff-Lehrer hat gesagt das es egal ist, an welcher stelle
error_reporting(E_ALL); steht.

Zu4.
select*... brauche ich um die datenbank auszulesen.

zu5.
Ja. das ist sinnvoll.
Denn es wird höchstens 20 member geben, die in diese datenbank eingetragen werden. das heist max 20 adressen.
Ist nicht viel.
Also kanns so gemacht werden.

Was das richtig debuggen angeht.
Ich habe das in etwa so geamcht, wie du gesagt hast.
Dabi bin ich daruf gekommen, das der fehler irgendwo da liegen muss, wo dem script die gewählte e-mail-adresse übergeben wird, denn den rest kann ich mir ausgeben lassen. Nur die werte von <select>
<option></option>
<option></option>
</selcet>
werden nicht richtug ausgegeben.

Und da hänge ich jetzt.

Vieleicht kannst du mir jetzt weiter helfen.

MFG Marian

PS: Ich habe mir schon die mühe geamcht selber das script zu überarbeiten.
Leider ohne erfolg.
ich will nicht das es so aussieht alls wolle ich mir mein script schreiben lassen.
Marian ist offline  
Alt 02.04.2006, 14:05  
Gast
 
Beiträge: n/a
Standard

Zu 1. Mit der Zeile $_GET['var']; liest du den Wert nicht aus, das ist Quatsch!
Zu 2. Du bist dir sicher, dass hier: if ($var=="k1") $var einen Wert hat
Zu 3. Dein Leher hat keine Ahnung, diese Zeile gehört in jedes Script an den Anfang!
Zu 4. Lese die Seite, du hast nicht verstanden, worum es geht!
Zu 5. Sehe ich zwar anders, aber es ist ja dein Script.

Variablen per Get spricht man mit $_GET['varname'] an, Variablen per Post mit $_POST['varname']

Gruß
phpfan
 
Alt 02.04.2006, 14:07  
Erfahrener Benutzer
 
Registriert seit: 25.06.2005
Beiträge: 228
Marian
Standard

Prob gelöst.
ich habe blos nach dem debuggen das falsche script hochgeladen.
ich habe das anmelden.php verändert,
aber anmelden.html hochgeladen.

Tut mir sorry für die mühe die ich gemacht habe.

EDIT://
var ist der variablen name.
ich weis das ich alle spalten auslese.
dann kann ich das script einfach verändern, und mir datenbank werten arbeiten, auch wenn ich die datenbank erweitere, und muss nicht immer ne neue ausleseanweisung hinzufügen.
warum error_reporting(e_all); an den anfang muss verstehe ich net, aber da ist es im mom gut. ich benutze es so wie so nicht.
Jetzt gehts auf jedenfall.

Und ich habe vergessen den wert den ich mit $_GET['var'] ausgelesen habe in eine variable zu speichern.
Jetzt gehts auf jedenfall
//Edit

MFG Marian
Marian 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
problem mit mail()!!! coldi1000 PHP Tipps 2008 4 13.11.2007 22:49
Problem beim erstellen einer HTML Mail... GELight PHP Tipps 2006 15 06.10.2006 00:27
Problem mit der Mail Funktion. FireFIghter PHP Tipps 2006 12 02.01.2006 12:04
mail(); + Array = Problem PHP Tipps 2005-2 5 15.08.2005 16:45
mail von lokalem Server an SMTP im Netz -after_pop- Problem PHP-Fortgeschrittene 7 12.08.2005 14:40
Problem ! Mail mit PHP vom Freenet-Server pit62 PHP Tipps 2005 3 09.02.2005 09:22
Problem mit Ausgabe in Optionfelder (<select>) Monty77 PHP Tipps 2005 4 27.01.2005 22:33
Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
Problem mit dem mail() PHP Tipps 2005 10 18.01.2005 21:13
mail() problem Trumpfass PHP Tipps 2004-2 3 20.12.2004 20:07
Mail Problem PHP Tipps 2004-2 3 13.12.2004 22:43
Problem mit Formular + Mail To+ PHP-Seiten weiterleitung HTML, Usability und Barrierefreiheit 3 27.08.2004 11:06
<select> <option> PHP Tipps 2004 6 16.08.2004 15:47
Problem mit Mail PHP Tipps 2004 15 02.08.2004 22:55
mail() - problem PHP Tipps 2004 2 12.07.2004 00:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
email mit select aus datenbank senden, e mail senden mit select datenbank

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.