Tart Skrevet 3. desember 2008 Skrevet 3. desember 2008 Hei jeg har en kode her: <html> <body> <center> <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'passord'; mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); mysql_select_db("telefon"); $query = "INSERT INTO PERSON(navn, etternavn, nummer) VALUES('$_GET[Navn]', '$_GET[Etternavn]', '$_GET[Nummer]'"; $result = mysql_query($query); ?> <br/> br/> <p><a href = "index.php">Index</a><p> </center> </body> </html> Her skjer det absolutt ingenting når jeg kjører dette. Ingen feilmeldinger eller noen ting. Kun Linken i koden kommer opp (som den skal). Er ikke noe galt med databasen, klarer fint å lese fra den via php. Noen som har vært borti dette før og som kan hjelpe meg?
Arne Skrevet 3. desember 2008 Skrevet 3. desember 2008 Kan ikke du feilsøke ved å prøve å printe ut variablene Navn, Etternavn og Nummer?
Tart Skrevet 3. desember 2008 Forfatter Skrevet 3. desember 2008 Kan ikke du feilsøke ved å prøve å printe ut variablene Navn, Etternavn og Nummer? Det er allerede gjort. Fungerer strålende det.
Arne Skrevet 3. desember 2008 Skrevet 3. desember 2008 Sikker på at du ikke har gjort noe feil da du kalte opp variablene dine? At du f.eks. kalte databasen for Telefon og ikke telefon, eller noen av radene for Navn og ikke navn?
Tart Skrevet 3. desember 2008 Forfatter Skrevet 3. desember 2008 Sikker på at du ikke har gjort noe feil da du kalte opp variablene dine? At du f.eks. kalte databasen for Telefon og ikke telefon, eller noen av radene for Navn og ikke navn? Alt stemmer, også når det gjelder små og store bokstaver.
Martin A. Skrevet 3. desember 2008 Skrevet 3. desember 2008 Klart det ikke kommer noen feil, da du aldri ber om å få noen feilmeldinger. Det er i tillegg til det vidåpent for SQL injection. foreach( $_GET as $key => $value ) { $_GET[ $key ] = mysql_real_escape_string( $value ); } $query = "INSERT INTO PERSON(navn, etternavn, nummer) VALUES('{$_GET['Navn']}', '{$_GET['Etternavn']}', '{$_GET['Nummer']}'"; $result = mysql_query($query); if( mysql_error() ) { die( mysql_error() ); } Dessuten SKAL arraynøkler ha fnutter rundt seg, slik at de ikke kan mistolkes som konstanter. define( "morro", "gøyalt" ); $array = array( 'morro' => "Dette kommer du aldri til å se", 'gøyalt' => "Men dette derimot..." ); echo $array[morro]; Har på følelsen at jeg har skrevet dette et par ganger tidligere
OISNOT Skrevet 3. desember 2008 Skrevet 3. desember 2008 $query = "INSERT INTO PERSON(navn, etternavn, nummer) VALUES('$_GET[Navn]', '$_GET[Etternavn]', '$_GET[Nummer]'"; Her skjer det absolutt ingenting når jeg kjører dette. Ingen feilmeldinger eller noen ting. Kun Linken i koden kommer opp (som den skal). Du kan telle antall parentes start og stopp. Du burde også bruke noe slikt som mysql_real_escape_string. Du kan også lese litt her SQL Injection Cheat Sheet.
Jonas Skrevet 3. desember 2008 Skrevet 3. desember 2008 (endret) foreach( $_GET as $key => $value ) { $_GET[ $key ] = mysql_real_escape_string( $value ); } Et lite triks med array_map(). $_GET = array_map ( 'mysql_real_escape_string', $_GET ); Anngående trådstarters problem; så må du eksplisitt be om feilmeldinger, vha. mysql_error(). Endret 3. desember 2008 av Jonas
Tart Skrevet 3. desember 2008 Forfatter Skrevet 3. desember 2008 Tusen takk for alle svar. Når det gjelder sikkerhet så er ikke dette så viktig. Er nybegynner og er mest bare interessert i å få det til å fungere og å lære pluss at ingen har tilgang på databasen utenfra uansett. Ellers var dette en meget klassisk feil som jeg dreit meg litt ut på i et tidligere svar som jeg fant ut med mysql_error() (takk til deg Jonas og m4rtin). Tabellen heter person og ikke PERSON. =)) Tusen takk for hjelp.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå