ERLEDIGT
NEIN
NEIN
ANTWORTEN
14
14
ZUGRIFFE
584
584
EMPFEHLEN
-
Hallo!
Ich bastel an einem Registierungsskript rum. Es soll bei Neuanlage eine E-Mail versandt werden zum neuen Mitglied und direkt ein Eintrag in die Datenbank vorgenommen werden - nur leider wird keine Mail verschickt und einen Eitrag in die Datenbank wird auch nicht vorgenommen. Mit Hilfe diverser Artikel hier im Forum konnte ich mich schon bis hierhin "vortasten"......aber nichts geht mehr! Auch meine Bücher haben da keine Lösung Parat.
Hier der Code:
Code :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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
<? $title = "Mitglieder Registrierung!"; // Überschrift include("header.html"); include("connect_sql.php"); // Einbinden der Datenbankvariablen $verbindung = @mysql_connect($mysqlserver, $mysqluser, $mysqlpass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!"); // Überprüfung der Verbindung zur Datenbank $selectdb = @mysql_select_db($mysqldb, $verbindung) or die("Konnte die Datenbank <b>$mysqldb</b> nicht auswählen!"); // Zugriff auf die Datenbank wird hergestellt // Passwort automatisch erstellen function getpass() { $newpass = ""; $laenge=10; $string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; mt_srand((double)microtime()*1000000); for ($i=1; $i <= $laenge; $i++) { $newpass .= substr($string, mt_rand(0,strlen($string)-1), 1); } return $newpass; } $ident_user_id = $_POST["ident_user_id"]; $ident_nick = $_POST["ident_nick"]; $_POST["ident_pass"] = getpass(); $ident_pass = $_POST["ident_pass"]; $ident_mail = $_POST["ident_mail"]; $link = mysql_query("SELECT ident_user_id FROM inf_mem_ident WHERE 1"); // Abfrage der Datenbank echo mysql_error(); // Neue User-ID bestimmen while($data = mysql_fetch_array($link)){ $id = $data[ident_user_id] +1 ; } ?> <div align="center"> <table> <tr> <td> </td> </tr> </table> <form method="post" action="emailreg.php"> <table style="width: 500px;" border="0" cellpadding="3" cellspacing="0"> <tr> <td bgcolor="$bg3" align="left" height="20px" width="120px"><font color="#6699CC"><b>Identifikation</b></font></td> <td></td> </tr> <tr> <td class="link2" bgcolor="$bg1" align="left" height="20px" width="120px">User ID: <input type="TEXT" size="5" name="" value="<? echo $id ?>" readonly></td> <td></td> </tr> </table> <table> <tr> <td> </td> </tr> </table> <table style="width: 500px;" border="0" cellpadding="3" cellspacing="0"> <tr> <td bgcolor="$bg3" height="20px" colspan="2"><font color="#6699CC"><b>Mitglied Anlegen</b></font></td> </tr> <tr bgcolor="$bg1"> <td class="link2" height="20px" width="140px">Nick:</td> <td width="300px"><input type="text" size="30" maxlength="30" name="ident_nick" <? if(isset($_REQUEST[ident_nick])){ echo("value=\"".$_REQUEST[ident_nick]."\""); } ?> class="input"> </td> </tr> <tr bgcolor="$bg2"> <td class="link2" height="20px" width="140px">Password eingeben:</td> <td width="300px"><input type="password" size="30" maxlength="30" name="" value="<? echo $ident_pass ?>" <? if(isset($_REQUEST[$ident_pass])){ echo("value=\"".$_REQUEST[$ident_pass]."\""); } ?> readonly></td> </tr> <tr bgcolor="$bg2"> <td class="link2" height="20px" width="140px">E-Mail:</td> <td width="300px"><input type="mail" size="50" maxlength="80" name="ident_mail" value="@" <? if(isset($_REQUEST[ident_mail])){ echo("value=\"".$_REQUEST[ident_mail]."\""); } ?> class="input"></td> </tr> </table> <table> <tr> <td> </td> </tr> </table> <table style="width: 500px" border="0" cellpadding="3" cellspacing="0"> <tr> <td></td> <td><input type="submit" value="Mitglied Anlegen"> <input type="button" value="Abbrechen" onClick=window.location.href="javascript:history.back()"> </td> </tr> </table> </form> <table> <tr> <td> </td> </tr> </table> </div> <? $sql = "SELECT ident_nick FROM inf_mem_ident WHERE Nickname='".$ident_nick."'"; // Nick überprüfen $result = mysql_query($sql, $verbindung); if (mysql_num_rows($result)>0) { $nickname_inuse = "1"; } $sql = "SELECT ident_mail FROM inf_mem_ident WHERE EMail='".$ident_mail."'"; // E-Mail überprüfen $result = mysql_query($sql, $verbindung); if (mysql_num_rows($result)>0) { $email_inuse = "1"; } // Eintrag merken if(isset($_REQUEST['ident_nick'])){ if(strlen($_REQUEST['ident_nick']) > 0 && strlen($_REQUEST['ident_pass']) > 0 && strlen($_REQUEST['ident_mail']) > 0){ }else{ $error = "Es ist ein Fehler beim ausführen entstanden!.<br>"; } } // Eintrag vornehmen if ($_POST['submit'] == "insert") { $insert = "INSERT INTO inf_mem_ident SET nick='".$_POST['ident_nick']."', password=MD5'".$_POST['ident_pass']."', mail='".$_POST['ident_mail']."'"; mysql_query($insert); } mysql_close($verbindung); // Verbindung schliessen include("footer.html"); ?>
Wenn ich Submit drücke wird die Bestätigung aufgerufen mit den Angaben die ich vorher eingetragen habe - das ist auch schon alles. Wer könnte mir hier behilflich sein? Vielleicht mit einer kurzen Erklärung warum weshalb usw!? Wäre echt nett von euch!
thx
iceLinux is like a wigwam. No windows, no gates, only apache inside.
Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun.
-
Keiner eine Idee?
Linux is like a wigwam. No windows, no gates, only apache inside.
Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun.
-
17.01.04 21:44 #3
Die Länge des geposteten Quellcodes ist proportional zur sinkenden Lust sich dem Problem anzunehmen!
Wenn Du das gepostete HTML-Formular abschicken solltest, dann ist $_POST['submit'] niemals "insert", sondern immer "Mitglied Anlegen".PHP-Code:if ($_POST['submit'] == "insert") {
$insert = "INSERT INTO inf_mem_ident SET
nick='".$_POST['ident_nick']."',
password=MD5'".$_POST['ident_pass']."',
mail='".$_POST['ident_mail']."'";
mysql_query($insert);
}
Das liegt wohl daran, dass Du vergessen hast die mail()-Funktion zu verwenden. Zumindest konnte ich diese in Deinem Quellcode nicht erblicken.nur leider wird keine Mail verschickt
snuuDas Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
Okay!
1) Email wird nicht verschickt, weil du die mail() Funktion nicht genutzt hast!
2) Der Eintrag kann nicht vorgenommen werden, weil deine SQL-Syntax vollkommen falsch ist!
Dein Code:
So wärs richtig:PHP-Code:if ($_POST['submit'] == "insert") {
$insert = "INSERT INTO inf_mem_ident SET
nick='".$_POST['ident_nick']."',
password=MD5'".$_POST['ident_pass']."',
mail='".$_POST['ident_mail']."'";
mysql_query($insert);
}
SET wird nur in Verbindung mit 'UPDATE' genutzt, also wenn du einen Eintrag editieren willst!PHP-Code:$insert = "INSERT INTO inf_mem_ident (nick, password, mail) VALUES
('".$_POST['ident_nick']."',
MD5('".$_POST['ident_pass']."'),
'".$_POST['ident_mail'."')";
mysql_query($insert)
mfg
split
//EDIT: In die Datenbank solltest du die per Variable übergebenen Werte (Email usw) NIE direkt einfügen. Aus Sicherheitsgründen solltest du immer addslashes() und htmlspecialchars() vor dem einzufügendem Wert nutzen (z.B. '".addslashes(htmlspecialchars($_POST['ident_mail']))."')Geändert von split (17.01.04 um 22:39 Uhr)
-
...und dann eben mit mail() versenden:
PHP-Code:mail($_POST['ident_mail'], $subject, $message, $head);
-
Vielen Dank für eure Hilfe!
Ich werde das nun versuchen umzusetzen.
Linux is like a wigwam. No windows, no gates, only apache inside.
Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun.
-
sooo......!
Nach einiger Arbeit an meinem Skript wird nun die E-Mail verschickt! Aber ich habe immer noch Probleme mit dem Eintrag in der Datenbank:
Code :1 2 3 4
if ($_POST['submit'] == "Mitglied Anlegen") { $insert = "INSERT INTO inf_mem_ident ('ident_nick', 'ident_pass', 'ident_mail') VALUES ('".addslashes(htmlspecialchars($_POST['ident_nick']))."', MD5('".addslashes(htmlspecialchars($_POST['ident_pass']))."'), '".addslashes(htmlspecialchars($_POST['ident_mail']))."')"; }
Was kann da nur verkehrt sein?Linux is like a wigwam. No windows, no gates, only apache inside.
Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun.
-
20.01.04 09:44 #8
Du musst das SQL-Statement natürlich noch mit "mysql_query " ausführen

