Ik ben gestart met het ontwikkelen van apps in react native (voor Android en IOS). Voor mijn app wil ik de phpmyadmin gebruiken van mijn website via Hostnet. De opgeslagen gegevens wil ik analyseren omdat ik een data science en postgresql cursus heb gevolgd. Hierdoor is sqlite niet mogelijk.
Als thuis server kan ik via mijn laptop een koppeling maken via Xampp. Omdat ik dan dag en nacht een computer aan moet laten staan wil ik mijn webhosting gebruiken. Maar hoe kan ik mijn app koppelen aan de phpmyadmin van mijn webhosting? Ik kan geen bestand in htdocs zetten. Ik heb contact opgenomen met Hostnet maar die hebben hier helaas geen verstand van.
Een class gebruiken is leuk, maar het is niet bedoeld als verzameling van alle functies die je in je hele site gebruikt. Het is immers een blauwdruk van een object. Dus deel methods/functies onder in de juiste class die verantwoordelijkheid ervoor hoort te hebben.
Overigens is een functie als Str::bool($value) nogal onduidelijk. Het lijkt alsof je er een string in moet stoppen, maar dat zou dan altijd 'true' opleveren. Onduidelijk is of bool() iets genereert of teruggeeft. Afgaand op de benaming zou ik denken dat eerste, maar als je de functie bekijkt dan wordt er een letterlijke string 'true' of 'false' teruggegeven. Wat je dus vermoedelijk in feite doet (of wilt doen) is een boolean omzetten naar tekst.
Een veel duidelijkere functie omschrijving zou dan bijvoorbeeld zijn:
Helper::convertBoolToString($bool)
Nu zie je in één oogopslag wat er gebeurt. Je kunt ook een Bool(ean) class maken. Dan krijg je bijvoorbeeld dit:
Bool::convertToString($bool)
Dat is een stuk duidelijker dan Str::bool($value).
Heel kort (we dwalen af, en het was maar een voorbeeld):
1) Natuurlijk is het niet DoeMaarWat, maar m'n eigen "naam" (3 letters). "Helper" is te algemeen, dan krijg je weer botsingen met andere bibliotheken.
2) Ik heb alle helper functies weer gegroepeerd in meerdere classes, dus dit is de "String helper", vandaar de class naam "Str" ("String" is een reserved word).
3) De functie zet een bool $value om naar een string (zie de doc). We zaten al in de String helper, dus dan is bool wat mij betreft voldoende (ik heb een hekel aan typen + lange code; het is m'n eigen spul, dus ik doe wat ik wil).
Als dat voor jou een overtuigend argument is, moet je dat vooral doen. Ik gaf je alleen een tip hoe je iets duidelijker kunt omschrijven.
Vaak wordt in een functienaam een werkwoord opgenomen, zodat duidelijk is welke actie er wordt uitgevoerd.
Als laatste (en dan stop ik ermee), je kunt bijv. een functie name() hebben. Maar wat doet die? Voeg je een werkwoord toe, bijv. getName() of setName(), dan is direct duidelijk wat er gebeurt. Ook als je na 2 jaar de code terugleest.
Inmiddels ben ik al weer een heel eind met mijn inlogpagina. Ik heb uiteindelijk voor een eenvoudiger php script gekozen omdat het anders te moeilijk werd. Ik heb alleen 1 probleem waar ik al een paar dagen tegenaan loop en het niet opgelost kan krijgen.
Access to fetch at 'http//..........login.php' from origin 'http://localhost:*******' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
Volgens mij blokkeert de CORS policy de toegang omdat anders iedereen de database in kan.
Ik lees heel veel informatie over dit onderwerp maar weet niet wat voor mij van toepassing is.
- Kan/moet ik CORS policy uitschakelen?
- Moet ik nog een server maken met node.js?
- Moet ik een CORS plugin installeren?
- Of tocht wat anders....
- Als je beheerder bent van de doelhost, is het handig als je CORS toestaat. Maar wat is de precieze situatie dan?
- Waarom denk je dat nodig te hebben?
- Een CORS-plugin?? Voor wat?
Via react native maak ik een app. De inloggegeven sla ik op bij de database van mijn webhosting. Hiervoor heb ik een api in php geschreven en die draait nu ook in productie bij hostnet.
Als ik de app test (via google chrome) en de signup gegevens invul krijg ik deze foutmelding.
Access to fetch at 'http//..........login.php' from origin 'http://localhost:*******' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
Als lake weet ik niet zo goed wat ik nu moet doen.