If Schleife - Script

Philippee

Grünschnabel
Hallo liebes Forum,

kann man folgendes verwirklichen?
Wenn die Variable $my->username keinen Wert hat, soll folgender Code angezeigt werden:

Code:
<script language="JavaScript" type="text/javascript">
var message = "";
function clickIE() {
    if(document.all) {
     (message);
     return false;
 }
}

function clickNS(e) {
    if(document.layers || (document.getElementById && !document.all)) {
        if(e.which == 2 || e.which == 3) {
      (message); 
      return false;
  }
 }
}

if(document.layers) {
    document.captureEvents(Event.MOUSEDOWN);
    document.onmousedown = clickNS;
} else {
    document.onmouseup = clickNS;
    document.oncontextmenu = clickIE;
}

document.oncontextmenu = new Function("return false")
</script>

Wenn die Variable einen Wert hat, soll dieser Code einfach übersprungen werden!

Das ganze soll dazu dienen, dass nur registrierte User die rechte Maustaste zur Verfügung haben sollen und somit Bilder speichern können!

Für eure Hilfe wäre ich euch sehr dankbar!

Liebe Grüße,
Philipp
 
1. Was ist denn eine If Schleife?
2. Du solltest dir ein paar Tutorials zu PHP anschauen. Dann wüsstest du sofort, wie das geht. (z.B. http://tut.php-q.net/)
3.
PHP:
if(!isset($my->username) || empty($my->username) || $my->username == "")
{
    echo '<script language="JavaScript" type="text/javascript">
var message = "";
function clickIE() {
    if(document.all) {
     (message);
     return false;
 }
}

function clickNS(e) {
    if(document.layers || (document.getElementById && !document.all)) {
        if(e.which == 2 || e.which == 3) {
      (message); 
      return false;
  }
 }
}

if(document.layers) {
    document.captureEvents(Event.MOUSEDOWN);
    document.onmousedown = clickNS;
} else {
    document.onmouseup = clickNS;
    document.oncontextmenu = clickIE;
}

document.oncontextmenu = new Function("return false")
</script>';
}
 
Zuletzt bearbeitet:
Hallo,

abgesehen davon stellt das vermeintliche „Unterdrücken“ eines Kontextmenüs durch Abfangen von Mausklicks kein wirkliches Hindernis dar.

Kleines Detail am Rande:
PHP:
if(!isset($my->username) || empty($my->username) || $my->username == "")
Die letzte Bedingung (Prüfung auf leeren String) ist hier unnötig, da empty("") bereits true ergibt.

Grüße,
Matthias
 
Matthias Reitinger hat gesagt.:
Hallo,

abgesehen davon stellt das vermeintliche „Unterdrücken“ eines Kontextmenüs durch Abfangen von Mausklicks kein wirkliches Hindernis dar.

Kleines Detail am Rande:
PHP:
if(!isset($my->username) || empty($my->username) || $my->username == "")
Die letzte Bedingung (Prüfung auf leeren String) ist hier unnötig, da empty("") bereits true ergibt.

Grüße,
Matthias
Ich würde eher sagen, dass die empty-Prüfung weg kann, weil if(empty("0")) auch true zurückliefert.
 
Hallo,

Azi hat gesagt.:
Ich würde eher sagen, dass die empty-Prüfung weg kann, weil if(empty("0")) auch true zurückliefert.
Das würde allerdings das Verhalten des Skripts verändern. Ich wollte nur darauf hinweisen, dass die letzte Bedingung hier nie erreicht wird und somit weggelassen werden kann.

Wenn man die [phpf]empty[/phpf]-Abfrage weglässt, müsste man vielleicht noch explizit auf null prüfen.

Grüße,
Matthias
 
Hallo,

Ich dachte, es geht nur darum, zu prüfen, ob die Variable leer ist. Dann sollte empty() raus.

Azi
 
Hallo,

da stellt sich natürlich die viel diskutierte Frage, wann eine Variable als leer gilt. PHP liefert seine Interpretation mit der Funktion [phpf]empty[/phpf]. Wenn man aber annimmt, dass es sich bei der Variable um einen String handelt, ist natürlich der Vergleich mit dem leeren String die erste Wahl. Am besten wäre wohl Folgendes:
PHP:
if (!isset($my->username) || !is_string($my->username) || $my->username == '')
Damit fällt dann z.B. auch ein null raus.

Grüße,
Matthias
 
Ich würde sagen, dass doppelt besser hält und garnichts weg kann, im Gegenteil.

Konstruktiv wäre, wenn man sogar noch eine weitere "sinnlose" Prüfung implementiert.

Übrigens heißen die Dinger in der Fachsprache "Verzeigungen". Eine IF-Anweisung weist irgendwen (Interpreter?, Compiler?, etc.?) an, zu verzweigen.

Das Prinzip dahinter: Wenn, dann, sonst...
 
Zurück