--> http://de.php.net/mysql_query
snuuDas Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
Ok, das hatte ich beim ändern übersehen bzw vergessen wieder mit reinzunehmen. Ich habe nun die Zeile eingefügt aber nichts tut sich. Wenn ich wenigstens eine Fehlermeldung bekommen würde.....!
Linux is like a wigwam. No windows, no gates, only apache inside.
Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun.
-
20.01.04 16:02 #10
Fehlermeldungen bekommst Du über mysql_error
--> http://de.php.net/mysql_errorDas Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
Ändere deine MySQL Querys mal wie folgt ab:
Vieleicht bekommst du so ja eine aussagekräftige FehlermeldungPHP-Code:mysql_query("") or die(mysql_error());
-
Es kommt einfach keine Fehlermeldung!
Linux is like a wigwam. No windows, no gates, only apache inside.
Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun.
-
Habs hinbekommen!
Danke für eure Tips.
mfg
iceLinux is like a wigwam. No windows, no gates, only apache inside.
Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun.
-
Bitte nochmal die Lösung für die Nachwelt hinterlassen...
Danke
-
Ok, hier mein Code:
Code :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
<? if($_POST[ident_nick]==''){ $addmem = 1; echo"<table style=\"width: 500px\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\"> <tr> <td bgcolor=\"".$bg1."\"><font color=\"#ff0000\">Es wurde kein Nick angegeben.</font></td> </tr> </table><br>"; } if($_POST[ident_mail]==''){ $addmem = 1; echo"<table style=\"width: 500px\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\"> <tr> <td bgcolor=\"".$bg1."\"><font color=\"#ff0000\">Es wurde keine Mail angegeben.</font></td> </tr> </table><br>"; } if (!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*". "@([a-z0-9]+([\.-][a-z0-9]+))*$",$_POST[ident_mail])){ $addmem = 1; echo"<table style=\"width: 500px\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\"> <tr> <td bgcolor=\"".$bg1."\"><font color=\"#ff0000\">Die angegebene Mailadresse ".$_POST[ident_mail]." ist ungültig.</font></td> </tr> </table><br>"; } if($addmem == 1){echo "<br><a href=index.php?file=test/neuanlage><font size=\"+1\">Zurück</font></a>";} if($addmem != 1) { $insert = "INSERT INTO inf_mem_ident (ident_nick, ident_pass, ident_mail) VALUES ('".addslashes(htmlspecialchars($_POST[ident_nick]))."', MD5('".addslashes(htmlspecialchars($_POST[ident_pass]))."'), '".addslashes(htmlspecialchars($_POST[ident_mail]))."')"; echo $insert. "<br><span style=\"color: #FFCC00;\">Ein Eintrag in die Datenbank ist erfolgt!</span>"; mysql_query($insert, $verbindung) or die(mysql_error()); } ?>
Natürlich könnte man noch die if Schleife vereinfachen bzw. abspecken - aber alles zu seiner Zeit!
Vielleicht hat ja noch jemand eine andere Lösung parat!?
Linux is like a wigwam. No windows, no gates, only apache inside.
Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun.
Ähnliche Themen
-
Email bei Datenbankeintrag
Von outless im Forum PHPAntworten: 1Letzter Beitrag: 11.03.10, 00:07 -
Datenbankeintrag ohne Formular
Von eugster im Forum PHPAntworten: 8Letzter Beitrag: 23.02.06, 10:32 -
Kontaktinfo-Formular wird nicht versandt
Von huginwp im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 2Letzter Beitrag: 09.08.05, 20:20 -
MySQL: Datenbankeintrag per Formular
Von FBIagent im Forum Relationale DatenbanksystemeAntworten: 7Letzter Beitrag: 01.07.05, 00:50 -
ACCESS:Aktueller Datensatz - Ein Formular als Email versenden - nicht als Anhang.Wie?
Von eric_cyborn im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 04.09.04, 19:29





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren