{lang: 'de'}
Flashhilfe.de - Flash Community

Problem mit dem Upload eines Kontaktformulars in eine MySQL Datenbank

 


AntwortenRegistrieren Seite1 2  

_Lukas_#1
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

06.10.2010, 22:58

HI Leute
ich haben ein kleines Problem.
Und zwar werden die Daten aus meinem Kontaktformular nicht in die MySQL Datenbank hochgeladen.
Hier ist der problematische Ausschnitt meines PHP-Codes:
ActionScript:
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
if($passwort != $passwort2 OR $username == "" OR $passwort == "")
    {
      echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"formular.php \">Zurück</a>";
      exit;
      }




$passwort = md5($passwort);

$result = mysql_query("SELECT id FROM login WHERE username LIKE '$username'");
$menge = mysql_num_rows($result);

if($menge == 0)
    {
      $eintrag = "INSERT INTO login (username, passwort) VALUES ('".$username."', '".$passwort."')";
      $eintragen = mysql_query($eintrag);
 
      if($eintragen == true)
          {
          echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.php\">Login</a>";
          }
      else
          {
          echo "Fehler beim Speichern des Benutzernames. <a href=\"formular.php\">Zurück</a>";
          }
 
 
      }

else
    {
      echo "Benutzername schon vorhanden. <a href=\"formular.php\">Zurück</a>";
      }
Schlagwörter: Datenbank, Datenbanken, MySQL, PHP
damuddamc#2
Benutzerbild von damuddamc
Beiträge: 16
Wohnort: Weinheim
Registriert: Oct 2010

07.10.2010, 10:44

guten morgen

bei
$result = mysql_query("SELECT id FROM login WHERE username LIKE '$username'");

würd ich erstmal aus LIKE ein = machen und außerdem hast du bei der Variable
$username die Punkte vergessen also '.$username.'
Ich würde auch ans ende einer SQL anweisung das Semikolon für diese setzen, nicht nur für php..

$result = mysql_query("SELECT id FROM login WHERE username = '.$username.';");
sollte dann funktionieren
_Lukas_#3
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

Themenautor/in

07.10.2010, 14:20

Danke erstmal!
Aber ich komme jedoch immer noch wenn ich auf Abschicken gehe ein Fehlermeldung oder wenn ich es auf dem Server habe komme ich auf die fehler seite.

Hier noch mal das ganze script:
ActionScript:
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
<?php
SESSION_BUG_COMPAT_42 ;
?>
<!doctype html>
<html>
<form action="eintragen.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="passwort"><br>

Passwort wiederholen:<br>
<input type="password" size="24" maxlength="50"
name="passwort2"><br>

<input type="submit" value="Abschicken">
</form>

<?php
SESSION_BUG_COMPAT_42 ;
//Variablen
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];


//MySQL Connect
$verbindung = mysql_connect("reedox.de", "reedoxde" , "rdxtest123")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("reedoxde") or die ("Datenbank konnte nicht ausgewählt werden");

//Passwort und Username Kontrolle
    if($passwort != $passwort2 OR $username == "" OR $passwort == "")
    {
      echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"formular.php \">Zurück</a>";
      exit;
      }



//Upload der Daten in die Datenbanken
$passwort = md5($passwort);

$result = mysql_query("SELECT id FROM login WHERE username = '.$username.';");
$menge = mysql_num_rows($result);

if($menge == 0)
    {
      $eintrag = "INSERT INTO login (username, passwort) VALUES ('".$username."', '".$passwort."')";
      $eintragen = mysql_query($eintrag);
 
      if($eintragen == true)
          {
          echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.php\">Login</a>";
          }
      else
          {
          echo "Fehler beim Speichern des Benutzernames. <a href=\"formular.php\">Zurück</a>";
          }
 
 
      }

else
    {
      echo "Benutzername schon vorhanden. <a href=\"formular.php\">Zurück</a>";
      }




?>

</html>
damuddamc#4
Benutzerbild von damuddamc
Beiträge: 16
Wohnort: Weinheim
Registriert: Oct 2010

07.10.2010, 20:28

wie sieht denn deine Fehlermeldung aus??
findet der die php datei nicht?? oder kann es sein das er keine verbindung zur datenbank herstellen kann??

liegt die mysql datenbank auf dem gleichen server wie die seite??

dann müsstest du bei mysql_connect vlt statt reedox.de als URL localhost verwenden....
_Lukas_#5
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

Themenautor/in

07.10.2010, 22:20

Er findet die PHP Datei nicht. Oder eher gesagt es wir die von mir selber geschriebene Seite angezeigt die erscheint wenn die angewählte datei nicht verfügbar ist. Das mit dem localhost als Server bringt auch nix. Die Datenbank ist aber auf dem gleichem Server wie die PHP Datei.

