Social Media site beginnen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin Zegikniet

Kevin Zegikniet

14/02/2014 16:53:56
Quote Anchor link
Hallo,

Ik ben sinds kort begonnen met het maken van een social media site, waar je dan oa hebt:
- een PM-gedeelte
- een fotogalerij (en GIFjes ook)
- een forum
- een Datingsite
- een video bekijk site

Misschien herkennen jullie de laatste drie al, aangezien ik die eerder apart heb gemaakt.
Ik wil nu de eerste twee ook ontwikkelen, en ze allemaal in 1 site zetten.

Nu heb ik daar allereerst een paar vragen over:
- hoe ga ik met url.com/?lang=en of ?lang=nl de site 'vertalen'? de GET['lang'] enzo snap ik wel, maar daarna...
- PM: hoe kan ik het gedeelte van het scherm vernieuwen als er een PM wordt gestuurd? Waarschijnlijk ook: welke taal heb ik daarvoor nodig? Ik wil zegmaar niet steeds op F5 hoeven drukken, maar als ik een PM krijg dat die ook meteen verschijnt in het actieve PMgesprek. Zegmaar.
- Fotogalerij: ik maak per user een map aan voor foto's, en hoe kan ik die laten zien zonder dat ik ze in een database zet? (of is database het gemakkelijkst om te doen? )

Oh, en nog een ding: hoe kan ik een klok achtig iets maken zoals Awesome Forum <-- hier aan de bovenkant staat?
Die klokken daar heb ik met een <iframe> erin gekregen, van een linkje van een andere site waar ik ze had gemaakt (kleurtjes enzo, niet heel code-achtig)

Danku!
Kevin
Gewijzigd op 14/02/2014 16:55:25 door Kevin Zegikniet
 
PHP hulp

PHP hulp

06/11/2024 00:43:43
 
Jony V

Jony V

16/02/2014 19:41:33
Quote Anchor link
Dat van ?lang= kan je doen met een if.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$lang = $_GET['lang'] // maar dan veiliger
if ($lang = 'en') {
    echo 'engels';
} else if ($lang = 'nl') {
    echo 'nederlands';
}

Of als je dynamische data (uit databank) gebruikt, maak je in de tabel een veld voor de nederlandse pagebody, en één voor de engelse, en daarna ook met een if. Als de taal engels is, gebruik het 'engelse pagebody' veld enz...

Voor de PM: misschien met AJAX? ben hier zelf niet bekend mee, maar via google kan je wel tuts opzoeken. Misschien deze site: http://www.w3schools.com/ajax/

Toevoeging op 16/02/2014 19:43:10:

Toevoeging: je zou de if ook kunnen vervangen door switch.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
switch ($lang) {
    case 'en':
        echo 'engels';
        break;

    case 'nl':
        echo 'nederlands';
        break;
}
Gewijzigd op 16/02/2014 19:43:41 door Jony V
 
Kevin Zegikniet

Kevin Zegikniet

17/02/2014 12:06:50
Quote Anchor link
En dan met die switch kan ik ook andere talen toevoegen, bedoel je?
Punt is: dat stuk snap ik nog wel. Maar als ik dan weet dat ik Engels (stel dat) moet laten zien, wat dan?

Ajax: zal eens kijken. Alvast bedankt!
Gewijzigd op 17/02/2014 12:07:27 door Kevin Zegikniet
 
- Ariën  -
Beheerder

- Ariën -

17/02/2014 12:40:51
Quote Anchor link
Tuurlijk kan je met die switch() meerdere talen toevoegen.

Ikzelf zou vanuit de switch een php-bestand inladen de naam van de taal en een 'lang_' prefix ervoor, voor de duidelijkheid. In dit bestand plaats je een array zoals:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$lang
['welcome'] = "Welkom";
$lang['welcome_content'] = "Welkom po onze site. Op deze site kan je bla bla...";
?>


Vervolgens kan je met $lang['welcome_content'] de gewenste taal oppikken, en kan je de keuze van gemaakte taal na een $_GET-aanroep in een cookie opslaan, of als iemand ingelogd is voor zijn account de taalkeuze in de database opslaan.
 
Erwin H

Erwin H

17/02/2014 13:08:42
Quote Anchor link
Dan heb je die hele switch niet nodig, alleen een check op of het juiste bestand bestaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$file
= 'path_to_file/string_'.$_GET['lang'].'.php';
include ( file_exists( $file ) )? $file: 'path_to_file/string_en.php';
?>

Scheelt je weer tig lijnen code.
 
Kevin Zegikniet

Kevin Zegikniet

17/02/2014 13:15:42
Quote Anchor link
Basically wat ik van Aar en Erwin begrijp:

Voor de juiste taal een bestand includen (evt met een switch), en in dat bestand staat een array met alle texten?

En Erwin, volgens mij klopt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
include ( file_exists( $file ) )? $file: 'path_to_file/string_en.php';

niet helemaal, als ik zo naar die haakjes kijk? Ik begrijp dat je kijkt *of* het bestand bestaat, en zoja laad het in, maar wat doe je dan met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
? $file: 'path_to_file/string_en.php';
?
het ziet eruit alsof je de 'file_exists($file)' gaat includen, oftewel een TRUE/FALSE include?
 
Ivo P

Ivo P

17/02/2014 14:29:29
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include ( file_exists( $file ) )? $file: 'path_to_file/string_en.php';
?>


is kort voor:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if( file_exists( $file ) ) {
include $file
} else {
include 'path_to_file/string_en.php';
}

?>


dus: als de taalfile string_jp.php niet gevonden wordt, dan toon je maar de engelse teksten.

Toevoeging op 17/02/2014 14:30:32:

en include is geen functie, maar een language construct.
Die heeft dus net als bijvoorbeeld "echo" geen ( ) nodig.
 
Kevin Zegikniet

Kevin Zegikniet

17/02/2014 19:38:52
Quote Anchor link
Ivo P op 17/02/2014 14:29:29:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include ( file_exists( $file ) )? $file: 'path_to_file/string_en.php';
?>


is kort voor:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if( file_exists( $file ) ) {
include $file
} else {
include 'path_to_file/string_en.php';
}

?>


dus: als de taalfile string_jp.php niet gevonden wordt, dan toon je maar de engelse teksten.

Toevoeging op 17/02/2014 14:30:32:

en include is geen functie, maar een language construct.
Die heeft dus net als bijvoorbeeld "echo" geen ( ) nodig.


Oooh.
Ik wist namelijk wel de
(if ? then : else )
constructie, maar jouw toevoeging wist ik niet. Bedankt!
 
Kevin Zegikniet

Kevin Zegikniet

09/07/2014 15:52:48
Quote Anchor link
Hallo jongens, even een bumpje. Ik ga namelijk al mijn sites een enorme makeover doen, om ze uiteindelijk op mijn eigen site te gooien.

Ik heb nu dit bedacht:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
if( !isset( $_GET['lang'])) { include_once('registerNL.php'); } else {
    switch( $_GET['lang'] ) {
        case "en" : include_once('registerEN.php'); break;
        case "nl" :
        default : include_once('registerNL.php'); break;
    }
}
Waarbij de standaardtaal dus Nederlands is.

Maar stel nu dat iemand probeert te gaan naar www.site.nl/registerNL.php, wat dan? ik kan niet een header in de eerste lijn zetten, want dan wordt die ook uitgevoerd in de eigenlijke pagina register.php waar ik ze include...

Iemand een tip?
Gewijzigd op 09/07/2014 16:16:43 door Kevin Zegikniet
 
Ivo P

Ivo P

09/07/2014 16:08:36
Quote Anchor link
daarom zet ik standaard dergelijke files buiten de document-root

alternatief kun je ook met .htaccess de map waarin je dat soort files (waarvan het niet de bedoeling is dat je ze direct aanroept) ontoegankelijk maken

.htaccess:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Order deny,allow
Deny from all
 
Kevin Zegikniet

Kevin Zegikniet

09/07/2014 16:17:33
Quote Anchor link
Ivo P op 09/07/2014 16:08:36:
daarom zet ik standaard dergelijke files buiten de document-root

alternatief kun je ook met .htaccess de map waarin je dat soort files (waarvan het niet de bedoeling is dat je ze direct aanroept) ontoegankelijk maken

.htaccess:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Order deny,allow
Deny from all


Dan zou ik bijv een mapje "lang" maken, met die .htacces in die map?
 
- Ariën  -
Beheerder

- Ariën -

09/07/2014 17:29:30
Quote Anchor link
Yes, let wel dat het .htaccess is, met dubbel 'c', en dubbel 's'
Maar een heel script dubbel houden in twee talen? Is dat niet een beetje overdreven?
Gewijzigd op 09/07/2014 17:30:44 door - Ariën -
 
Kevin Zegikniet

Kevin Zegikniet

09/07/2014 20:36:56
Quote Anchor link
- Aar - op 09/07/2014 17:29:30:
Yes, let wel dat het .htaccess is, met dubbel 'c', en dubbel 's'
Maar een heel script dubbel houden in twee talen? Is dat niet een beetje overdreven?

Klopt, heb het getest en krijg keurig een 403 error. Misschien ga ik daar nog eens een paginaatje voor maken, maar dat zien we later wel.

Script dubbel houden, hoe bedoel je precies?
Om te laten zien wat ik nu gedaan heb voor een pagina, zie onderstaande code:

Also, ik krijg bij 'Geboortedatum' in de database nu 0000-00-00 als datum, niet de datum die ik invoer. Hoe kan ik hier iets werkends van maken? Note: het is een date-veld. oh, en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
new Date($_POST['jaar'], $_POST['maand'], $_POST['dag'], 0, 0, 0)
wil niet werken... Ik heb het vroeger wel werkend gehad, op één of andere manier.

Script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php
include_once('config.php');

if( !isset( $_GET['lang'])) { include_once('lang/registerNL.php'); } else {
    switch( $_GET['lang'] ) {
        case
"en" : include_once('lang/registerEN.php'); break;
        case
"nl" :
        default :
include_once('lang/registerNL.php'); break;
    }
}


IF( isset($_POST['controle']) AND $_POST['controle']=="TRUE") {

$con = mysql_connect($SQLhost, $SQLuser, $SQLpass) or die('Could not connect: ' . mysql_error());
mysql_select_db($SQLdb, $con) or die('Could not find database: ' . mysql_error()) ;

$taken = mysql_query("SELECT id FROM user WHERE Username = '".$_POST['username']."' ");

$leeftijd = calcAge($_POST['dag'], $_POST['maand'], $_POST['jaar']);

if (
   (
empty($_POST['username']))
OR (empty($_POST['password1']))
OR (empty($_POST['password2']))
OR (($_POST['password1']) != ($_POST['password2']))
OR (empty($_POST['emailadres']))
OR (($_POST['dag'] == "1") AND ($_POST['maand'] == "1") AND ($_POST['jaar'] == date("Y") ) )
OR ( $leeftijd < "18")
OR ( mysql_num_rows($taken) > 0)
)
    {
$error_head=("<b>!!  ERROR  !!</b>");
    $error="1";}

IF( isset($error) AND $error==1) {
    IF (empty($_POST['username']))
        {
$error_user = $error_user_empty; }
    IF (mysql_num_rows($taken) > 0)
        {
$error_user = $error_user_taken; }
    IF (($_POST['password1']) != ($_POST['password2']))
        {
$error_pass1 = $error_pass_diff; }
    IF ((empty($_POST['password1'])) OR (empty($_POST['password2'])))
        {
$error_pass2 = $error_pass_empty; }
    IF ((empty($_POST['password1'])) AND (empty($_POST['password2'])))
        {
$error_pass1 = $error_pass2 = $error_pass_empty_both; }
    IF (empty($_POST['emailadres']))
        {
$error_email = $error_email_empty; }
    IF (($_POST['dag'] == "1") AND ($_POST['maand'] == "1") AND ($_POST['jaar'] == date("Y")))
        {
$error_leeftijd1= $error_leeftijd_empty; }
    IF (($leeftijd < 18 ) AND ($leeftijd >= 0) AND (!isset($error_leeftijd1)))
        {
$error_leeftijd2 = $error_leeftijd_tejong; }        
}


else {
session_start();
$_POST['md5_password']=md5($_POST['password2']);
$_SESSION['username']=$_POST['username'];
$_SESSION['emailadres']=$_POST['emailadres'];
$_SESSION['dag']=$_POST['dag'];
$_SESSION['maand']=$_POST['maand'];
$_SESSION['jaar']=$_POST['jaar'];
$salt = "salt";

$sql_use="INSERT INTO user (Username, Password, salt, Email, Registered, Birthday, background, Profielbericht)
    VALUES('"
.mysql_real_escape_string($_POST['username'])."', '".$_POST['md5_password'] . $salt . "',
        '"
.$salt."', '".mysql_real_escape_string($_POST['emailadres'])."', NOW(),
        "
. $_POST['jaar'] . "-" . $_POST['maand'] . "-" . $_POST['dag'] . ", '00BFFF',
        'Has not yet entered a personal message...' )"
;

if (!mysql_query($sql_use))
    {
die('Error: ' . mysql_error($con));}

if (!( mkdir('profiles/' . $_POST['username'] . '/') ) )
    {
die ('Error making directory.'); }
    
header("location: registered.php");

mysql_close($con); }
}

?>


<html>
<head>
<title><?php echo $lang["registration"]; ?> - <?php echo $sitename; ?> </title>
<link rel="icon" type="image/ico" href="/dating/favicon.ico"> </link>
</head>
<body bgcolor="00BFFF">
<center><a href="<?php echo $homepage; ?>"><img border="0" src="profiles/logo.png" alt="<?php echo $sitename; ?> logo" width="435" height="264"></a></center> <br />
<form action="" method="post">
<center> <big><big><?php echo $lang["register"]; ?></big></big> </center><br /><hr>
<?php if(isset($error_head)){echo $error_head;} ?><br /></font>
<table>
<!-- Normale Gegevens -->
<tr><td width="200"><?php echo $lang["username"]; ?></td>
    <td width="100"><input type="text" name="username" value="<?php if(isset($_POST['username'])){echo $_POST['username'];}?>" size="27"></td>
    <td width="10"></td> <td width="352"> <?php if( isset($error_user) ){echo $error_user;} ?> </td> </tr>
<tr><td><?php echo $lang["password"]; ?></td><td><input type="password" name="password1" value="<?php if(isset($_POST['password1'])){echo $_POST['password1']; } ?>" size="27" /> </td>
    <td></td> <td> <?php if( isset($error_pass1)){echo $error_pass1;} ?> </td> </tr>
<tr><td><?php echo $lang["controle"]; ?></td><td><input type="password" name="password2" value="<?php if(isset($_POST['password2'])){echo $_POST['password2']; } ?>" size="27" /> </td>
    <td></td> <td> <?php if( isset($error_pass2)){echo $error_pass2;} ?> </td></tr>
<tr><td><?php echo $lang["email"]; ?> </td><td> <input type="email" name="emailadres" value="<?php if(isset($_POST['emailadres'])){echo $_POST['emailadres']; } ?>" size="27" / ><br /></td>
    <td></td> <td> <?php if( isset($error_email)){echo $error_email;} ?> </td></tr>
</table>

<table> <!-- Geboortedatum -->
    <tr><td width="200"><?php echo $lang["geboorte"]; ?></td><td width="198">
<?php

//selectbox van de dagen
echo '<select name="dag">';
for($d=1;$d<=31;$d++){
   if($d == $_POST["dag"]){$selected = 'selected="selected"';}else{$selected = '';}
   echo '<option value="'.$d.'" '.$selected.'>'.$d.'</option>'; }
echo '</select>';

//selectbox van de maanden
//gebruik $maanden[$m-1] omdat een array bij 0 begint

echo '<select name="maand">';
for($m=1;$m<=12;$m++){
   if($m == $_POST["maand"]){$selected = 'selected="selected"';}else{$selected = '';}
   echo '<option value="'.$m.'" '.$selected.'>'.$maanden[$m-1].'</option>'; }
echo '</select>';

//selectbox van de jaren
echo '<select name="jaar">';
for($j=date("Y");$j>=1940;$j--){
   if($j == $_POST["jaar"]){$selected = 'selected="selected"';}else{$selected = '';}
   echo '<option value="'.$j.'" '.$selected.'>'.$j.'</option>'; }
echo '</select>';
?>


<td width="10"></td> <td width="352">

<?php
if(isset($error_leeftijd1)){ echo $error_leeftijd1; }
if(isset($error_leeftijd2)){ echo $error_leeftijd2; }
?>
</td> </tr>

</table><table>
<tr><td width="200"></td><td width="350"> <?php echo $lang["leeftijd"]; ?> </td></tr>
</table>
<input type="hidden" name="controle" value="TRUE">
<input type="submit" value=<?php echo $lang["submit"]; ?> ></form>
<hr>
<form method="post" action="" >
<input type="submit" name="submit" value= <?php echo $lang["reset"]; ?> ></form>
</body>
</html>


Nederlands
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$error_user_empty
="Je hebt je <u>Gebruikersnaam</u> niet ingevuld!<br>";
$error_user_taken="Die <u>Gebruikersnaam</u> is al bezet!<br>";
$error_pass_diff="Je hebt niet twee keer <u>hetzelfde</u> wachtwoord ingevoerd!<br>";
$error_pass_empty="Je moet je wachtwoord <u>twee keer</u> invullen!<br>";
$error_pass_empty_both="Je moet <u>beide wachtwoorden</u> invullen!<br>";
$error_email_empty="Je hebt je <u>e-mail adres</u> niet ingevuld!<br>";
$error_leeftijd_empty="Je hebt je <u>Geboortedatum</u> niet ingevuld!<br>";
$error_leeftijd_tejong = "Je bent niet <u>oud genoeg</u> om te registreren!<br>";

$maanden = array("Januari", "Februari", "Maart", "April", "Mei", "Juni",
    "Juli", "Augustus", "September", "Oktober", "November", "December");

$lang = array();
$lang["registration"] = "Registreren";
$lang["register"] = "REGISTREER";
$lang["username"] = "Wat is je gebruikersnaam?";
$lang["password"] = "Wat is je wachtwoord?";
$lang["controle"] = "Wachtwoord voor controle:";
$lang["email"] = "Wat is je e-mail adres?";
$lang["geboorte"] = "Wat is je geboortedatum?";
$lang["leeftijd"]  = "BELANGRIJK! Je moet minstens 18 jaar zijn!";
$lang["submit"] = "Verstuur";
$lang["reset"] = "Reset";

?>


Engels
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$error_user_empty
= "You haven't filled in your <u>Username</u>!<br />";
$error_user_taken = "That <u>Username</u> is already taken!<br />";
$error_pass_diff ="You haven't entered <u>the same</u> Password twice!<br />";
$error_pass_empty = "You need to enter your Password <u>twice</u>!<br />";
$error_pass_empty_both = "You haven't entered <u>either Password</u>!<br />";
$error_email_empty = "You haven't entered your <u>E-mail address</u>!<br />";
$error_leeftijd_empty = "You haven't entered your <u>Date of Birth</u>!<br />";
$error_leeftijd_tejong = "You are not <u>Old enough</u> to register!<br />";

$maanden = array("January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December");

$lang = array();
$lang["registration"] = "Registration";
$lang["register"] = "REGISTER";
$lang["username"] = "What is your Userrname?";
$lang["password"] = "What is your Password?";
$lang["controle"] = "Password for controle:";
$lang["email"] = "What is your E-mail address?";
$lang["geboorte"] = "What is your Date of Birth?";
$lang["leeftijd"] = "IMPORTANT! You have to be at least 18 years old!";
$lang["submit"] = "Submit";
$lang["reset"] = "Reset";

?>
Gewijzigd op 09/07/2014 20:42:41 door Kevin Zegikniet
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.