|
 |
|
| Autor |
Nachricht |
wolfgangftl User [User]

Anmeldung: 26.03.05 Beiträge: 11 Wohnort: Freital
|
Verfasst am: 26.03.2005, 14:07 Titel: Datenabfrage,Vergleichen, Mailversand |
|
|
Hallo, ich möchte hier nicht meine ganzen Scripte, wo ich probiere reinlegen. Deshalb kurz, was ich gern möchte. Also folgendes. Möchte Daten bei mySQL abfragen und vergleichen lassen mit einem Formular, wenn das stimmt soll automatisch eine Mail abgeschickt werden.
Kann das nicht mal jemand besser und verständlicher beschreiben zum Beispiel:
Daten bei MySQL abfragen:
Php-Befehle zur Abfrage
Vergleichen der Daten mit Formular und MySQL:
Php-Befehle zum Vergleichen
Versand einer Mail, wenn Daten übereinstimmen:
Php-Befehle zum Versand der Mail.
Oder mal richtig zu Seiten verweisen,
wo das genau beschrieben ist. Leider findet man immer nur 08/15 Erklärungen, wo man Gästebücher erklärt etc.Bei Php-Scripten schreibt man doch auch, wie man sie installiert.
Ich wäre jeden sehr dankbar, der sich mein Problem annimmt  _________________ Gruß
aus Freital
Wolfgang
|
|
| Nach oben |
|
 |
Xero Erfahrener [User]


Anmeldung: 01.09.04 Beiträge: 50
|
Verfasst am: 26.03.2005, 18:39 Titel: |
|
|
| Code: |
<?php
/* Daten aus MySQL Datenbank hohlen */
mysql_connect("host", "username", "passwort");
mysql_select_db("datenbank");
$query = mysql_query("SELECT * FROM tabelle WHERE bedingung");
$query = mysql_fetch_array($query);
/* Vergleichen */
if($query["tabellenname"] == $_POST["daten_aus_dem_formular"]) {
/* eMail schicken mit SendMail(); */
}
?> |
so in der art müsste das ganze aussehen 
|
|
| Nach oben |
|
 |
wolfgangftl User [User]

Anmeldung: 26.03.05 Beiträge: 11 Wohnort: Freital
|
Verfasst am: 26.03.2005, 19:29 Titel: |
|
|
| Xero hat folgendes geschrieben: | | Code: |
<?php
/* Daten aus MySQL Datenbank hohlen */
mysql_connect("host", "username", "passwort");
mysql_select_db("datenbank");
$query = mysql_query("SELECT * FROM tabelle WHERE bedingung");
$query = mysql_fetch_array($query);
/* Vergleichen */
if($query["tabellenname"] == $_POST["daten_aus_dem_formular"]) {
/* eMail schicken mit SendMail(); */
}
?> |
so in der art müsste das ganze aussehen  |
Erst mal vielen Dank Dein Script bringt keine Fehler, aber
es läßt fFalscheingaben im Formular zu. Müßte es stoppen, wenn keine Übereinstimmung ist.
Ich wollte es dann mit PHP versenden,
oben müßte dann Dein Scriptvorschlag stehen und dann
include("./admin/function.lib.php");
$mail = "Hallo!\n Sie haben die Portalbedingungen angefordert\n Hier die Bedingungen:$bedingung \n\r mfg. $admin "; // der eMailtext
mail($usermail, "Bedingungen", $mail, "From: $admin\nReply-To: $admin");
echo "<p align=center><font color=#FFFFFF>Bedingungen erfolgreich abgeschickt</font>"; _________________ Gruß
aus Freital
Wolfgang
|
|
| Nach oben |
|
 |
Campino Beliebter [User]


Anmeldung: 19.09.04 Beiträge: 449 Wohnort: Delmenhors ...
|
Verfasst am: 27.03.2005, 15:00 Titel: |
|
|
ich würde den Abgleich der der mysql Abfrage einbauen.
Also "WHERE `feld` = '".$_POST['feld']."' "
dann fectchen und anschließen gucken, ob es ein array ist ( if(is_array($name)) )
wenn keine Daten geholt wurden aus der DB, dann dürfte es ja auch kein array sein
jetzt musst du nurnoch den passenden sql-syntax basteln und es sollte klappen
// Campino _________________ d >_< b
|
|
| Nach oben |
|
 |
