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.
U moet via de FTP de script plaatsen op de hosting pakket van (mijnwebsite).nl en wij ondersteunen inderdaad php scripts.
Dus kort gezegd, u moet de script via FTP op uw hosting pakket zetten en dan via de PHPmyadmin de waardes goed zetten zoals u het wenst.
----
Volgens mij is mysql de database en phpmyadmin de software waardoor het beschikbaar is via internet. Naar mijn idee zou je een api moeten maken en uploaden naar phpmyadmin zodat het verbinding kan maken met de app.
Laat je niet op het verkeerde been zetten door het "php" in de naam phpMyAdmin: phpMyAdmin is een tool voor het beheren van MySQL-databases die is geschreven in PHP, maar je hebt phpMyAdmin niet nodig om zelf databases te benaderen met PHP. Alles wat phpMyAdmin kan dankzij PHP, kun je zelf ook bouwen in PHP. En meer.
Volgens mij is mysql de database en phpmyadmin de software waardoor het beschikbaar is via internet. Naar mijn idee zou je een api moeten maken en uploaden naar phpmyadmin zodat het verbinding kan maken met de app.
Ja, Mysql is de database.
Maar die is van zichzelf al verbonden met internet. Mogelijk, of eerder waarschijnlijk, geblokkeerd door een firewall, maar die database is een zelfstandig draaiende service.
Net als Apache en vsFTPd dat bijvoorbeeld zijn.
phpMyAdmin is een tool voor de ontwikkelaar om te kunnen kijken in de database: structuren (tabellen, views etc) aanmaken en data erin zetten of bewerken.
Maar phpMyadmin heb je niet nodig. Er zijn alternatieven. Webgebaseerd zoals phpmyadmin, zodat je die in de browser draait, maar het kan ook met HeidiSQL of als je daar toegang toe hebt, via de command line (via SSH).
PHP scripts zet je normaal op de server (in je hostingpakket) en dan wordt dat door Apache uitgevoerd (mbt de php executable).
Dus als je al wilt zeggen dat je je api.php ergens "op" zet dan zou dat Apache zijn.
vervolgens kan je in dat script, laten we het api.php noemen, iets als <?php mysqli_connect(); ?> doen om een verbinding met die database te maken.
En dan kun je query's afschieten op die database.
Het resultaat daarvan zou je in kunnen pakken in "xml" of "json" en dat naar de browser of Android app kunnen terugsturen.
Maar phpmyadmin is een overbodig stuk software in een productieproces.
Ik ben inderdaad nog niet echt thuis in de termen buiten het programmeren om.
Dit maakt het wel een stuk duidelijker, thxs :)
Zou ik dan ook nog iets moeten veranderen (behalve servername, username, password, databasename (zie *******)) in DataBaseConfig.php of DataBase.php? Login.php en Signup.php zijn al gemaakt.
De database is al ingericht.
<?php
class DataBaseConfig
{
public $servername;
public $username;
public $password;
public $databasename;
public function __construct()
{
$this->servername = '********';
$this->username = '*******';
$this->password = '*******';
$this->databasename = '*******';
}
}
?>
Deze functie zal nog steeds werken.
Maar ik heb 1 regel verwijderd. ($username) Die wordt nu niet escaped.
Daarom zou ik een van deze 2 werkwijzes voorstellen:
<?php $email_esc = $this->prepareData($email); ?>
En dan $email_esc in de query plaatsen.
Of
<?php
$this->sql =
"INSERT INTO " . $table . " (gender, age, eater_type, email, username, password)
VALUES ('" . $this->prepareData($gender) . "',
'" . $this->prepareData($age) . "',
'" . $this->prepareData($eater_type). "',
'" . $this->prepareData($email) . "',
'" . $this->prepareData($username) . "',
'" . $password . "')";
?>
Daarmee ben je er zeker van dat in de query alles "beveiligd" is
Verder is de hash van een ge-escaped password niet per se gelijk aan de hash van het echte password.
En de hash hoeft niet ge-escaped te worden...