SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.02.2016, 15:08:36
TimRear TimRear ist offline
Anfänger
 
Registriert seit: Feb 2016
Alter: 40
Beiträge: 2
Benutzerauthentifizierung

Hallo zusammen,

ich habe ein hoffentlich nicht zu aufwändiges Anliegen bezüglich eines PHP Scripts. Da ich nicht gerade die große Ahnung davon habe, frage ich mal in die Runde der Fachleute und bedanke mich bereits jetzt sehr für Eure/Deine Unterstützung!!!!

Es geht um eine Art Dyndns script - welches auch grundsätzlich funktioniert.
greift man beispielsweise auf "index.php?hostname=dyndns1.domain.tld" zu, wird die IP für den Hostname aktualisiert. Ich benötige jedoch mehrere Hostnames, welche mit unterschiedlichen Benutzernamen/Kennwörtern (oder einfacher ein Zugangstoken) aktualisiert werden können. Wie würdet Ihr das machen?

.htaccess ist für mich keine Lösung, da nicht jeder Benutzer jede Domain aktualisieren dürfen soll, sondern lediglich seine Eigene.

Hier das Script:
PHP-Code:
<?php

include 'mysql_config.php';

$dynDomains = array('dyndns1.domain.tld''dyndns2.domain.tld');

$newIP $_SERVER['REMOTE_ADDR'];
$DoUpdateFile "updatefile/doupdate";

if(!isset(
$_GET['hostname'])){
    die(
'Parameter "hostname" nicht gesetzt - Ihre WAN IP lautet:'.$newIP);
}
// Check if the requested domain is in our list of domains we want to keep updated.
if(! in_array($_GET['hostname'], $dynDomains)){
    die(
'Der angeforderte "hostname" wurde nicht für DynDNS freigegeben.');
}

// Check if IP is really an IP (should always be the case, but just to be safe...)
if($newIP == "" || !preg_match_all("/(\d{1,3}\.){3}\d{1,3}/"$newIP$matches )){
    die();    
}    

// We need to append a dot (.) to the end of the requested domain
$dyndns $_GET['hostname'] . '.';

$query "SELECT id, val FROM dns_recs WHERE host = '$dyndns' AND type = 'A';";

$result mysql_query($query);
$row mysql_fetch_assoc($result);

$rowId $row['id'];
$oldIP $row['val'];

if(
$oldIP == $newIP){
    echo 
"nochg\n".$newIP;
    die();
}

// Update IP
$updateQuery "UPDATE dns_recs SET val = '$newIP', displayVal = '$newIP' WHERE id = $rowId;";

$updated mysql_query($updateQuery ) or die (mysql_error());

$updateDomain $_GET['hostname'] . ";";
# Create do-update file to notice cron job to update the DNS entry
file_put_contents($DoUpdateFile$updateDomainFILE_APPEND);

echo 
"good\n".$newIP;

?>
Vielen Dank für Eure Denkansätze!
Mit Zitat antworten
  #2  
Alt 26.02.2016, 15:32:03
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Benutzerauthentifizierung

Hallo und willkommen hier im Forum.


Leider kann mit Deiner bisher gegebenen Erläuterungen Dein Problem/unsere Hilfe nicht klar erkannt werden.
Kannst Du mit wenigen verständlichen Worten umschreiben wo Dein Problem liegt und wie Du Dir unsere Hilfe vorstellst?

Was mit jedoch aufgefallen ist:
  • Übernimm nie ungeprüft Usereingaben ($_GET)
  • Verwende mysqli bzw. PDO - mysql ist veraltet
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 26.02.2016, 16:03:14
TimRear TimRear ist offline
Anfänger
 
Registriert seit: Feb 2016
Alter: 40
Beiträge: 2
AW: Benutzerauthentifizierung

Vielen Dank für Deine Antwort, vt1816!

Genau genommen geht es um folgende Abfrage:
PHP-Code:
if(! in_array($_GET['hostname'], $dynDomains)){
    die(
'Der angeforderte "hostname" wurde nicht für DynDNS freigegeben.'); 
Ich möchte, dass hier zusätzlich ein Passwort (oder Authentifizierungstoken) abgefragt wird, welches vorher definiert wird und zu der jeweiligen Domain passt. Wie kann man das realisieren?

Beispiel: domain1 darf nur mit passwort1; domain2 nur mit passwort2 synchronisieren.


Zitat:
Übernimm nie ungeprüft Usereingaben ($_GET)
Verwende mysqli bzw. PDO - mysql ist veraltet
Auch hier danke ich Dir schon einmal sehr für die Hinweise!
Ich werde mich am Wochenende mal in das Thema einlesen, bevor ich unnötig viele Fragen stelle.
Mit Zitat antworten
Antwort

Stichworte
authentifizieren


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:05:01 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt