Login script

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hallo

Weet iemand een PHP login script met vergeten paswoord functie (via e-mail) , voor beveiligen van webpagina.

Velden:

(naam , email adres en paswoord)

Heel wat te vinden op internet maar altijd wat...

Zo heb ik nu een waar als je een gmail account hebt (@gmail) registratie mail niet aan komt wel bijv met @home account


Opgelost

email account (afzender mail) moet hetzelfde domein hebben als website.
en hopenlijk gaat het voor de rest goed..

Voor een script houd ik me aanbevolen.
 
Laatst bewerkt:
is het opgelost? En zo ja... Wat was de oplossing?

Een goed password vergeten script stuurt de gebruiker op zijn verzoek een mail met een tijdelijk te gebruiken link. In die link kan de gebruiker een nieuw wachtwoord invoeren, en zodra deze aangepast is wordt de link gedeactiveerd.

Just a heads up:
NOOIT een wachtwoord via mail sturen.
En al sowieso NOOIT een wachtwoord open en bloot opslaan (en vervolgens terugmailen als reminder).

Als mails naar Gmail en/of Microsoft/Live/Outlook (365) niet aankomen, dan zul je moeten kijken de juiste SPF, DMARC en DKIM records in je DNS. Weet je niet hoe dit moet: Laat het dan aan je hostingbedrijf over. Beide partijen kijken echt streng naar deze instellingen.
 
Laatst bewerkt:
Bedankt voor de info , ik denk dat ik dan nu het juiste heb.
 
Kan je hem delen? Ben benieuwd.
Zomaar wat copy pasten is niet de beste aanpak, en mag best worden gereviewd. :)
 
Ziet er niet verkeerd uit....
Ik raad wel aan om deze constructies netjes te voorzien van single-quotes:
Code:
        $check_code = "SELECT * FROM usertable WHERE code = $otp_code";


naar:
Code:
        $check_code = "SELECT * FROM usertable WHERE code = '".$otp_code."'";
 
Ok Blij dat het goed bevonden is :thumb:


Verder staan er nog al wat meldingen in , die zou ik willen vertalen.

Iemand een idee hoe dat te doen , geld ook voor mijn website in meerdere talen.

Kan natuurlijk alle pagina's in meerdere talen maken maar wellicht zijn er ook nog handiger manieren
 
Laatst bewerkt:
Oplossing:
Taal bestanden (lang_nl.php, lang_en.php etc.) voorzien van een array $lang[]. Elke vertaling is een item, met een vaste key.

Kom je er zo verder uit?
 
Ja, je kan zeker een session gebruiken. Je kan dan via een script (bijv. language_switch.php?lang=de) aangeven dat je een sessie wilt aanmaken met de Duitse taal.
Die sessie gebruik je dan om de juiste vertaling op te halen via de include/require.

PHP:
<?php
session_start();
$_SESSION['language'] = $_GET['lang']
?>

De code moet je zelf nog uitbreiden met andere talen, en detectie of een taal bestaat.
 
Ik krijg het nog niet werkend uitvoer blijf Nederlands
(testje)

PHP:
<body>
<a href="test2.php?lang=nl">NL</a>
<a href="test2.php?lang=fr">FR</a>

<?php
// $_GET['lang']= 'nl';
// $_GET['lang']= 'fr';
 
session_start();
$_SESSION['language'] = $_GET['lang'];

if (isset($_GET["lang"]))
 { $_SESSION["lang"] = "nl";
 echo 'Nederlands';
}
elseif (isset($_GET["lang"]))
 { $_SESSION["lang"] = "fr";
 echo 'Frans';
}
else  echo 'Engels';
echo '<br>';
echo '<br>';
echo $_GET["lang"];
?>
</body>
 
Wat staat er in je session?

Onthoud wel dat session_start() nooit na uitvoer geplaatst mag worden. Verder is dit eigenlijk een nieuwe topic waard ;).
 
Ben me aan het afvragen wat de beste manier is ik denk met cookie.