wolfgangftl User [User]

Anmeldung: 26.03.05 Beiträge: 11 Wohnort: Freital
|
Verfasst am: 27.03.2005, 17:00 Titel: |
|
|
| Campino hat folgendes geschrieben: | ich würde den Abgleich der der mysql Abfrage einbauen.
Also "WHERE `feld` = '".$_POST['feld']."' "
dann fectchen und anschließen gucken, ob es ein array ist ( if(is_array($name)) )
wenn keine Daten geholt wurden aus der DB, dann dürfte es ja auch kein array sein
jetzt musst du nurnoch den passenden sql-syntax basteln und es sollte klappen
// Campino |
Ich habe es nun so gemacht. Fehlermeldung kommt "Parse error"
<?php
/* Daten aus MySQL Datenbank hohlen */
mysql_connect("localhost", "user", "pw");
mysql_select_db("wsftl-1");
$query = mysql_query("SELECT * FROM forum_user WHERE 'login','email' = '".$_POST['login','email'].);
$query = mysql_fetch_array($query);
/* Vergleichen */
f(is_array($arrayname_des_mysql_fetch_array))
{
// TRUE ~ bedingung erfüllt
}
else
{
// FALSE ~ bedingung _nicht_ erfüllt
}
if($query["forum_user"] == $_POST["login,email"]) {
/* eMail schicken mit SendMail(); */
}
?>
Es muß doch schon im Formular eine Fehlermeldung kommen, wenn falsche
Eingaben gemacht werden. Ja, ioch weiß dass ist für einen Laien ein harter Brocken. Nur durch Eure gemeinsamen Hilfe kann man es lösen. _________________ Gruß
aus Freital
Wolfgang
|
|
| Nach oben |
|
 |
Campino Beliebter [User]


Anmeldung: 19.09.04 Beiträge: 449 Wohnort: Delmenhors ...
|
Verfasst am: 27.03.2005, 17:08 Titel: |
|
|
| Code: |
<?php
/* Daten aus MySQL Datenbank hohlen */
mysql_connect("localhost", "user", "pw");
mysql_select_db("wsftl-1");
$query = mysql_query("SELECT `login` FROM forum_user WHERE `login` = '".$_POST['login']."' AND `email` = '".$_POST['email']."'");
$query = mysql_fetch_assoc($query);
/* Vergleichen */
if(is_array($query))
{
/* eMail schicken mit SendMail(); */
// TRUE ~ bedingung erfüllt
}
else
{
/* Fehler ausgeben */
// FALSE ~ bedingung _nicht_ erfüllt
}
?>
|
// Campino _________________ d >_< b
Zuletzt bearbeitet von Campino am 28.03.2005, 13:05, insgesamt einmal bearbeitet
|
|
| Nach oben |
|
 |
wolfgangftl User [User]

Anmeldung: 26.03.05 Beiträge: 11 Wohnort: Freital
|
Verfasst am: 27.03.2005, 17:25 Titel: |
|
|
| Campino hat folgendes geschrieben: | | Code: |
<?php
/* Daten aus MySQL Datenbank hohlen */
mysql_connect("localhost", "user", "pw");
mysql_select_db("wsftl-1");
$query = mysql_query("SELECT `login` FROM forum_user WHERE `login` = '".$_POST['login']."' AND `email` = '".$_POST['email']."');
$query = mysql_fetch_array($query);
/* Vergleichen */
if(is_array($query))
{
/* eMail schicken mit SendMail(); */
// TRUE ~ bedingung erfüllt
}
else
{
/* Fehler ausgeben */
// FALSE ~ bedingung _nicht_ erfüllt
}
?>
|
// Campino |
Parse error: parse error, unexpected $end in \html\login\Abfrage\mailsend-1.php on line 21
In line 20 ist das Zeichen ?> , dann weiter nichts. _________________ Gruß
aus Freital
Wolfgang
|
|
| Nach oben |
|
 |
Campino Beliebter [User]


Anmeldung: 19.09.04 Beiträge: 449 Wohnort: Delmenhors ...
|
Verfasst am: 27.03.2005, 18:12 Titel: |
|
|
mysql_fetch_assoc ^^müsste es sein.
ansonsten check mal, ob du irgenwo ne Klammer vergessen hast, oder ein Semikolon.
// Campino _________________ d >_< b
|
|
| Nach oben |
|
 |
wolfgangftl User [User]

Anmeldung: 26.03.05 Beiträge: 11 Wohnort: Freital
|
Verfasst am: 27.03.2005, 22:29 Titel: |
|
|
| Campino hat folgendes geschrieben: | mysql_fetch_assoc ^^müsste es sein.
ansonsten check mal, ob du irgenwo ne Klammer vergessen hast, oder ein Semikolon.
// Campino |
<?php
/* Daten aus MySQL Datenbank hohlen */
mysql_connect("localhost", "USER", "PW");
mysql_select_db("wsftl-1");
$query = mysql_query "SELECT `login` FROM forum_user WHERE `login` = " $_POST['login']" AND 'email' = "$_POST['email'];
$query = mysql_fetch_assoc($query);
/* Vergleichen */
if(is_array($query))
{
/* eMail schicken mit SendMail(); */
// TRUE ~ bedingung erfüllt
}
else
{
/* Fehler ausgeben */
// FALSE ~ bedingung _nicht_ erfüllt
}
?>
Trotzdem Fehlermeldung
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in \html\login\Abfrage\mailsend-1.php on line 6
Ich weiß nicht an was das noch liegen kann.. Zumal ist das ja nur ein Teil des Scriptes. Wie ich schon zum Anfang geschrieben habe, muß die Funktion der Mailversendung noch rein. Solange man in das Formular irgendwas eingeben kann
ist das Script nich fertig. Es müßte sofort ablocken bei Falscheingabe. _________________ Gruß
aus Freital
Wolfgang
|
|
| Nach oben |
|
 |
Campino Beliebter [User]


Anmeldung: 19.09.04 Beiträge: 449 Wohnort: Delmenhors ...
|
Verfasst am: 28.03.2005, 12:32 Titel: |
|
|
du hast den query Befehl aus Zeile 6 falsch kopiert, so wie du ihn hast, kann es garnicht klappen, schau malweiter oben, wie er aussehen muss
// Campino _________________ d >_< b
|
|
| Nach oben |
|
 |
wolfgangftl User [User]

Anmeldung: 26.03.05 Beiträge: 11 Wohnort: Freital
|
Verfasst am: 28.03.2005, 12:47 Titel: |
|
|
| Campino hat folgendes geschrieben: | du hast den query Befehl aus Zeile 6 falsch kopiert, so wie du ihn hast, kann es garnicht klappen, schau malweiter oben, wie er aussehen muss
// Campino |
Danke, bin erst heute früh um 4.OO Uhr ins Bett habe noch gebastelt. Ich werde noch verückt mit der Stückelei. Immer wier rein kopieren in das Script, ändern. Da macht man immer wieder Fehler. Es muß doch mal das Script im ganzen komplett geben.
So jetzt muß ich erstmal was essen. Das Script macht allein nicht satt, sondern frisst mich noch auf
 _________________ Gruß
aus Freital
Wolfgang
|
|
| Nach oben |
|
 |
Campino Beliebter [User]


Anmeldung: 19.09.04 Beiträge: 449 Wohnort: Delmenhors ...
|
Verfasst am: 28.03.2005, 13:03 Titel: |
|
|
So, ich hab das ganze jetzt mal getestet. unter campinodesign.de/test.php?action=1 kannst du es mal checken. in der db sind die werte 1 und 4 eingetragen.
der Code dafür:
| Code: |
<?php
if(isset($_GET['action']))
{
?>
<form name="test" action="test.php" method="post">
<input type="text" name="login">login<br>
<input type="text" name="email">email<br>
<input type="submit" value="okay">
</form>
<?php
}
else
{
$db_host ="hostname"; //config
$db_user ="benutzername"; //config
$db_passwort ="passwort"; //config
$db_name ="datenbankname"; //config
$db_tab ="tabellenname"; //config
$DataConnect = mysql_connect($db_host, $db_user, $db_passwort);
mysql_select_db($db_name, $DataConnect) or die("Fehler: Ausgewählte Datenbank ist nicht vorhanden.");
$query = mysql_query("SELECT `login` FROM `".$db_tab."` WHERE `login` = '".$_POST['login']."' AND `email` = '".$_POST['email']."'");
$query = mysql_fetch_assoc($query);
if(is_array($query))
{echo "TRUE";}
else
{echo "FALSE";}
}
?>
|
kannst du so kopieren und testen. ganz oben, wo //config steht, musst du es natürlich noch mit deinen Werten anpassen
und anstelle von echo "TRUE" und echo "FALSE" noch nen Fehler ausgeben, bzw. ne Mail senden
// Campino _________________ d >_< b
|
|
| Nach oben |
|
 |
wolfgangftl User [User]

Anmeldung: 26.03.05 Beiträge: 11 Wohnort: Freital
|
Verfasst am: 28.03.2005, 13:10 Titel: |
|
|
| Campino hat folgendes geschrieben: | So, ich hab das ganze jetzt mal getestet. unter campinodesign.de/test.php?action=1 kannst du es mal checken. in der db sind die werte 1 und 4 eingetragen.
der Code dafür:
| Code: |
<?php
if(isset($_GET['action']))
{
?>
<form name="test" action="test.php" method="post">
<input type="text" name="login">login<br>
<input type="text" name="email">email<br>
<input type="submit" value="okay">
</form>
<?php
}
else
{
$db_host ="hostname"; //config
$db_user ="benutzername"; //config
$db_passwort ="passwort"; //config
$db_name ="datenbankname"; //config
$db_tab ="tabellenname"; //config
$DataConnect = mysql_connect($db_host, $db_user, $db_passwort);
mysql_select_db($db_name, $DataConnect) or die("Fehler: Ausgewählte Datenbank ist nicht vorhanden.");
$query = mysql_query("SELECT `login` FROM `".$db_tab."` WHERE `login` = '".$_POST['login']."' AND `email` = '".$_POST['email']."'");
$query = mysql_fetch_assoc($query);
if(is_array($query))
{echo "TRUE";}
else
{echo "FALSE";}
}
?>
|
kannst du so kopieren und testen. ganz oben, wo //config steht, musst du es natürlich noch mit deinen Werten anpassen
und anstelle von echo "TRUE" und echo "FALSE" noch nen Fehler ausgeben, bzw. ne Mail senden
// Campino |
Danke es geht bei Dir, habe "False" als Meldung erhalten. Nun muß ich den mai-Befehl noch frimeln. Sollte ja von wem die Mail kommt, Subjekt und Text enhalten. Als Empfänger, der die Daten eingegeben hat mit Name und eMail.
Habe es bei mir getestet, da kommt das Formular nicht:
http://www.theeagle.mine.nu/login/Abfrage/Neu.php _________________ Gruß
aus Freital
Wolfgang
|
|
| Nach oben |
|
 |
Campino Beliebter [User]


Anmeldung: 19.09.04 Beiträge: 449 Wohnort: Delmenhors ...
|
Verfasst am: 28.03.2005, 13:20 Titel: |
|
|
ruf die Seite nochmal auf, ansich dürftest du nicht FALSE bekommen haben
ich denke du hast dich mit den Werten vertan
mit der Mail kannst du das z.B. so lösen:
| Code: |
<?php
$Inhalt = "Halli Hallo, hier dein Text\n
deine Daten Login: ".$_POST['login']." und Email: ".$_POST['email']." waren korrekt \n\n
schönen Gruß,\n
blub
";
$to = "".$_POST['login']." <".$_POST['email'].">"; //empfänger
$subject = "Hallo, ich bin eine Betreffzeile"; // Betreff
$headers = "From: Dein Name hier <deine@emailadresse.de>\n"; // Absender
$headers .= "MIME-Version: 1.0\n"; //mailversion
#$headers .= "X-Priority: 1\n"; // Priorität
#$headers .= "X-MSmail-Priority: High\n"; // Priorität die 2te
$headers .= "X-mailer: My mailer"; // Mailer
mail($to,$subject, $Inhalt, $headers); // mail versenden
?>
|
viel Spass damit
// Campino
edit\
das Formular kommt nur, wenn die Variable "action" per "get" übergeben wurde.
Also über:
http://www.theeagle.mine.nu/login/Abfrage/Neu.php?action=1
alternativ kannst du in der ersten Zeile auch das
if(isset(
durch
if(!isset(
ersetzen.
dann musst du allerdings noch das "action"-Attribut im Form-Tag auf Neu.php?action=1 umstellen  _________________ d >_< b
|
|
| Nach oben |
|
 |
wolfgangftl User [User]

Anmeldung: 26.03.05 Beiträge: 11 Wohnort: Freital
|
Verfasst am: 28.03.2005, 13:53 Titel: |
|
|
| Campino hat folgendes geschrieben: | ruf die Seite nochmal auf, ansich dürftest du nicht FALSE bekommen haben
ich denke du hast dich mit den Werten vertan
mit der Mail kannst du das z.B. so lösen:
| Code: |
<?php
$Inhalt = "Halli Hallo, hier dein Text\n
deine Daten Login: ".$_POST['login']." und Email: ".$_POST['email']." waren korrekt \n\n
schönen Gruß,\n
blub
";
$to = "".$_POST['login']." <".$_POST['email'].">"; //empfänger
$subject = "Hallo, ich bin eine Betreffzeile"; // Betreff
$headers = "From: Dein Name hier <deine@emailadresse.de>\n"; // Absender
$headers .= "MIME-Version: 1.0\n"; //mailversion
#$headers .= "X-Priority: 1\n"; // Priorität
#$headers .= "X-MSmail-Priority: High\n"; // Priorität die 2te
$headers .= "X-mailer: My mailer"; // Mailer
mail($to,$subject, $Inhalt, $headers); // mail versenden
?>
|
viel Spass damit
// Campino
edit\
das Formular kommt nur, wenn die Variable "action" per "get" übergeben wurde.
Also über:
http://www.theeagle.mine.nu/login/Abfrage/Neu.php?action=1
alternativ kannst du in der ersten Zeile auch das
if(isset(
durch
if(!isset(
ersetzen.
dann musst du allerdings noch das "action"-Attribut im Form-Tag auf Neu.php?action=1 umstellen  |
Es geht die Mail geht auch raus,. Danke Dir so habe ich es jetzt:
<?php
if(!isset($_GET['action-1']))
{
?>
<form name="Post" action="post.php" method="post">
<input type="text" name="login">login<br>
<input type="text" name="email">email<br>
<input type="submit" value="okay">
</form>
<?php
}
else
{
$db_host ="localhost"; //config
$db_user ="root"; //config
$db_passwort ="pw"; //config
$db_name ="db"; //config
$db_tab ="tab"; //config
$DataConnect = mysql_connect($db_host, $db_user, $db_passwort);
mysql_select_db($db_name, $DataConnect) or die("Fehler: Ausgewählte Datenbank ist nicht vorhanden.");
$query = mysql_query("SELECT `login` FROM `".$db_tab."` WHERE `login` = '".$_POST['login']."' AND `email` = '".$_POST['email']."'");
$query = mysql_fetch_assoc($query);
if(is_array($query))
{echo "TRUE";}
else
{echo "FALSE";}
}
?>
Das email Teil muß ein seperates php sein, habe es post.php genannt.
Nun nur noch eine Frage, wie bekommt der addmin auch eine Mail, dass er weiß,
dass jemand sich eingetragen hat. Wie erhält man eine Bestätigung ob es gegangen ist oder Falsche Eingaben gemacht wurden.
Bekomme nur leere Seite bei korekter Eingabe nach abschicken und auch leere Seite bei falschen Angaben.
Ist doch noch nicht so:
Habe jetzt andere eMail eingetragen, als in Datenbank ist, bekomme trotzdem die Mail.
http://www.theeagle.mine.nu/login/Abfrage/Neu1.php
Trage mal eine Email von Dir ein, solltest Du nichts bekommen nach dem Script. _________________ Gruß
aus Freital
Wolfgang
|
|
| Nach oben |
|
 |
|
|
 |
|
Alle Zeiten sind GMT + 1 Stunde Gehe zu Seite 1, 2 Weiter
|
| Seite 1 von 2 |
|  |