Hier ist die Seite: http://www.reedox.de/lukas/formular.php
damuddamc#6
Benutzerbild von damuddamc
Beiträge: 16
Wohnort: Weinheim
Registriert: Oct 2010

08.10.2010, 11:03

hmm... du willst ja wenn du auf den submit button klickst die eintragen.php aufrufen, sehe ich das richtig...? Wieso machst du dann die überprüfung von passwort und username auf der formular.php?

dadurch kann es ja garnicht dazu kommen das ein user in die datenbank geschrieben wird wenn du eine andere seite aufrufst?

existiert die eintragen php überhaupt?

ich würd bei action im form tag mal die formular.php eintragen dann sollte das mit dem in dei datenbank schreiben zumindest mal funktionieren..

ansonsten kannst du ja auch das formular per php aufbauen lassen und wenn die registrierung funktioniert hast lässt du es einfach weg, machst also ne if abfrage..

gruß stephan
_Lukas_#7
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

Themenautor/in

08.10.2010, 15:43

Hi
Danke erstmal!!!

Es gibt aber noch ein problem. Ich kann mich zwar jetzt eintragen lassen und da steht dann auch das ich registriert bin aber wenn ich mich dann einloggen will funktioniert es nicht.
Es liegt also entweder am Einlogg-Formular oder am Registrierungs-Formular.

eintragen.html  :
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!doctype html>
<html>
<form action="eintragen.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="passwort"><br>

Passwort wiederholen:<br>
<input type="password" size="24" maxlength="50"
name="passwort2"><br>

<input type="submit" value="Abschicken">
</form>
</html>


eintragen.php  :
ActionScript:
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
<?php
SESSION_BUG_COMPAT_42 ;
//Variablen
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];


//MySQL Connect
$verbindung = mysql_connect("reedox.de", "reedoxde" , "rdxtest123")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("reedoxde") or die ("Datenbank konnte nicht ausgewählt werden");

//Passwort und Username Kontrolle
    if($passwort != $passwort2 OR $username == "" OR $passwort == "")
    {
      echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"formular.php \">Zurück</a>";
      exit;
      }



//Upload der Daten in die Datenbanken
$passwort = md5($passwort);

$result = mysql_query("SELECT id FROM login WHERE username = '.$username.';");
$menge = mysql_num_rows($result);

if($menge == 0)
    {
      $eintrag = "INSERT INTO login (username, passwort) VALUES ('".$username."', '".$passwort."')";
      $eintragen = mysql_query($eintrag);
 
      if($eintragen == true)
          {
          echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>";
          }
      else
          {
          echo "Fehler beim Speichern des Benutzernames. <a href=\"formular.html\">Zurück</a>";
          }
 
 
      }

else
    {
      echo "Benutzername schon vorhanden. <a href=\"formular.html\">Zurück</a>";
      }




?>


login.html :
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>

<form action="login.php" method="post">
Dein Username:
<input type="text" size="24" maxlength="50"
name="username">

   Dein Passwort:
<input type="password" size="24" maxlength="50"
name="password">

<input type="submit" value="Einloggen">
</form>


</html>


login.php  :
ActionScript:
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
<?php
SESSION_START();
?>

<?php
SESSION_BUG_COMPAT_42 ;

$verbindung = mysql_connect("localhost", "reedoxde" , "rdxtest123")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("reedoxde") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$passwort = md5($_POST["passwort"]);

$abfrage = "SELECT username, passwort FROM login WHERE username LIKE '.$username.' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->$passwort == $passwort)
    {
      $_SESSION["username"] = $username;
      echo "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
      }
else
    {
      echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>";
      }

?>



geheim.php
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start();
?>

<?php
if(!isset($_SESSION["username"]))
   {
     echo "Bitte erst <a href=\"login.html\">einloggen</a>";
     exit;
     }
else
{
      echo "Hallo Lukas";
}
?>
Geändert von _Lukas_ am 08.10.10 um 16:03 Uhr
damuddamc#8
Benutzerbild von damuddamc
Beiträge: 16
Wohnort: Weinheim
Registriert: Oct 2010

08.10.2010, 17:14

Also wenn du dich jetzt registrierst werden dei daten in die datenbank geschrieben?
einziges problem ist jetzt nurnoch das du dich nicht einloggen kannst??

also ich würde deine login.php mal einwenig umschreiben, zB. würde ich gleich beim abfragen der datenbank nach einem user mit dem passenden username auch gleich das passwort kontrollieren und nicht erst danach..

PHP:
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
<?php
SESSION_START
();
?>

<?php
SESSION_BUG_COMPAT_42 
;

$verbindung mysql_connect("localhost""reedoxde" "rdxtest123")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("reedoxde") or die ("Datenbank konnte nicht ausgew&auml;hlt werden");

$username $_POST["username"];
$passwort md5($_POST["passwort"]);

$abfrage "SELECT username, passwort FROM login WHERE username = '.$username.' AND passwort = '.$passwort.' ; ";

if(
$ergebnis mysql_query($abfrage))
    {
     
$_SESSION["username"] = $username;
      echo 
"Login erfolgreich. <br> <a href=\"geheim.php\">Gesch&uuml;tzer Bereich</a>";
      }
else
    {
      echo 
"Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>";
      }

?>


ich hab jetzt mal die Zeile $ergebnis = mysql_query($abfrage)) in die if- Abfrage rein gehauen, das kann man machen da mysql_query false zurückgibt wenn kein ergebnis komm, der datensatz also leer ist..

Die abfrage hab ich auch mal umgeschrieben, wie gesagt gleich das passwort mit einbezogen..

so sollte es eigentlich funtzen
_Lukas_#9
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

Themenautor/in

08.10.2010, 20:02

Funktioniert TOP!!

Danke!!!

Wie kann man direkt nach dem login auf den geschützen Breich weitergeleitet ohne das man erst auf den Link klicken muss?

Und es wäre auch noch cool wenn man den zu dem Zeitpunkt eingeloggten User auf in dem Geschützten bereich anzeigen könnte?

DANKE, DANKE, DANKE!!!!
damuddamc#10
Benutzerbild von damuddamc
Beiträge: 16
Wohnort: Weinheim
Registriert: Oct 2010

08.10.2010, 20:19

Ahh super :)

Bitte bitte...

Zu deiner ersten Frage,
wenn du in die login php noch die html tags einfügst, kannst du in den headbereich ein metatag verankern das der seite sagt das sie in einer bestimmten zeit eine andere seite aufruft,

könnte dann so aussehen:


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<head>

<php