Had een conditie gemaakt maar realiseer me te laat dat het op elke pagina moet werken/aanwezig zijn de vertaling.

In bestanden of in database enz.

Ben het wat aan het uitzoeken eerst.

Reactie of simpel voorbeeld welkom.
 
Misschien is het nog een beter idee om een voorkeuze te maken met $_SERVER['HTTP_ACCEPT_LANGUAGE'], en dat die met een cookie te overrulen is.

Je moet inderdaad rekening houden met vertalingen uit de database, en met losse teksten in je site. Die laatste kan je in een vertaalbestand zetten:

lang_nl.php
PHP:
<?php
$translations = [];
$translations['Welcome'] = "Welkom op onze website.";
$translations['LoggedIn'] = "Je bent ingelogd";
$translations['LoggedOut'] = "Je bent uitgelogd";
$translations['ProfileEdit'] = "Klik hier om je profiel te wijzigen";
?>

lang_en.php
PHP:
<?php
$translations = [];
$translations['Welcome'] = "Welcome to our site.";
$translations['LoggedIn'] = "You're logged in.";
$translations['LoggedOut'] = "You're logged out.";
$translations['ProfileEdit'] = "Click here to edit your profile";
?>

Teksten in de database, die kan je bij voorkeur in een vertaling-tabel zetten.
Bijvoorbeeld productomschrijvingen:

ID - KindID - Type - Content- Language

ID is PK en Auto Increment
KindID is het ID van het onderdeel wat je wilt vertalen (bijv. ProductID 42, FaqID 32 etc.)
Type is waar het ID bij hoort (Product, Faq etc..)
Content is de inhoud van de tekst
Language is de taal
 
Bedankt voor info.

Nou heb ik dit in testbestand gedaan

https://www.w3schools.com/php/php_cookies.asp

Tot zover duidelijk

Nou moet ik een select maken met bijv. 3 talen Nl. DE en EN via GET wordt de waarde dan veranderd en cookie overschreven naar ik aanneem?

Tot zover geen probleem al ben ik er nog mee bezig.

afhankelijk van wat ik kies krijg de Var een waarde bijv. Engels en kan ik taal bestand Engels includen.(of ophalen uit Db/table.

Met $_SERVER['HTTP_ACCEPT_LANGUAGE'], had ik ook al gedacht , dit zou dan het 1e cookie moeten plaatsen!? ,
indien gebruiker dat wil met de select een andere keuze.

Verder ben ik aan het zoeken hoe in andere pagina's de waarde van het cookie te plaatsen.

De select en $_SERVER['HTTP_ACCEPT_LANGUAGE'], zet ik alleen op de index pagina ....
 
Je moet de taal uit $_SERVER['HTTP_ACCEPT_LANGUAGE'] extraheren (even echo'en en uitpluizen) en die in een cookie plaatsen.
Via vlaggetjes op je site pas je de taal aan in de cookie, en daarna vernieuw je de hele pagina zodat de vertaling geladen wordt.
 
Ok was ff met GET aan het testen

PHP:
$cookie_name = "taal";
$cookie_value = $_GET['taal'];
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");

Code:
<a href="?taal=fr">Taal Frans</a>

PHP:
echo $_COOKIE= $_GET['taal']

Dit klein voorbeeldje werkt in elk geval , cookie ook in browser gecontroleerd


Nou deze
Code:
$_SERVER['HTTP_ACCEPT_LANGUAGE']
 
Laatst bewerkt:
nl,en;q=0.9,de;q=0.8,fr;q=0.7,it;q=0.6,nl-NL;q=0.5,en-US;q=0.4,es;q=0.3,fy;q=0.2,id;q=0.1,lb;q=0.1,sv;q=0.1,la;q=0.1,sk;q=0


Met substr wellicht handiger of had je wat anders in gedachten over uitvoer?


PHP:
 echo $browser_taal  = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
 
Heb je het PHP Kookboek ergens liggen? Daar staat dit beschreven. Zo niet, aanrader voor aanschaf! Ik ga ook zo even neuzen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan