Insert in Datenbank

marcaurel

Mitglied
Hallo,

mich lässt gerade ein Problem bei der Programmierung verzweifeln und wollte fragen, ob mir hier vielleicht jemand sagen kann, wo das Problem liegt ....

Zum Einen hier erstmal die Codes:

HTML:
<form action="anmeldung.php" method="post">
  E-Mail: <input type="email" size="30" maxlength="250" name="email"><br><br>
 Passwort:  <input type="password" size="20"  maxlength="250" name="passwort">
Passwort wiederholen:  <input type="password" size="20" maxlength="250" name="passwort2"> 
  Name:  <input type="text" id="name" size="25" maxlength="250" name="name">
</form>

Zum Anderen der PHP-Code namens Anmeldung.php:

PHP:
<?php
include("connectregistrierung.php");
$dbconnection = mysql_connect($dbhost, $dbuser, $dbpass); 

mysql_select_db($dbname,$dbconnection); 
$email = mysql_real_escape_string($_POST['email'], $dbconnection); 
$passwort = mysql_real_escape_string($_POST['passwort'], $dbconnection); 
$name= mysql_real_escape_string($_POST['name'], $dbconnection); 

if($email !="" && $passwort !="" && $name !="")
{
if($passwort == $_POST['passwort2'])
{
$abfrage="INSERT INTO daten (email, passwort, name)  
    VALUES ('".$email."', '".$passwort."', '".$name."' )"; 
if(mysql_query($abfrage, $dbconnection)){ 
  print("<h4><font color=#FF0000>Die Daten wurden erfolgreich hochgeladen!</font></h4><p><h2></h2>"); 
}else{ 
  die("Fehler!"); 
} 
}
else
{
 echo "<h4><font color=#FF0000>Die Passwörter stimmen nicht überein!</font></h4>";
}
}
else{
 echo "<h4><font color=#FF0000>Bitte f&uuml;llen Sie alle Felder aus!</font></h4>";
}
?>

Gleichzeitig habe ich noch eine Datenbank bei mysql angelegt mit den Feldern id(die automatisch hinzugefügt wird), email, Passwort, Name, und eine connect zur Datenbank Datei.

Nun zur Problematik, wenn ich versuche etwas einzutragen über das Formular bekomme ich immer die Fehlermeldung Fehler! raus. (}else{ die("Fehler!");)

:( ich suche nun schon seit Tagen und habe keine Ahnung wo das Problem ist, bwz. was ich daran ändern muss. Fällt euch zufälligerweise der Fehler auf?
 
Hast du die richtigen datentypen für die Felder angelegt?

Vermutlich wirst du es so auch schon probiert haben:
$abfrage="INSERT INTO daten (email, passwort, name)
VALUES ('$email', '$passwort', '$name' )";
 
Erstens: Kein mysql_query benutzen. Mindestens mysqli_*. Warum ifndest du auf allen gängiegen PHP-Seiten und in jedem 2ten Thread in diesem Forum.

Zweitens: Ein Tutorial um den Fehler zu finden PHP/MySQLi: Debug Queries
 
Eine Frage, funktioniert dies alles ohne mysqli nicht mehr wenn man eine Seite auf einen Server hochlädt? Weil ich habe mysql ohne improved genommen, da in den meisten Handbüchern die ich in der Universität dazu erhalten habe mysqli nicht angesprochen wird :/?
 
Seit mindestens 3 Jahren ist mysql_ verlatet und in der 7er Version von PHP nicht mehr enthalten.
 
Also...
Eine Frage, funktioniert dies alles ohne mysqli nicht mehr wenn man eine Seite auf einen Server hochlädt?
Genau.
Außer, der Server hat eine veraltete PHP-Version, die selber ein Sicherheitsrisiko ist => auch schlecht.

da in den meisten Handbüchern die ich in der Universität dazu erhalten habe mysqli nicht angesprochen wird :/?
Sich das selbst übers Internet beizubringen ist gar kein Problem; so viel ist das nicht.
SQL-Anweisungen usw. sind nach wie vor unverändert, es geht nur um ein paar PHP-Funktionen.
 
Hallo, ich hab versucht das umzubauen aber auch so haut nichts hin :( (sorry wenn ich Euch nerven koste, aber das ist das 1. mal dass ich versuche eine seite zu schreiben)

Das Formular von oben ist unverändert, dies ist das Register.php

PHP:
<?php
include("connect.php");
 

if(!empty($_POST['submit'])) {


if(!empty($_POST['email'])){
            $emailChecked = true;
    }else {
    echo "<p style-'color: red;'>Sie haben keine E-Mail-Adresse angegeben!</p>";
}
   
   
if(!empty($_POST['passwort']) AND !empty($_POST['passwort2'])){
    $passwort = mysqli_real_escape_string($connection, $_POST['passwort']);
    $passwort2 = mysqli_real_escape_string($connection, $_POST['passwort2']);
    if($passwort == $passwort2) {
        $passwortChecked = true;
    }else {
        echo "<h4><font color=#FF0000>Die Passwörter stimmen nicht überein!</font></h4>";
    }
}else {
    echo "<h4><font color=#FF0000>Sie müssen das Passwort zweimal angeben!</font></h4>";
}

if(!empty($_POST['name'])){
            $nameChecked = true;
   
}else {
    echo "<p style-'color: red;'>Geben Sie Ihren Namen an!</p>";
}   


if(isset($emailChecked) AND isset ($passwortChecked) And isset ($nameChecked)) {
    $query = "INSERT INTO daten(email, passwort, name) VALUES ('$email', '$passwort', '$name')";
    $execQuery = mysqli_query($connection, $query);
    if($execQuery) {
        echo "<h4><font color=#FF0000>Sie haben sich erfolgreich registriert!</font></h4>";
    }else{
        echo "<br>".mysqli_error($connection);
    }
}

}

?>


und hier folgt das connect.php:

PHP:
<?php
header("Content-Type: text/html; Charset-utf-8");


$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "test";

$connection = mysqli_connect($dbhost, $dbuser, $dbpass);
if($connection){
    if(!mysqli_select_db($connection, $dbname))
        echo "<br>".mysqli_error($connection);
}else{
    echo "<br>".mysqli_error($connection);
}
?>

Das Problem ist, wenn ich auf den submit knopf drücke, dann passiert Garnichts, weder erhalte ich die Fehlermeldungen wenn sie angezeigt werden sollen, noch wird bei vollständigem ausfüllen etwas in die Datenbank eingetragen. ich bekomme auch keine Fehlermeldung angezeigt :(

Habt Ihr villeicht eine Idee wo das Problem liegen könnte?
 
Je nach Browser gibts irgendwo eine Liste der Netzwerkanfragen. Kommt beim Submit zufällig ein 500er-Status (irgendwelche Serverfehler) zurück?
 
Woran würde ich das erkennen? es kommt letztlich nur eine weiße Seite zurück ohne etwas drinnen.
Ich habs mit Edge und Firefox ausprobiert, bei beiden Browsern das gleiche Ergebnis
 

Neue Beiträge

Zurück