Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Smarty mit if contains

Frage Entwicklung PHP

Mitglied: xp-user

xp-user (Level 2) - Jetzt verbinden

22.01.2013 um 11:12 Uhr, 3205 Aufrufe, 9 Kommentare

Hallo zusammen,

Ich versuche mich mit einer if Abfrage alle .ru Adressen zu filtern.
Jedoch bin ich bis jetzt nur wenn ich die exakte Adresse eingebe Erfolgreich.

Das ganze soll mit Smarty realisiert werden.

{if $domain eq "domain.ru"}
<h4>Domain mit TLD .ru sind nicht möglich</h4>{/if}

Wie muss die Zeile lauten, damit {if $domain "*.ru"} funktionieren würde?

Freundliche Grüsse
xp-User
Mitglied: mayjalin
22.01.2013 um 11:50 Uhr
Hallo,

ich würde es wohl so versuchen:

1. Client IP ermitteln
2. Namensauflösung auf die IP machen
3. TLD auschneiden
4. IF Abfrage starten
5. Ergbnis via Variable an die index.php übergeben und dann ein SMARTY template entsprechende füllen.

Ist aber nur so eine Idee.
Bitte warten ..
Mitglied: xp-user
22.01.2013 um 11:54 Uhr
Danke für deine Antwort.

Allenfalls habe ich mich nicht klar genug ausgedrückt.

Ich benötige keine informationen bezüglich IP oder Nameserver. Ich muss in einer Datenbank die .ru Domains separat behandeln. Dazu wird mit einem Template File mittels if abfrage geschaut, ob eine Domain die Endung .ru hat, und dann eben der Text ausgegeben.
Bitte warten ..
Mitglied: xp-user
22.01.2013 um 12:17 Uhr
Jetzt habe ich zumindest eine Teillösung.

{if $domain|strstr:".ru"}

Das funktioniert schon mal. Wenn ich jetzt jedoch ".ru" OR ".yu" haben möchte, dann steh ich wieder auf dem Schlauch...
Bitte warten ..
Mitglied: mayjalin
22.01.2013, aktualisiert um 12:28 Uhr
Hallo,

mach es Dir doch nicht so schwer mit SMARTY, du hast doch PHP dahinter.

1. Client IP ermitteln
<?php
$_SERVER['REMOTE_ADDR'] z.b. 173.194.69.94 (kommt von www.google.ru)
?>

2. NS Lookup auf die IP
<?php
$REMOTE_ADDR_NAME = shell_exec("nslookup ".$_SERVER['REMOTE_ADDR']);

\\ $REMOTE_ADDR_NAME = www.google.ru


$TLD_mit_=unkt = substr($REMOTE_ADDR_NAME, strrpos($REMOTE_ADDR_NAME, '.'));
?>

3. TLD ausschneiden
<?php
\\ $REMOTE_ADDR_NAME = www.google.ru

$TLD_mit_Punkt = substr($REMOTE_ADDR_NAME, strrpos($REMOTE_ADDR_NAME, '.'));
?>

4. IF Abfrage starten
<?php
if ($TLD_mit_Punkt == '.ru') {
--> Datenbank RU
} else {
--> Datenbnak nicht RU
}
?>

5. Ergebnisse via Variable übergeben
<?php
foreach...
?>
Bitte warten ..
Mitglied: xp-user
22.01.2013 um 12:32 Uhr
Danke für die Antwort. Das ist sicherlich ein Ansatz, aber ich möchte das mit Smarty lösen.
Bitte warten ..
Mitglied: xp-user
22.01.2013 um 12:37 Uhr
Natürlich könnte ich

{if $domain|strstr:".ru"}
blablabla {/if}

{if $domain|strstr:".yu"}
blablabla {/if}

machen, aber dass müsste sicherlich auch in einer Zeile möglich sein.
Bitte warten ..
Mitglied: xp-user
22.01.2013 um 13:25 Uhr
Ok die Lösung:

{if stristr($domain, '.ru')
or stristr($domain, 'yu')}
<h4>Domain mit TLD .ru sind nicht möglich</h4>{/if}
Bitte warten ..
Mitglied: Guenni
24.01.2013 um 19:44 Uhr
Hi xp-user,

statt mit if und or versch. TLDs zu vergleichen, kannst du die nicht erlaubten TLDs in einem Array speichern.

01.
<?php 
02.
$ext_array = array('ru','yu','home'); 
03.
 
04.
$domain = 'domain.home'; 
05.
 
06.
if(in_array(substr($domain, strpos($domain, '.') + 1), $ext_array)){ 
07.
	echo 'Domains mit der TLD <b>"'.substr($domain,strpos($domain, '.') + 1).'" </b> sind nicht möglich'; 
08.
09.
?>
So kannst du die Liste deiner TLDs verwalten, ohne jedes mal die Abfrage zu ändern.

Gruß
Günni
Bitte warten ..
Mitglied: xp-user
25.01.2013 um 07:00 Uhr
Vielen Dank, das werd ich mir anschauen.
Bitte warten ..
Ähnliche Inhalte
CSS
DIV Container einheitliche Höhe (7)

Frage von Yanmai zum Thema CSS ...

Linux Tools
gelöst Bash Script contains Bilden und nutzen (19)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

Microsoft Office
Frage - Videos im PPTX2016-"Container" nicht mehr enthalten? (5)

Frage von Server-Nutzer zum Thema Microsoft Office ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Batch & Shell
Batch Programm verhalten bei shoutdown -p (17)

Frage von Michael-ITler zum Thema Batch & Shell ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...