Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Formular schickt die daten nicht an die Datenbank!! WARUM??

Einklappen

Neue Werbung 2019

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

  • PHP Formular schickt die daten nicht an die Datenbank!! WARUM??

    Hier mein Code:
    PHP-Code:
    <!doctype html>

    <html lang="de">
    <meta charset="utf-8">

    <head>

        <title>Registrieren - FetteRevolution</title>

        <link rel="shortcut icon" type="image/x-icon" href="PB.webp" />
        <link rel="stylesheet" type="text/css" href="Style.css">

        </head>

    <body>

        <form method="post" >

            <input type="text" name="benutzername" placeholder="Benutzername"><br>
            <input type="text" name="vorname" placeholder="Vorname"><br>
            <input type="text" name="nachname" placeholder="Nachname"><br>
            <input type="email" name="email" placeholder="Email"><br>
            <input type="password" name="passwort" placeholder="Passwort"><br>
            <input type="submit" name="submit" value="Registrieren">

        </form>


    <?php
           
    require_once ('Config.inc.php');

           
    $Nutzername $_REQUEST['benutzername'];
           
    $Vorname $_REQUEST['vorname'];
           
    $Nachname $_REQUEST['nachname'];
           
    $Email $_REQUEST['email'];
           
    $Passwort $_REQUEST['passwort'];
           
    $submit $_REQUEST['submit'];

        if(isset(
    $submit)){

            if(empty(
    $_REQUEST['benutzername'] && $_REQUEST['vorname'] && $_REQUEST['nachname'] && $_REQUEST['email'] && $_REQUEST['passwort']))
            {

            
    $error[] = "Bitte das komplette Formular ausfüllen";    

            }

             
    prüfen_user();

        if(
    $con) {



        (
    "INSERT INTO user('Nutzername' ,'Vorname', 'Nachname','Email','Passwort') VALUES ('$Nutzername','$Vorname','$Nachname','$Email','$Passwort')") or die ("Sorry wir konnten dich nicht registrieren");  

            }










        if(
    count($error)){
          foreach(
    $error as $msg){

              echo 
    $msg;
          }

      }   

        }

      
    ?>


    </body>

    </html>

    hier die: confic.inc.php
    PHP-Code:
    <?php
     $con 
    mysqli_connect ("127.0.0.1" "root" "" "Db_usersystem") or die ("Sorry Verbindung fehlgeschlagen!!!");

            
    $eintrag "INSERT INTO user (Nutzername , Vorname , Nachname , Email , Passwort) VALUES ($Nutzername , $Vorname , $Nachname , $Email , $Passwort)" or die ("hey! Es ist leider was schief gelaufen bei der Verbindung!");

            
    $auswählen =  ("SELECT Nutzername FROM user WHERE Nutzername='$Nutzername'") or die ("konnte nicht nach vorhanden nutzernamen suchen ");

             
    $auswählen2 =  ("SELECT Email FROM user WHERE Email='$Email'") or die ("konnte nicht nach vorhanden nutzernamen suchen ");





        
    $Nutzername $_REQUEST['benutzername'];
        
    $Vorname $_REQUEST['vorname'];
        
    $Nachname $_REQUEST['nachname'];
        
    $Email $_REQUEST['email'];
        
    $Passwort $_REQUEST['passwort'];




        
    // Datenbank Connect + eintragen der user daten bzw felder;


    // Die funktion prüft ob der Benutzer und die email bereits in der datenbank vorhanden sind 
    function prüfen_user(){





            if(  
    $con && mysql_num_rows($auswählen)> 0) {



              
    $error[] = "Bitte wähl einen freien Benutzername aus";


          }elseif(  
    $con && mysql_num_rows($auswählen2)> 0)
          {
             
    $error[] = "Bitte gib eine freie Email an!"
          }



         }













    ?>
    Villeicht kann mir dann auch wer sagen ob das so relativ gut gelöst ist oder ob man das vlt besser machen kann ps: bin noch am Anfang und habe eig sehr viel spaß auch wenn man manchmal verzweifelt

    Ich Danke im vorraus





  • #2
    WARUM??
    Du schickst die Daten ja auch nicht an die Datenbank.

    Villeicht kann mir dann auch wer sagen ob das so relativ gut gelöst ist oder ob man das vlt besser machen kann
    Zuerst mal, nicht mysql_* nehmen, ist veraltet und in PHP 7 gar nicht mehr enthalten.

    Kommentar


    • #3
      Dormilich wie ich schicke die daten nicht an die datenbank mit INSERT INTO usw mach ich das doch oder etwa nicht ?


      und ja stimmt ich vergesse das immer -.- ist abgeändert

      Kommentar


      • #4
        Zitat von FetteRevolution Beitrag anzeigen
        Dormilich wie ich schicke die daten nicht an die datenbank mit INSERT INTO usw mach ich das doch oder etwa nicht ?
        Ein String allein macht noch keinen Datentransfer.

        Kommentar


        • #5

          Dormilich
          ach stimmt -.- mysqli_query wer dann wohl der befehl

          Kommentar


          • #6
            Du wendest die Funktion empty() falsch an.
            Schau dir mal im Handbuch an was die Funktion mach und wie man sie verwendet.

            Ausserdem willst du ja gar nicht auf leere Parameter prüfen sondern willst ja wissen ob der Parameter überhaupt vorhanden ist. Dazu wendet man dann aber isset() an.
            Die Unterschiede kannst du im Handbuch anhand der dort vergleichenden Tabelle entnehmen.

            Demzufolge anstatt
            PHP-Code:
            if(empty($_REQUEST['benutzername'] && $_REQUEST['vorname'] && $_REQUEST['nachname'] && $_REQUEST['email'] && $_REQUEST['passwort'])) 
            Was ja eh schon falsch ist
            Besser
            PHP-Code:
            if( isset($_REQUEST['benutzername'], $_REQUEST['vorname'], $_REQUEST['nachname'], && $_REQUEST['email'],  $_REQUEST['passwort']) ) 
            Die zu prüfenden Parameter alle hintereinander mit Komma getrennt angeben.
            Ist nun ein Parameter nicht gesetzt wird isset() false zurückgeben.


            Das was du da hast nennt sich Affenformular(ein sich wieder selbst aufrufendes Script) und wie man das am Besten löst steht in der Wissenssammlung.


            Kommentar


            • #7
              protestix ehm also ich hab nochmal nachgeschlagen dort steht das empty prüft ob eine variable leer ist also ob sie einen wert hat und ich dachte mir das so wenn der user das feld leer lässt hat es ja auch keinen wert es hat ehrlich gesagt auch immer gut funktioniert. kann natürlich sein das ich das ganze falsch verstehe und es zufall ist das es in diesem fall das macht was ich möchte aber danke für den tipp

              Kommentar


              • #8
                wenn der user das feld leer lässt hat es ja auch keinen wert
                Und wenn jemand einen beliebigen Request an dein Skript schickt, sind die Felder gar nicht erst vorhanden => undefined Index Fehler

                Kommentar


                • #9
                  Dormilich

                  Okay!

                  Kommentar


                  • #10
                    Verwende kein $_REQUEST, sondern $_GET oder $_POST. GET dient um Daten abzufragen und POST um Daten zu schreiben/löschen.

                    Kommentar

                    Lädt...
                    X