CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
03.12.2015, 10:22:53
|
|
registrierungsformular - email abfragen und vergleichen
Hi,
ich hab folgendes anliegen: ich möchte in einem registrierungsformular eine email auslesen, diese mit einer mysql-tabelle in einer mysql-datenbank vergleichen und ggf ausgeben lassen, das diese email schon vergeben ist. leider funktioniert meine umsetzung dieser idee nicht ganz wie gewünscht :c hoffe hier hat jemand ne idee wie ich folgenden code überredet bekomme wie gewünscht zu funktionieren.
PHP-Code:
<?php
if(isset($_POST['pname']) and isset($_POST['pemail']) and isset($_POST['pfirstname']) and isset($_POST['plastname']) and isset($_POST['pday']) and isset($_POST['pmonth']) and isset($_POST['pyear']) and isset($_POST['ppass']) and isset($_POST['pcpass'])){
$pbirthday = strtotime($_POST['pday'].'-'.$_POST['pmonth'].'-'.$_POST['pyear']);
$ppass = hash("sha512",$_POST['ppass']);
$pfirst = $_POST['pfirstname'];
$plast = $_POST['plastname'];
$timestamp = mktime(0, 0, 0, $_GET['month'], $_GET['pday'], $_GET['pyear']);
if($ppass == hash("sha512",$_POST['pcpass'])) {
$pemail = $_POST['pemail'];
$query = mysql_query("SELECT * FROM Player WHERE pEmail = '$pemail'");
if(!$query) {
$pname = $_POST['pname'];
$query = mysql_query("SELECT * FROM Player WHERE pName = '$pname'");
if(!$query) {
if(mysql_query("INSERT INTO Player (pName,pEmail,pFirstname,pLastname,pBirthday,pPassword) VALUES ('$pname','$pemail','$pfirst','$plast','$timestamp','$ppass')")) {
echo 'successful registered<br />';
echo $timestamp;
}
else { echo 'could not insert'; }
}
else { echo 'username schon vergeben'; }
}
else { echo 'email schon vergeben'; }
}
else { echo 'passwörter nicht identisch'; }
}
else {
// registrierungsformular
}
?>
anmerkung: die connect zur datenbank funktioniert, das registrierungsformular (hier der einfachheit halber einfach durch nen comment ersetzt) übermittelt alle korrekten werte, der code wird per include('filepath') eingebunden und wenn ich die "!" vor den "if(!$query)" entferne wird auch in die tabelle geschrieben. frage is jetz wie ich des umsetze, damit meine $query mir nen false oder nen true zurück gibt und nicht nur ne leere abfrage (weil genau das müsste es ja ergeben wenn bei email und user nichts gefunden wird, aber ne rückmeldung erfolgt die nicht true/false ist oder?). bin mal auf eure ideen gespannt c:
für den fall das jtz jemand kommt und meckert weil der code bissl sehr lang und uneingerückt is: die einrückung hat er beim kopieren aus notepad++ nicht übernommen :c und ich weiß nich wie man hier codespoiler erstellen kann :/
|
03.12.2015, 12:03:19
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: registrierungsformular - email abfragen und vergleichen
Bitte Codetags verwenden, das kann man ja sonst nicht lesen.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
|
03.12.2015, 13:54:55
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: registrierungsformular - email abfragen und vergleichen
PHP-Code:
error_reporting(-1); ini_set('display_errors', TRUE);
Schalte die Fehleranzeige ein bzw. höher!
Benutze keine geschützen Wörter als Variablennamen o.ä.
Benutze statt MySQL nur noch MySQLi. Lass Dir auch MySQLi-Fehler anzeigen.
Berichtige Deine Fehler ($_GET im Formular, $_GET['month'] gibt es nicht - auch nicht als $_POST, usw.). Übernimm nicht ungeprüft Formulareingaben!
Lass Dir Deine $query vor der Ausführung anzeigen, um zu prüfen ob die Varaiblen richtig übernommen wurden. Prüfe die Query ggf. via phpMyAdmin auf Funktionstüchtigkeit.
Wenn Du dann noch Probleme hats, bist Du mit Deinem aktuellen Code hier wieder richtig.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
03.12.2015, 17:32:35
|
|
AW: registrierungsformular - email abfragen und vergleichen
Zitat:
Zitat von DasNasu
für den fall das jtz jemand kommt und meckert weil der code bissl sehr lang und uneingerückt is: die einrückung hat er beim kopieren aus notepad++ nicht übernommen :c und ich weiß nich wie man hier codespoiler erstellen kann :/
|
Zitat:
Zitat von sysop
Bitte Codetags verwenden, das kann man ja sonst nicht lesen.
|
Jupp... danke...
Zitat:
Zitat von vt1816
Schalte die Fehleranzeige ein bzw. höher!
|
hab ich nie deaktiviert
Zitat:
Zitat von vt1816
Benutze keine geschützen Wörter als Variablennamen o.ä.
|
funktioniert aber ;) werde ich aber dennoch der übersichtlichkeit halber mal ändern.
Zitat:
Zitat von vt1816
Benutze statt MySQL nur noch MySQLi. Lass Dir auch MySQLi-Fehler anzeigen.
|
funtzt bei mir nicht da mein hoster phpmyadmin noch nicht aktualisiert hat... und ja schon getestet
Zitat:
Zitat von vt1816
Berichtige Deine Fehler ($_GET im Formular, $_GET['month'] gibt es nicht - auch nicht als $_POST, usw.). Übernimm nicht ungeprüft Formulareingaben!
|
du kennst mein <form> nicht, was lässt dich wissen das ich nichts getten kann? aber stimmt schon, ich gette nichts, war nen flüchtigkeitsfehler. sollte der funktionalität für die mysql abfrage nach der email aber nichts tun oder? :o
|
03.12.2015, 21:40:39
|
|
AW: registrierungsformular - email abfragen und vergleichen
Jut hab mein problem jetz mit mysql_num_rows gelöst ;)
PHP-Code:
if(isset($_POST['pname']) and isset($_POST['pemail']) and isset($_POST['pfirstname']) and isset($_POST['plastname']) and isset($_POST['pday']) and isset($_POST['pmonth']) and isset($_POST['pyear']) and isset($_POST['ppass']) and isset($_POST['pcpass'])){
$pbirthday = strtotime($_POST['pday'].'-'.$_POST['pmonth'].'-'.$_POST['pyear']);
$ppass = hash("sha512",$_POST['ppass']);
$pfirst = $_POST['pfirstname'];
$plast = $_POST['plastname'];
$timestamp = mktime(0, 0, 0, $_POST['pmonth'], $_POST['pday'], $_POST['pyear']);
if($ppass == hash("sha512",$_POST['pcpass'])) {
$pemail = $_POST['pemail'];
$mdo = mysql_query("SELECT * FROM Player WHERE pEmail = '$pemail'");
if(mysql_num_rows($mdo) <= 0) {
$pname = $_POST['pname'];
$mdo = mysql_query("SELECT * FROM Player WHERE pName = '$pname'");
if(mysql_num_rows($mdo) <= 0) {
if(mysql_query("INSERT INTO Player (pName,pEmail,pFirstname,pLastname,pBirthday,pPassword) VALUES ('$pname','$pemail','$pfirst','$plast','$timestamp','$ppass')")) {
echo 'successful registered<br />';
echo $timestamp;
}
else { echo 'could not insert'; }
}
else { echo 'username schon vergeben'; }
}
else { echo 'email schon vergeben'; }
}
else { echo 'passwörter nicht identisch'; }
}
else {
|
04.12.2015, 15:22:07
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: registrierungsformular - email abfragen und vergleichen
- mysql_num_rows <= 0, nenne mir bitte ein Beispiel wann der Wert negativ werden kann.
- MySQL - Die Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wird in der Zukunft entfernt werden. Verwende stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Spätestens wenn der Hoster Deines Vertrauen ein Update macht, fliegen Dir die Sachen um die Ohren und hat auch nichts mit phpmyadmin zu tun.
- "hab ich nie deaktiviert" - zeugt von Unkenntnis
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:52:11 Uhr.
|