Radio Button / Select in SQL

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Radio Button / Select in SQL

    Guten Tag werte Community,

    ich bin relativ neu in dem Gebiet PHP und stoße gerade jetzt auf ein Problem, welches für mich aber relevant wäre.
    Und zwar arbeite ich an etwas, dass einen Login benötigt, dementsprechend auch eine Registration.
    Darum habe ich was kleines gebastelt und bis auch eine Kleinigkeit funktioniert auch alles.

    Mein Problem ist, dass ich weder einen Wert von <select><option> noch ein Radio Button Wert in die Datenbank kriege.

    Könnte sich das bitte jemand anschauen?
    Ich verzweifle regelrecht dran, aus den Internetlösungen werde ich absolut nicht schlau...

    PS: Bitte nicht wundern... erst hieß es "Die Seite muss deutsch", dann hieß es "die Seite muss Englisch"... dementsprechend sind die IDs etc variierend... ich entschuldige mich mal dafür...



    Code:
    <?php 
    session_start();
    $pdo = new PDO('mysql:host=;dbname=','','');
    ?>
    <!DOCTYPE html> 
    <html> 
    <head>
      		<meta charset="utf-8">
    		<meta name="description" content="register">
    		<title> Register </title>
    		<link rel="shortcut icon" type="image/x-icon" href="./images/img_favicon.png">
    		<link rel="stylesheet"  href="./css/main.css" type="text/css" media="screen"/>
    </head> 
    <body>
     
    <?php
    $showFormular = true; 
     
    if(isset($_GET['register'])) {
        $error = false;
        $email = $_POST['email'];
        $passwort = $_POST['passwort'];
        $passwort2 = $_POST['passwort2'];
        $vorname = $_POST['vorname'];
        $nachname = $_POST['nachname'];
        $salutaion = $_POST['salutation'];
        
        if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            echo '<center><font color="White"><b>Please enter a valid mail address</font></b><br></center>';
            $error = true;
        }     
        if(strlen($passwort) == 0) {
            echo '<center><font color="White"><b>Please enter a password<br></b></font></center>';
            $error = true;
        }
        if($passwort != $passwort2) {
            echo '<center><font color="White"><b>Passwords are not matching<br></b></font></center>';
            $error = true;
        }
        
        if(!$error) { 
            $statement = $pdo->prepare("SELECT * FROM DATENBANKNAME WHERE email = :email");
            $result = $statement->execute(array('email' => $email));
            $user = $statement->fetch();
            
            if($user !== false) {
                echo '<center><font color="White"><b>E-Mail address already exists <br></b></font></center>';
                $error = true;
            }    
        }
        if(!$error) {    
            $passwort_hash = password_hash($passwort, PASSWORD_DEFAULT);
            
            $statement = $pdo->prepare("INSERT INTO DATENBANKNAME (email, passwort, vorname, nachname, salutation) VALUES (:email, :passwort, :vorname, :nachname, :salutation)");
            $result = $statement->execute(array('email' => $email, 'passwort' => $passwort_hash, 'vorname' => $vorname, 'nachname' => $nachname, 'salutation' => $salutation));
    
            
            if($result) {        
                echo '<center><font color="White"><b>Registration successful <a href="login.php" id="login">To Login Page</b></a></font></font></center>';
                $showFormular = false;
            } else {
                echo '<center><font color="White"><b>Something went wrong<br></b></font></center>';
            }
        } 
         
    }
     
    if($showFormular) {
    ?>
        <div id=register>
            <h1>
                Register
            </h1>
            <form action="?register=1" method="post">
                <table id="registertable">
                    <tr id="salutationtr"></tr>
                    <td><b>Salutation</b></td>
                        <td>
                            Mr.<input type="radio" name="salutation" id="mr" value="Mr.">
                            Ms.<input type="radio" name="salutation" id="ms" value="Ms.">
                        </td>
                    <tr id="vorname">   
                        <td>First name</td>
                        <td><input type="vorname" maxlength="250" name="vorname"></td>
                    </tr>
                    <tr id="nachname">
                        <td>Last name</td>
                        <td><input type="nachname" maxlength="250" name="nachname"></td>
                    </tr>
                    <tr id="username">
                        <td>E-Mail</td>
                        <td><input type="username" maxlength="250" name="email"></td>
                    </tr>
                    <tr id="password">
                        <td>Password</td>
                        <td><input type="password" maxlength="250" name="passwort"></td>
                    </tr> 
                    <tr id="password">
                        <td>Repeat Password</td>
                        <td><input type="password" maxlength="250" name="passwort2"></td>
                    </tr>
                </table> <br>
                <input id="register" type="submit" value="Register">
            </form>
        </div>
    <?php
    }
    ?>
     
    </body>
    </html>

  • #2
    Wert in die Datenbank kriege.
    Was soll das denn heissen? Siehst du die Daten nach dem insert nicht in der Datenbank? Woher weisst du, dass das Insert ausgeführt wurde? Mit welchem Tool prüfst du das?

    Code:
    INSERT INTO DATENBANKNAME
    ist ja schon mal falsch, da muss der Tabellenname rein.

    Du fragst nicht nach Fehlern:

    PHP-Code:
    $pdo->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION); 

    Kommentar


    • #3
      Richtig ich kann die Daten von dem Radio Button nach dem Insert nicht in der Datenbank sehen.
      Ich überprüfe das ganze auf der Datenbankebene direkt über MySQL Workbench.
      Alle anderen Daten werden erfolgreich übertragen nur der Radio Button nicht.
      Ich hatte es, wie gesagt auch schonmal mit einem <Select><Option> versucht aber das schien genauso wenig zu funktionieren.

      Ja da steht normalerweise auch der Tabellenname ^^"
      Ich habe gerade nur auf die schnelle ein Pseudo eingetragen statt dem Original.

      Den einzigen Fehler den er mir ausgibt ist:
      Notice: Undefined variable: salutation in C:\xampp\htdocs\seite\register.php on line 55

      Aber wenn ich das richtig sehe, ist die Variable doch definiert oder?

      Kommentar

      Lädt...
      X