if($login == true){
echo('<meta http-equiv=refresh content="10; url=deineSeite.htm">');
else{
echo('<meta http-equiv=refresh content="10; url=login.html">');
}
?>

<title>BW Bot (BATTLES)</title>

</head>

<body>
</body>

</html>


also das in deiner login php unter deine bisherigen zeilen...
in der if- abfrage hab ich einfach gesagt wenn eine Variable $login == true ist passiert etwas, login kannste ja oben einen wert zuweisen wo du schaust ob der login geklappt hat oder nicht..

zu dem metatag
<meta http-equiv=refresh content="10; url=login.html">

da sagt refresh content= "10" das nach 10 sekunden die seite url= login.html aufgerufen werden soll
da kannste ja reinschreiben was du willst

bei else würd ich dann zum login zurück gehen..

keine Ahnung ob das so funktioniert aber probiers mal aus..

Erkläre mal deine zweite frage genauer???

gruß stephan
_Lukas_#11
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

Themenautor/in

08.10.2010, 20:23

Ich werde es heute Abend oder morgen ausprobieren.

Auf vielen Seite und besonders in Foren wir der eigen Benutzername meistens immer angezeigt und da war meine Frage wir man das nach machen kann?

Bin dann weg

Lukas
_Lukas_#12
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

Themenautor/in

08.10.2010, 20:25

Außerdem soll die Einlogg Seite under geschütze Bereich die gleiche Seite sein blos dass manche Sache nicht zu sehen sind


Lukas
damuddamc#13
Benutzerbild von damuddamc
Beiträge: 16
Wohnort: Weinheim
Registriert: Oct 2010

08.10.2010, 20:41

achso das meinnst du,
joa das sollte ja kein problem sein du tust ja bereits in der login.php eine $_SESSION Variable username anlegen, und die kannst du ja grad auf jeder seite abfragen und wenn isset($_SESSION['username']) == true dann blendest du eben oben rechts oder so eine kleine Box ein wo dieser drin steht.

z.B.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<php
if(isset($_SESSION['username'])){
$Ausgabe = '<div>';
$Ausgabe .= '<p>'.$_SESSION['username'].'</p>';
$Ausgabe .= '</div>';

echo($Ausgabe);

}

?>


so könntest du auch eventuell das login feld in dieser box anzeigen wenn die SESSION Variable username nicht gesetzt ist...

musst du eben die dateien bissl umstricken...

gruß stephan
Geändert von damuddamc am 08.10.10 um 20:42 Uhr
_Lukas_#14
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

Themenautor/in

09.10.2010, 14:05

Das mit dem User anzeigen und der automatischen Weiterleitung funktioniert einwandfrei.

Nochmal Dankee !!!
_Lukas_#15
Benutzerbild von _Lukas_
Beiträge: 17
Registriert: Oct 2010

Themenautor/in

09.10.2010, 16:58

Ich habe leider schon wieder ein Problem:

In der Datenbank hab ich sie so wie den Benutzernamen gespeichert, also Varchar 150

Irgendwie funktioniert das hier nicht - Registrierung:

ActionScript:
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
<!doctype html>
<html>
<form action="eintragen.php" method="post">
<center>Username:<br>
<input type="text" size="50" maxlength="50"
name="username"><br><br>

Email:<br>
<input type="text" size="50" maxlength="50"
name="email"><br><br>

Email wiederholen:<br>
<input type="text" size="50" maxlength="50"
name="email2"><br><br>

Vorname:<br>
<input type="text" size="50" maxlength="50"
name="vorname"><br><br>

Nachname:<br>
<input type="text" size="50" maxlength="50"
name="nachname"><br><br>

PLZ:<br>
<input type="text" size="50" maxlength="50"
name="plz"><br><br>

Stra&szlig;e:<br>
<input type="text" size="50" maxlength="50"
name="stra&szlig;e"><br><br>

Hausnummer:<br>
<input type="text" size="50" maxlength="50"
name="hausnummer"><br><br>

Geburtsdatum:<br>
<input type="text" size="3" maxlength="50"
name="tag">
<input type="text" size="3" maxlength="50"
name="monat">
<input type="text" size="3" maxlength="50"
name="jahr"><br><br>

Passwort:<br>
<input type="password" size="50" maxlength="50"
name="passwort"><br>

Passwort wiederholen:<br>
<input type="password" size="50" maxlength="50"
name="passwort2"><br><br><br>

<input type="submit" value="Registrieren"></center>
</form>
</html>


ActionScript:
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
<?php
SESSION_BUG_COMPAT_42 ;

date_default_timezone_set('Europe/Paris') ;

//Variablen
$username = $_POST["username"];
$email = $_POST["email"];
$email2 = $_POST["email2"];
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
$plz = $_POST["plz"];
$straße = $_POST["star&szlig;e"];
$hausnummer = $_POST["hausnummer"];
$tag = $_POST["tag"];
$monat = $_POST["monat"];
$jahr = $_POST["jahr"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];
$datum = date("d.m.Y");


//MySQL Connect
$verbindung = mysql_connect("reedox.de", "reedoxde" , "rdxtest123")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("reedoxde") or die ("Datenbank konnte nicht ausgewählt werden");

//Passwort und Username Kontrolle
    if($passwort != $passwort2 OR $username == "" OR $passwort == "")
    {
      echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"formular.php \">Zurück</a>";
      exit;
      }



//Upload der Daten in die Datenbanken
$passwort = md5($passwort);

$result = mysql_query("SELECT id FROM login WHERE username = '.$username.';");
$menge = mysql_num_rows($result);

if($menge == 0)
    {
      $eintrag = "INSERT INTO login (username, email, vorname, nachname, plz, stra&szlig;e, hausnummer, tag, monat, jahr, passwort) VALUES ('".$username."', '".$email."', '".$vorname."', '".$nachname."', '".$plz."', '".$straße."', '".$hausnummer."', '".$tag."', '".$monat."', '".$jahr."', '".$passwort."')";
      $eintragen = mysql_query($eintrag);
 
      if($eintragen == true)
          {
          echo('<meta http-equiv=refresh content="3; url=http://www.reedox.de/meinrdx/">');
          echo "Vielen Dank f&uuml;r ihre Registrierung !";
          }
      else
          {
          echo('<meta http-equiv=refresh content="3; url=http://www.reedox.de/register.php">');
          echo "Die Registrierung war leider nicht erfolgreich.  :(";
          }
 
 
      }

else
    {
      echo('<meta http-equiv=refresh content="3; url=http://www.reedox.de/register.php">');
      echo "Der gew&auml;hlte Benutzername ist leider schon vorhanden. :\(";
      }




?>
Geändert von _Lukas_ am 09.10.10 um 17:18 Uhr
damuddamc#16
Benutzerbild von damuddamc
Beiträge: 16
Wohnort: Weinheim
Registriert: Oct 2010

09.10.2010, 19:55

wie es wird nix in die datenbank geschrieben??

Ein fehler ist mir schonmal aufgefallen, du hast bei der zeile wo du den neuen user in die datenbank eintragen willst bei den Values die Anführungsstriche falsh gesetzt, du schreibts:

' ".$username." ', das muss aber andersrum, erst die doppelten, dann die einfachen,
also so:

" '.$username.' "

genauer schau icvh mir das morgen nochmal an wenn sich das problem nicht schon behoben hat...
Geändert von damuddamc am 09.10.10 um 20:44 Uhr

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de