Ben bezig voor me site met multi talen script.
Loop alleen vast op 1 probleem.
Even korte uitleg:
Haal de taal op via de browser met deze code
if (empty($lang)) {
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
switch ($lang)
{
case "nl" :
include("lang/nl.php");
break;
case "en" :
include("lang/en.php");
break;
case "de" :
include("lang/de.php");
break;
default :
include("lang/en.php");
break;
}
En dan via $title $naam haal ik het op in het script.
Dat werkt allemaal goed.
Maar nu wil ik als iemand een uitnodiging naar een andere gebruiker stuurt hij dan de taal van de persoon pakt waar die uitnodiging heen gaat nu is het de taal van de persoon die hem verstuurd.
$mysqli->query("INSERT INTO `[messages]`(`time`,`IP`,`from`,`to`,`read`,`subject`,`message`) values(NOW(),'{$_SERVER['REMOTE_ADDR']}','afzender','{$man->login}','0','uitnodiging',' $verstuurd')");
nl.php
$verstuurd = Je uitnodiging is verstuurd.
en.php
$verstuurd = Your invitation has been sent.
Dus hij zou bij $man->login moeten checken welke taal de persoon is.
In de database wordt ook de taal omgeslagen waneer iemand inlogt.
$mysqli->query("UPDATE `[users]` SET `lang`='$lang' WHERE `login`='$data->login'");
Hopelijk weet iemand een oplossing ben al tijdje mee bezig maar kom er niet uit.
De reden dat je de eerste letter zag, was omdat je waarschijnlijk een string als een array aanriep.
<?php
$string = "De snelle bruine vos sprong over de luie hond!";
$eersteKarakter = $string[0];
echo $eersteKarakter; // geeft D van 'De ....'
?>
lang1 = $mysqli->query("SELECT * FROM `[users]` WHERE `login`='{$man->login}'");
$lang = $lang1->fetch_assoc();
$mysqli->query("INSERT INTO `[messages]`(`time`,`IP`,`from`,`to`,`read`,`subject`,`message`) values(NOW(),'{$_SERVER['REMOTE_ADDR']}','afzender','{$man->login}','0','invite','$lang[invitation_sent]')");
Heb nu dit maar hij geeft nu lege tekst? wat gaat er fout.
Want als ik dit stukje
lang1 = $mysqli->query("SELECT * FROM `[users]` WHERE `login`='{$man->login}'");
$lang = $lang1->fetch_assoc();
weg laat dan verstuurd die in de taal van de persoon van de afzender en niet van de ontvanger.
Misschien moet je voorbeelden en de praktijk even gescheiden houden. ;-)
Wat is je kennis met PHP tot nu toe? Ik merk dat je een hoop dingen niet echt begrijpt.
Het is meer een hobby van me PHP begin het wel steeds meer te leren.
Kom alleen hier niet uit hoe ik dit het beste kan opvragen.
De $ was verkeerd gegaan met kopieren.
$lang1 = $mysqli->query("SELECT * FROM `[users]` WHERE `id`='$id'");
$lang = $lang1->fetch_assoc();
$mysqli->query("INSERT INTO `[messages]`(`time`,`IP`,`from`,`to`,`read`,`subject`,`message`) values(NOW(),'{$_SERVER['REMOTE_ADDR']}','afzender','{$man->login}','0','invite','$lang[invitation_sent]')");
Heb nu als ID die wordt opgevraagd met GET bij het klikken op de link.
$id = $_GET['id'];
Ja, en dan zou ik als ik jouw was die $_GET['id'] zeker gaan escapen met mysqli->real_escape_string().
Anders kan iedereen je query manipuleren met SQL-injection, of jijzelf onwetend.
En om het af te maken kan het geen kwaad om variabelen buiten quotes te halen, en de query in een aparte variabele te zetten. Dan kan je die makkelijk echo'en als je deze wilt debuggen.