opret.php hjælp

Tags:    php

Hej folk :)

har siddet og rodet med dette script. men er kørt fast i det. den laver nogle fejl som jeg ikke kan finde ud af :/

Dette skriver den efter jeg har kliket på opret uden og skrive noget i nogle af felterne.

Fejlen:
Fold kodeboks ind/udKode 


og brugeren bliver oprettet, selvom man ikke udfylder det som man skal.

Scriptet:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 13.09.2010 22:38 af Bruger #16109
8 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Ser ud som om at din
Fold kodeboks ind/udKode 

returner null, altså at den ikke selecter noget i databasen.

Prøv at tjekke op på om $brugernavn bliver sat, eller om der er en fejl i din sql ;).



vil give @mickevlm ret, brug de få typer der er i PHP så dit script bliver lettere at læse.
som f.eks.

Fold kodeboks ind/udPHP kode 


Derudover vil jeg også forslå validering så SQL injection bliver umuligt.

de fleste tilfælde kan blive taget med mysql_real_escape_string functionen i PHP.

så din request skrevet om ville blive:
Fold kodeboks ind/udPHP kode 


dette vil dog heller ikke løse dit problem. blot gøre det program (side) mere sikker.

For at løse dit problem vil jeg istedet forslå at sætte en "or die" på alle dine queries. det sikre at hvis du ikke får noget resultat (din query failer) så får du istedet en sql fejl.

jeg bruger følgende selv, til alle min queries
Fold kodeboks ind/udPHP kode 


vil tro det kunne hjælpe dig!




Hey.

Sjovt nok har jeg lige testet det hele af, uden af ændre i din kode. Og det VIRKER!

Må vi se din connect.php (self uden de rigtige info)

og hvordan har du oprettet din tabel?

oprettede en tabel som så sådan ud:
Fold kodeboks ind/udKode 


og brugte en connect som ser sådan ud:
Fold kodeboks ind/udKode 







Dit:
Fold kodeboks ind/udKode 


Skal se sådan her ud:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 18.09.2010 10:35 af Bruger #5620
if($gentag == "" || $gentag != $adgangskode)

bør være

if($gentag == "" || $gentag !== $adgangskode)

Det hjælper ikke dit problem, men det gør at man ikke bare kan skrive 0 som den gentagede kode samt stadig få rigtigt.


if(mysql_num_rows($q1) > "0"){

Jeg tror ikke det ordner problemet, da PHP alligevel forvander "0" til et nummer, men jeg kan ikke se nogen pointe i at bruge "" om 0, når du bruger det som et nummer.

Derudover vil jeg råde dig til at validere de forskellige variabler, så man ikke kan tilføje SQL injections.





Nu har jeg prøvet og rette det som i har sagt.

Men den laver stadig den der fejl

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /usr/home/whitehat/users/caspar/opret.php on line 42





Du mangler en {

Ville muligvis være mere synligt vis du havde indrykninger.



@Danie Fly

Jeg får stadig den der fejl
Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /usr/home/whitehat/users/caspar/opret.php on line 42

Selvom jeg prøver dit forslag på mysql databasen.

@Nørden
Hvor mangler den ?



t