Hallo,

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.

Hopelijk kan iemand mij verder helpen :)
Succes ermee. Als je wilt kan je ook dit artikel (en de rest) lezen:
http://phptuts.nl/view/45/3/

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.
Maar een class kan soms wel een hele handige manier zijn om "allerlei functies" te groeperen. Zelf heb ik bijvoorbeeld:
<?php

namespace DoeMaarWat;

/**
 *  String helpers.
 */
class Str{

  /**
   * Returns literally 'true' or 'false'.
   * @param bool $value
   * @return string
   */
  public static function bool($value){
    return $value ? 'true' : 'false';
  }

//enz

}

?>

Icm een autoloader kan ik nu gewoon overal in code roepen:
<?php

require('autoload.php');

$bool = \DoeMaarWat\Str::bool($value);

?>

Scheelt weer een hoop geklooi met include/require (once).
Noem het dan een Helper class :P
- Ariën - op 02/12/2021 13:01:58

Noem het dan een Helper class :P

Ja inderdaad :-)

Hij heeft gewoon z'n achternaam gebruikt :-D

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).
>> 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....

Heeft iemand ervaring met dit onderwerp?
- 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.
Heb je al op Google gekeken? Als ik de foutmelding, of een deel daarvan, invul in het zoekveld heb ik al een hoop resultaten.

[size=xsmall]Toevoeging op 16/12/2021 10:22:41:[/size]

Voor de rest heeft niks meer met phpMyAdmin te maken. Dus als je verder ergens op vastloopt raad ik een nieuw topic aan.

Dit topic sluit ik om de boel overzichtelijk te houden.

Reageren