NiccosSystem Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Jeg har prøvd å finne problemet, men jeg sitter helt fast her.. Noen som muligens vet hva som er galt her? include("includes/mysql.php"); $user = $_POST['user']; $email = $_POST['email']; $skype = $_POST['skype']; $table = "users"; $sql = "SELECT * FROM $table WHERE user='$user'"; $sql2 = "SELECT * FROM $table WHERE email='$email'"; $sql3 = "SELECT * FROM $table WHERE skype='$skype'"; $result = mysql_query($sql); $result2 = mysql_query($sql2); $result3 = mysql_query($sql3); $count = mysql_num_rows($result); $count2 = mysql_num_rows($result2); $count3 = mysql_num_rows($result3); if ($count == 0 && $count2 == 0 && $count3 == 0) { $passwd = md5($_POST['pass']); $age = $_POST['age']; $registersql = "INSERT INTO $table VALUES (NULL, $user, $passwd, $email, $skype, $age, 1"; mysqli_query($registersql); header("Location: dashboard.php"); } Takk for all hjelp :-) Lenke til kommentar
Darkshade Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Er lenge siden jeg har holdt på med php nå, men visst jeg husker riktig så må du gjøre slik: "SELECT * FROM " . $table . " WHERE user='" .$user. "'"; Gjelder på alle php variabler du bruker sammen med sql, visst jeg husker riktig da. Lenke til kommentar
Ernie Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 (endret) Du mangler vel iallfall en ) i slutten av INSERT-spørringen. Et par tips til koden: I stedet for 3 select kan du komme unna med en hvor du har user = '...' OR email = '...' OR skype = '...' (forutsatt at du ikke vil gi tilbake en unik melding pr. feil) Å bruke verdier direkte fra $_POST medfører at man er åpen for SQL-injection. Bruk enten «prepared statements» eller mysql_real_escape_string / mysqli_real_escape_string e.l. Sjekk at spørringene faktisk gir tilbake et fornuftig resultat. I dette tilfellet bør du sjekke at INSERT-spørringen faktisk fungerer og gir true tilbake. Hvis den ikke gjør det, slik som du nå opplever, kan du printe ut mysql_error / mysqli_error i stedet for å videresende. Dette kan gi en god indikasjon på hvorfor spørringen feiler. Endret 10. juli 2012 av Ernie Lenke til kommentar
NiccosSystem Skrevet 10. juli 2012 Forfatter Del Skrevet 10. juli 2012 Takk for hjelp, skal prøve løsningen straks :-) Grunnen til de 3 selectene var fordi jeg fant ingen dokumentasjon på OR, så jeg ville være på den sikre siden :-) Lenke til kommentar
Gjest Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Her har du alt om WHERE fra MySQL.com Lenke til kommentar
NiccosSystem Skrevet 10. juli 2012 Forfatter Del Skrevet 10. juli 2012 Tusen takk :-) Prøvde løsningene deres, men det fungerte ikke :-\ Login scriptet mitt fungerer, så det er nok ingenting galt med koblingen til SQL.. Jeg får vel bare prøve videre :-) Lenke til kommentar
Kamikaze-Kanin Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Noen ganger kan det være lurt å prøve å skrive ut SQL-spørringen du prøver å kjøre til skjermen, og så se om det er noe rart med den. Hva blir den egentlig hvis du prøver å skrive den ut til skjermen? Lenke til kommentar
NiccosSystem Skrevet 10. juli 2012 Forfatter Del Skrevet 10. juli 2012 Vet ikke helt hva du mener med å skrive ut til skjermen.. Når jeg limer koden inn og setter inn detaljene manuelt i phpMyAdmin funker SQL-spørringen helt fint.. Lenke til kommentar
Kamikaze-Kanin Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Nå tenker jeg bare på en helt enkel echo $registersql; Det hender at ting lurer seg inn i spørringene uten at du vil det eller merker det når du bruker PHP Lenke til kommentar
NiccosSystem Skrevet 10. juli 2012 Forfatter Del Skrevet 10. juli 2012 Oi! Nå funket alt med en gang! Putte NULL og 1 (den siste verdien) i quotes fikk alt til å fungere! Vel.. Alt untatt passordet, men det skal være enkelt å fikse :-) Lenke til kommentar
Kamikaze-Kanin Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Du burde alltid bruke ` rundt navn på felt eller tabeller, og alltid ' rundt variabler du skal sette inn Lenke til kommentar
NiccosSystem Skrevet 10. juli 2012 Forfatter Del Skrevet 10. juli 2012 Skulle visst det :-) Har vært for mye borti ints og sånt i java.. Så jeg trodde alt som hadde med tall å gjøre ikke skulle ha quotes :-) Lenke til kommentar
Kamikaze-Kanin Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Sakte men sikkert skjønner du det nok, PHP er litt som en gammel skrøpelig dame. Hører dårlig, skjønner lite og har en tendens til å bare ødelegge alt du trodde skulle fungere xD Lenke til kommentar
Ernie Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Du burde alltid bruke ` rundt navn på felt eller tabeller, og alltid ' rundt variabler du skal sette inn Bare en passende advarsel: ` rundt navn på felter er ikke standard SQL og er en uvane å lære seg. Det absolutt beste er å unngå spesialtegn (alt annet enn a-z) slik at denne typen herk ikke er nødvendig. Har man feltnavn bestånde av bare a-z er ` helt unødvendig å bruke rundt feltnavn og tabeller. Lenke til kommentar
Kamikaze-Kanin Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Du burde alltid bruke ` rundt navn på felt eller tabeller, og alltid ' rundt variabler du skal sette inn Bare en passende advarsel: ` rundt navn på felter er ikke standard SQL og er en uvane å lære seg. Det absolutt beste er å unngå spesialtegn (alt annet enn a-z) slik at denne typen herk ikke er nødvendig. Har man feltnavn bestånde av bare a-z er ` helt unødvendig å bruke rundt feltnavn og tabeller. Er det ikke standard? Ah, vel da har jeg lært noe nytt i dag også! Men det skal ikke akkurat så mye til når jeg hadde en idiot som lærer i dette for... 6 år siden Lenke til kommentar
Ernie Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Du burde alltid bruke ` rundt navn på felt eller tabeller, og alltid ' rundt variabler du skal sette inn Bare en passende advarsel: ` rundt navn på felter er ikke standard SQL og er en uvane å lære seg. Det absolutt beste er å unngå spesialtegn (alt annet enn a-z) slik at denne typen herk ikke er nødvendig. Har man feltnavn bestånde av bare a-z er ` helt unødvendig å bruke rundt feltnavn og tabeller. Er det ikke standard? Ah, vel da har jeg lært noe nytt i dag også! Men det skal ikke akkurat så mye til når jeg hadde en idiot som lærer i dette for... 6 år siden Nope, det er nok ikke standard (til informasjon: det gikk noen år før jeg fant ut det selv ). ANSI SQL tilsier vel at " skal brukes (tar forbehold mot dårlig hukommelse), men mitt inntrykk er at «alle» gjør sin egen greie på det der og driter i standarden. MySQL må iallfall settes i «ANSI mode» før den takler det. Lenke til kommentar
Kamikaze-Kanin Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Nope, det er nok ikke standard (til informasjon: det gikk noen år før jeg fant ut det selv ). ANSI SQL tilsier vel at " skal brukes (tar forbehold mot dårlig hukommelse), men mitt inntrykk er at «alle» gjør sin egen greie på det der og driter i standarden. MySQL må iallfall settes i «ANSI mode» før den takler det. Så jeg er ikke alene nei xD Lenke til kommentar
Thomas. Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Skulle visst det :-) Har vært for mye borti ints og sånt i java.. Så jeg trodde alt som hadde med tall å gjøre ikke skulle ha quotes :-) Tall trenger ikke ha quotes NULL trenger heller ikke. Lenke til kommentar
NiccosSystem Skrevet 11. juli 2012 Forfatter Del Skrevet 11. juli 2012 Skulle visst det :-) Har vært for mye borti ints og sånt i java.. Så jeg trodde alt som hadde med tall å gjøre ikke skulle ha quotes :-) Tall trenger ikke ha quotes NULL trenger heller ikke. Vel.. Det var å putte tall og NULL i quotes som funket, så jeg vet ikke jeg.. Lenke til kommentar
Sono Juventino Skrevet 11. juli 2012 Del Skrevet 11. juli 2012 Tall SKAL ikke i quotes. Det skal heller ikke null. Da ville jeg heller gjennomført andre debugprosedyrer. Fungerer det f. eks å kjøre spørringen i noe lignende som phpMyAdmin? Har du forsøkt å printe spørringen til skjerm for å sjekke at den ser riktig ut? Det er mye man kan teste. Lenke til kommentar
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å