2016-04-30 11 views
-1

Im Anzeigen versucht, etwas zu bekommen, wiederholte werden, wenn der Benutzer auf einer der beiden Seiten, aber esoder Betreiber nicht Inhalt

nicht anklingt
if(stripos($_SERVER['REQUEST_URI'], 'user.php') || ($_SERVER['REQUEST_URI'], 'message.php')) { 
echo 'hello'; 
} 

Antwort

0
if(stripos($_SERVER['REQUEST_URI'], 'user.php') || stripos($_SERVER['REQUEST_URI'], 'message.php')) { 
echo 'hello'; 
} 

Mitteilung über die stripos Funktion in der Klausel nach ||.

0

Umschließen Sie jedes bedingte Argument in einem eigenen Block mit Klammern. Jede der Bedingung hinzugefügte Funktion muss zwei Klammern enthalten.

IF (($a == $x) or ($b == $y)) {} 

if (
    (stripos($_SERVER['REQUEST_URI'], 'user.php')) || 
    (stripos($_SERVER['REQUEST_URI'], 'message.php')) 
) { 
    echo 'hello'; 
} 
+0

Sie Ihre Antwort erklären sollte und nicht nur einen Code-Block geben. – Machavity

1

Zu allererst $_SERVER['REQUEST_URI'] finden Sie die URI geben, die in Auftrag gegeben wurde, auf diese Seite zuzugreifen, nicht die tatsächliche Seitennamen. Verwenden Sie basename($_SERVER['PHP_SELF']), um den tatsächlichen Seitenname abzurufen.

Und zweitens ist der Zustand Ihrer if Klausel auch falsch. Von the manual of stripos() function:

:

Gibt die Position zurück, wo die Nadel relativ zum Beginn der Heuhaufenkette existiert (unabhängig vom Offset). Beachten Sie auch, dass die Zeichenfolgenpositionen bei 0 und nicht bei 1 beginnen.

Gibt FALSE zurück, wenn die Nadel nicht gefunden wurde.

So werden beide Bedingungen fehlschlagen, wenn die Nadel genau mit dem Heuhaufen übereinstimmt. Stattdessen überprüfen Sie den Zustand wie folgt aus:

if(stripos($haystack, $needle) !== false || stripos(stripos($haystack, $needle)) !== false) { 
    echo 'hello'; 
} 

So die Lösung ist wie folgt:

if(stripos(basename($_SERVER['PHP_SELF']), 'user.php') !== false || stripos(basename($_SERVER['PHP_SELF']), 'message.php') !== false) { 
    echo 'hello'; 
}