Kobling til database - problemer

En tråd i 'PHP, SQL og databaser' startet av Bjørn Arild Andersen, 21 Jan 2019.

  1. Bjørn Arild Andersen New Member

    Innlegg:
    25
    Bruker MAMP, Brackets, PHP versjon: 7.2.10.

    Det virker som om selve koblingen mot databasen fungerer, men jeg får ikke lov til å sende informasjon inn dit.
    - failed to register user, er tilbakemeldingen.

    Hva er det jeg ikke ser? Den fungerte først, så stoppet det å fungere etter noen endringer...

    Databasekobling: connect.php

    <?php

    //Connection to MAMP_db on localhost.

    $connection = mysqli_connect("localhost", "root", "root");
    if(!$connection){
    echo "Failed to connect to database!";
    }

    $dbselect = mysqli_select_db($connection, "aktiv_tid");
    if(!$dbselect){
    echo "Failed to select database!";
    }

    ?>

    script som kjøres for registrering:
    <?php

    require_once ('../cms/connect.php');

    if(isset($_POST) & !empty($_POST)){
    echo $user_company_name = $_POST['user_company_name'];
    echo "<br />";
    echo $user_firstname = $_POST['user_firstname'];
    echo "<br />";
    echo $user_lastname = $_POST['user_lastname'];
    echo "<br />";
    echo $user_email = $_POST['user_email'];
    echo "<br />";
    echo $user_phone = $_POST['user_phone'];
    echo "<br />";
    echo $user_address = $_POST['user_address'];
    echo "<br />";
    echo $user_postnr = $_POST['user_postnr'];
    echo "<br />";
    echo $user_username = $_POST['user_username'];
    echo "<br />";
    echo $user_password = $_POST['user_password'];

    echo $sql = "INSERT INTO `registered_user` (user_company_name, user_firstname, user_lastname, user_email, user_phone, user_address, user_postnr, user_username, user_password) VALUES ('$user_company_name', $user_firstname, '$user_lastname', '$user_email', '$user_phone', '$user_address', '$user_postnr', '$user_username', '$user_password')";

    $result = mysqli_query($connect, $sql);

    if($result){
    echo "User registration succefull!";
    } else {
    echo "Failed to register user!";
    }
    }
    ?>

    HTML skjemaet som fylles ut:
    <form method="post" action="?register">
    <div class="form-group w-100">
    <input type="text" name="user_company_name" class="form-control" id="company_name" placeholder="Firmanavn">
    </div>
    <div class="form-group w-50 float-left">
    <input type="text" name="user_firstname" class="form-control" id="firstname_user" placeholder="Fornavn">
    </div>
    <div class="form-group w-50 float-left">
    <input type="text" name="user_lastname" class="form-control" id="lastname_user" placeholder="Etternavn">
    </div>
    <div class="form-group w-50 float-left">
    <input type="email" name="user_email" class="form-control" id="user_email" placeholder="E-post">
    </div>
    <div class="form-group w-50 float-left">
    <input type="text" name="user_phone" class="form-control" id="user_phone" placeholder="Telefon/Mobil">
    </div>
    <div class="form-group w-50 float-left">
    <input type="text" name="user_address" class="form-control" id="user_address" placeholder="Adresse">
    </div>
    <div class="form-group w-50 float-left">
    <input type="text" name="user_postnr" class="form-control" id="user_postnr" placeholder="Postnummer">
    </div>
    <div class="form-group w-50 float-left">
    <input type="text" name="user_username" class="form-control" id="user_username" placeholder="Brukernavn">
    </div>
    <div class="form-group w-50 float-left">
    <input type="password" name="user_password" class="form-control" id="user_password" placeholder="Passord">
    </div>
    <button class="btn btn-lg btn-primary btn-block" type="submit">Registrer</button>
    </form>
     
  2. Oscar Member

    Innlegg:
    153
    Aktiver php errors i .ini filen din. Da får du en detaljert feilmelding
     
  3. leiheim

    leiheim Member

    Innlegg:
    44
    Ofte er det slik at brukernavnet er root, og passordet blankt, så
    $connection = mysqli_connect("localhost", "root", "root");
    skal skal kanskje være
    $connection = mysqli_connect("localhost", "root", "");
     
  4. Bjørn Arild Andersen New Member

    Innlegg:
    25
    Den har jeg prøvd, og det fungerer ikke det heller.
    Har også sjekket om det er gitt rettigheter i databasen, og de ser ut til å være i orden...

    Kan det være innstillinger i MAMP som er problemet?
     
  5. leiheim

    leiheim Member

    Innlegg:
    44
    Istadenfor å kjøyra INSERT INTO, har du forsøkt med ein enkel SELECT for å henta ut data, og gjekk det fint?
     
  6. Bjørn Arild Andersen New Member

    Innlegg:
    25
    Nei. Ikke prøv. Men har jo ikke noe i databasen å hente enda heller ;-)
     
  7. Daniel Johnsrud

    Daniel Johnsrud Medlem

    Innlegg:
    104
    legg til en or die(mysqli_error()) bak spørring.
    Vet ikke hvordan tabellen din ser ut, men det holder med 1 navnefeil.. $user_firstname mangler forøvrig '$user_firstname'
     
  8. Bjørn Arild Andersen New Member

    Innlegg:
    25
    Takk for at du så den med $user_firstname...

    Det med å legge på or die, hvor ville du gjort det?
     
  9. Daniel Johnsrud

    Daniel Johnsrud Medlem

    Innlegg:
    104
    $result = mysqli_query($connect, $sql) or die(mysql_error());
    Mulig du må ha mysql_error($connection). En drøy halvtime siden jeg jobbet med mysqli
     
  10. Bjørn Arild Andersen New Member

    Innlegg:
    25
    No luck... Her er et bide av databasestrukturen...
    Har ikke jobbet så mye med sql...
     

    Vedlagte filer:

  11. Bjørn Arild Andersen New Member

    Innlegg:
    25
    Får opp en beskjed i phpmyadmin som sier følgende: No partitioning defined!
    Har det noe å si? Dette er en helt ny installasjon av MAMP...
     
  12. Daniel Johnsrud

    Daniel Johnsrud Medlem

    Innlegg:
    104
    Så vidt meg bekjent skal ikke det ha noe å si lokalt. Men har aldri hatt det problemet så er ikke sikker.
    Fjern Echo fra $sql og se hva som skjer da...
     
  13. Bjørn Arild Andersen New Member

    Innlegg:
    25
    Det gir ingen endring. allerede prøvd... Mulig jeg må se på en annen måte å koble dette på...
     
  14. Daniel Johnsrud

    Daniel Johnsrud Medlem

    Innlegg:
    104
    Du bruker $connection for å koble til, men $connect i spørringen. Jeg måtte se på koden flere ganger enn jeg tørr innrømme før jeg så det :O
     
  15. xdex

    xdex Medlem

    Innlegg:
    1.592
    Dersom du ikke er så erfaren, vil jeg anbefale deg å først prøve med 1 felt (navn) før du bygger deg videre med flere felt. Hvis dette er hele koden din, har du i tillegg store problem (never trust user inputs).

    Uansett, eksempelet du viser til er tilnærmet,

    https://www.w3schools.com/php/php_mysql_insert.asp

    ^ Gir også gode tilbakemeldinger (gode, som i "OK" fordi vi snakker om php..)

    Som @Daniel Johnsrud allerde har nevnt snubler du i $connection og $connect.
     

Del denne siden