FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Banned
|
Jag blir tokig. Detta visas inte som jag vill. Formuläret syns tydligt, men när jag trycker på knappen "Registrera" så visas ingenting. Jag har kört koden i en kodvaliderare, men inget syntaxfel upptäcks. Detta är en register.php-fil.
Vad har jag gjort fel? Kod PHP-kod:
|
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Flitig postare
|
Är ju inte superhaj, men skall du ha det sista else:et?
|
|||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Citat:
Försökte klistra in din kod i Notepad++ men allt är väldigt rörigt och "indenten" är helt otrolig :P Ändra i ditt program så den hoppar 3 mellanslag. I övrigt hade jag använt mig av dina input names som en array. Då kan du enklare kontrollera om POST är isset, samt sätta t.ex. NULL-värde på de som inte är det för att senare kunna visa felmeddelande. Exempel: Kod:
<?php $post_array = array("username","getemail","password","retypepassword"); $i = 0; foreach ($post_array as $list){ if(!isset($_POST[$post_array[$i]])){ $_POST[$post_array[$i]] = NULL; } else { $_POST[$post_array[$i]] = $_POST[$post_array[$i]]; } # end if $i++; } # end foreach $i = 0; foreach ($post_array as $list){ if($_POST[$post_array[$i]] == NULL){ echo $_POST[$post_array[$i]]." not set!"; } else { $_POST[$post_array[$i]] = $_POST[$post_array[$i]]; } # end if $i++; } ?> Senast redigerad av Kimppa den 2014-03-08 klockan 10:39 |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Flitig postare
|
Det här besvarar inte din fråga, men din kod är öppen för SQL & XSS attacker.
Du bör även använda filter_input för att hämta information från globala variabler. |
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Mycket flitig postare
|
Citat:
Eller de kanske inte har med varandra att göra? Aldrig hört om filter_input förut. |
|||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Flitig postare
|
Jag skulle inte säga att de funktionerna är alltför lika, även om man kan använda filter_input för att 'escapa' SQL. Jag använder filter_input i valideringsprocessen och i filtreringsprocessen.
Det finns flera olika valideringar & filtreringar tillgänliga. Exempelvis kan hela denna rad ersättas med filter_input. PHP-kod:
PHP-kod:
Om någon har ett annat användningsområde för filter_input & filter_var än det jag har skrivit, får ni gärna berätta det. |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Medlem
|
Jag gör en kvalificerad gissning på att du försöker sätta in '' som User ID, primary key.
PHP-kod:
![]() |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Medlem
|
Snälla gör er kod säkrare där ute med åtminstone basic escape av input som ovan redan sagt.
Sedan angående din kod så rekommenderar jag mindre spagetti genom att lägga felsvaret inom / efter en if() istället för i else och på slutet försöka spåra djupt tillbaka för att se vilken som ger vad för error. så t.ex: $error = [] (eller $error = array() om du använder gammal PHP version) if($bad) $error[] = "yada yada"; sen efter validering (en eller flera error variabler) så. if(count($error) > 0) { echo implode("<br />", $error) } Nått sådant simpelt liksom. Sen som Antilla ovan sa, du anger ett tomt värde i INSERT för primary key. Ta bort första '' helt. |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Supermoderator
|
Citat:
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Medlem
|
Citat:
Jag menar, !#$%&'*+-/=?^_`{}|[email protected], är en korrekt epost. http://stackoverflow.com/questions/1...orks-correctly lite rolig läsning. |
||
![]() |
![]() |
Svara |
|
|