![]() |
Kod körs inte, vad har jag missat?
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:
|
Är ju inte superhaj, men skall du ha det sista else:et?
|
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 |
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. |
Citat:
Eller de kanske inte har med varandra att göra? Aldrig hört om filter_input förut. |
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. |
Jag gör en kvalificerad gissning på att du försöker sätta in '' som User ID, primary key.
PHP-kod:
|
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. |
Citat:
|
Citat:
Jag menar, !#$%&'*+-/=?^_`{}|[email protected], är en korrekt epost. http://stackoverflow.com/questions/1...orks-correctly lite rolig läsning. |
Alla tider är GMT +2. Klockan är nu 20:22. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson