Hallo an alle!
Da ich mich nicht so gut mit php auskenne suche ich hier um Mithilfe.
Ich bin gerade dabei eine Internetseite für mein Team zu erstellen und dazu gibt es noch eine Landingpage auf die jeder Partner meines teams Leute einladen kann.
Im Moment habe ich bereits ein Registrierungs- und Loginsystem, die Landingpage und einen Partnerbereich. Was ich suche ist eine Möglichkeit die Links von jedem Partner zur Landingpage mit einer Partnernummer zu versehen, so dass jeder Partner nach dem Einloggen in seinem Partnerbereich nur die Leute zu sehen sind, die er mit seinem Link sich auf die Landingpage eingeladen hat und die dort ihre Daten hinterlassen haben.
Bzw. Wäre ich auch über Preisabsprachen bereit, wenn jemand bereit wäre das ganze Projekt zu realisieren.
Falls jemand der nur etwas auf die Sprünge helfen möchte...
Ich habe eine dynamische Tabelle in mycontact.php erzeugt. Sie holt die Daten aus der Datenbank und der Tabelle guest, in der die eingegebenen Daten der Besucher abgelegt werden.
Nun muss die Tabelle nur die Leute anzeigen, die von dem Partner auch über seinen persönlichen Link eingeladen wurden.
PS: Die Partnernummer ist in der functions.php als username angegeben.
Vielen Dank im Voraus
mycontact.php
funktions.php
Da ich mich nicht so gut mit php auskenne suche ich hier um Mithilfe.
Ich bin gerade dabei eine Internetseite für mein Team zu erstellen und dazu gibt es noch eine Landingpage auf die jeder Partner meines teams Leute einladen kann.
Im Moment habe ich bereits ein Registrierungs- und Loginsystem, die Landingpage und einen Partnerbereich. Was ich suche ist eine Möglichkeit die Links von jedem Partner zur Landingpage mit einer Partnernummer zu versehen, so dass jeder Partner nach dem Einloggen in seinem Partnerbereich nur die Leute zu sehen sind, die er mit seinem Link sich auf die Landingpage eingeladen hat und die dort ihre Daten hinterlassen haben.
Bzw. Wäre ich auch über Preisabsprachen bereit, wenn jemand bereit wäre das ganze Projekt zu realisieren.
Falls jemand der nur etwas auf die Sprünge helfen möchte...
Ich habe eine dynamische Tabelle in mycontact.php erzeugt. Sie holt die Daten aus der Datenbank und der Tabelle guest, in der die eingegebenen Daten der Besucher abgelegt werden.
Nun muss die Tabelle nur die Leute anzeigen, die von dem Partner auch über seinen persönlichen Link eingeladen wurden.
PS: Die Partnernummer ist in der functions.php als username angegeben.
Vielen Dank im Voraus
mycontact.php
PHP-Code:
<?php
include_once 'includes/db_connect.php';
include_once 'includes/functions.php';
include_once ('header.php');
sec_session_start();
?>
Hier kommen die Kontakte: <br>
<?php
echo "<table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%'>
<tr>
<td width='20%'>Vorname</td>
<td width='20%'>Nachname</td>
<td width='40%'>E-Mail</td>
<td width='20%'>Telefon</td>
</tr>
";
## Auslesen aus DB: Es werden z.B. 4 Werte ausgegeben:
$sql = mysql_query("SELECT * FROM 'guest' WHERE `id`<'1'");
$anzahl = mysql_num_rows($sql);
echo "$anzahl";
//und das erzeugt deine tabelle:
for($i=1;$i=<$anzahl;$i++){
$go = mysql_fetch_array($sql);
echo "<tr>
<td width='20%'>$go[vorname]</td>
<td width='20%'>$go[nachname]</td>
<td width='40%'>$go[email]</td>
<td width='20%'>$go[telefon]</td>
</tr>";
}
echo "</table>";
?>
PHP-Code:
<?php
include_once 'psl-config.php';
function sec_session_start() {
$session_name = 'sec_session_id'; // vergib einen Sessionnamen
$secure = SECURE;
// Damit wird verhindert, dass JavaScript auf die session id zugreifen kann.
$httponly = true;
// Zwingt die Sessions nur Cookies zu benutzen.
if (ini_set('session.use_only_cookies', 1) === FALSE) {
header("Location: ../error.php?err=Could not initiate a safe session (ini_set)");
exit();
}
// Holt Cookie-Parameter.
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"],
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly);
// Setzt den Session-Name zu oben angegebenem.
session_name($session_name);
session_start(); // Startet die PHP-Sitzung
session_regenerate_id(); // Erneuert die Session, löscht die alte.
}
function login($email, $password, $mysqli) {
// Das Benutzen vorbereiteter Statements verhindert SQL-Injektion.
if ($stmt = $mysqli->prepare("SELECT id, username, vorname, nachname, password, salt
FROM members
WHERE email = ?
LIMIT 1")){
$stmt->bind_param('s', $email); // Bind "$email" to parameter.
$stmt->execute(); // Führe die vorbereitete Anfrage aus.
$stmt->store_result();
// hole Variablen von result.
$stmt->bind_result($user_id, $username, $vorname, $nachname, $db_password, $salt);
$stmt->fetch();
// hash das Passwort mit dem eindeutigen salt.
$password = hash('sha512', $password . $salt);
if ($stmt->num_rows == 1) {
// Wenn es den Benutzer gibt, dann wird überprüft ob das Konto
// blockiert ist durch zu viele Login-Versuche
if (checkbrute($user_id, $mysqli) == true) {
// Konto ist blockiert
// Schicke E-Mail an Benutzer, dass Konto blockiert ist
return false;
} else {
// Überprüfe, ob das Passwort in der Datenbank mit dem vom
// Benutzer angegebenen übereinstimmt.
if ($db_password == $password) {
// Passwort ist korrekt!
// Hole den user-agent string des Benutzers.
$user_browser = $_SERVER['HTTP_USER_AGENT'];
// XSS-Schutz, denn eventuell wir der Wert gedruckt
$user_id = preg_replace("/[^0-9]+/", "", $user_id);
$_SESSION['user_id'] = $user_id;
// XSS-Schutz, denn eventuell wir der Wert gedruckt
$vorname = preg_replace("/[^a-zA-Z0-9_\-]+/",
"",
$vorname);
$_SESSION['vorname'] = $vorname;
$_SESSION['login_string'] = hash('sha512',
$password . $user_browser);
// Login erfolgreich.
return true;
} else {
// Passwort ist nicht korrekt
// Der Versuch wird in der Datenbank gespeichert
$now = time();
$mysqli->query("INSERT INTO login_attempts(user_id, time)
VALUES ('$user_id', '$now')");
return false;
}
}
} else {
//Es gibt keinen Benutzer.
return false;
}
}
}
function checkbrute($user_id, $mysqli) {
// Hole den aktuellen Zeitstempel
$now = time();
// Alle Login-Versuche der letzten zwei Stunden werden gezählt.
$valid_attempts = $now - (2 * 60 * 60);
if ($stmt = $mysqli->prepare("SELECT time
FROM login_attempts <code><pre>
WHERE user_id = ?
AND time > '$valid_attempts'")) {
$stmt->bind_param('i', $user_id);
// Führe die vorbereitet Abfrage aus.
$stmt->execute();
$stmt->store_result();
// Wenn es mehr als 5 fehlgeschlagene Versuche gab
if ($stmt->num_rows > 5) {
return true;
} else {
return false;
}
}
}
function login_check($mysqli) {
// Überprüfe, ob alle Session-Variablen gesetzt sind
if (isset($_SESSION['user_id'],
$_SESSION['vorname'],
$_SESSION['login_string'])) {
$user_id = $_SESSION['user_id'];
$login_string = $_SESSION['login_string'];
$vorname = $_SESSION['vorname'];
// Hole den user-agent string des Benutzers.
$user_browser = $_SERVER['HTTP_USER_AGENT'];
if ($stmt = $mysqli->prepare("SELECT password
FROM members
WHERE id = ? LIMIT 1")) {
// Bind "$user_id" zum Parameter.
$stmt->bind_param('i', $user_id);
$stmt->execute(); // Execute the prepared query.
$stmt->store_result();
if ($stmt->num_rows == 1) {
// Wenn es den Benutzer gibt, hole die Variablen von result.
$stmt->bind_result($password);
$stmt->fetch();
$login_check = hash('sha512', $password . $user_browser);
if ($login_check == $login_string) {
// Eingeloggt!!!!
return true;
} else {
// Nicht eingeloggt
return false;
}
} else {
// Nicht eingeloggt
return false;
}
} else {
// Nicht eingeloggt
return false;
}
} else {
// Nicht eingeloggt
return false;
}
}
function esc_url($url) {
if ('' == $url) {
return $url;
}
$url = preg_replace('|[^a-z0-9-~+_.?#=!&;,/:%@$\|*\'()\\x80-\\xff]|i', '', $url);
$strip = array('%0d', '%0a', '%0D', '%0A');
$url = (string) $url;
$count = 1;
while ($count) {
$url = str_replace($strip, '', $url, $count);
}
$url = str_replace(';//', '://', $url);
$url = htmlentities($url);
$url = str_replace('&', '&', $url);
$url = str_replace("'", ''', $url);
if ($url[0] !== '/') {
// Wir wollen nur relative Links von $_SERVER['PHP_SELF']
return '';
} else {
return $url;
}
}
Kommentar