PHP (html) häkchen setzen

nischtak

Banned
Dabei seit
Nov. 2005
Beiträge
692
hallo zusammen da bin ich wieder

ich bin gerade dabei user zu editieren
sobal ein user siche editeiern will sieht er eine tabelle mit seinen angaben...
wenn er der admin ist ein häckchen drin (wenn er admin ist) das wird schon vorher wärend der if abfrage geprüft...
wenn er admin ist dann wird $isAdmin auf 1 gesetzt
wenn der user nicht admin ist dann wird $isAdmin auf 0 gesetzt

<td><label for="user_admin">Administrator:</label></td>
<td><input type="checkbox" name="user_admin" name="user_admin" value="' . $isAdmin . '" /></td>

1 und 0 werden auch richtig übergeben aber html peilt des net

gbts da irgendein trick zb nicht mit null und eins sonder anders irgend wie
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.241
<td><input type="checkbox" name="user_admin" name="user_admin" value="' . $isAdmin . '"'.($isAdmin == 1 ? ' CHECKED' : '').'></td>

oder

<td><input type="checkbox" name="user_admin" name="user_admin" value="' . $isAdmin . '"'.($isAdmin ? ' CHECKED' : '').'></td>
 
Zuletzt bearbeitet:

nischtak

Banned
Ersteller dieses Themas
Dabei seit
Nov. 2005
Beiträge
692
weil bei uns gerade der webserver spinnt kann ich es nicht testen
kann ich statt 0 und 1 auch true und fals setzen
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.241
kannste auch mit true machen bringt aber keinerlei Vorteile.
Ich würde bei 1 bleiben.


Wichtig ist das "checked". Da Du ja ein Häkchen bei ok willst.
Sonst macht HTML logischerwiese keine Häkchen.

Es ist so, wenn in der checkbox eine 0 steht, wird diese nach Absenden garnicht übergeben, sprich der Wert ist dann in php nicht vorhanden oder eben 0. also != 1 oder leer usw..
Nur wenn was anderes als 0 drinnensteht wird dieser wert 1:1 übergeben und Du kannst ihn direkt abfragen und weiterverarbeiten.
 

nischtak

Banned
Ersteller dieses Themas
Dabei seit
Nov. 2005
Beiträge
692
wie kann ich sicher stellen das sich der angemeldete user der das admin recht hat es sich selber nicht enziehen kann mit disable=true aber nur der angemeldete admin
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.241
das fragst du zusätzlich in php ab, also ob zb. der username == seinname oder aktueller benutzer == seine userid oder seine session-id ist und setzt dann das $isAdmin entsprechend den if-Ergebnis immer auf 1, egal was die checkbox ($user_admin) für einen wert geliefert hat.

disable=true o.ä. solltest Du nicht benutzen. Dieser HTMl-Befehl funzt meist nur im Ie und auch dort nicht einwandfrei.
Sowas musst Du immer auf php seite nach Absenden auswerten.
HTML selber ist zu unsicher.

achso übrigens Du hast den name="user_admin" in der <td> doppelt. ;)
 
Zuletzt bearbeitet:

nischtak

Banned
Ersteller dieses Themas
Dabei seit
Nov. 2005
Beiträge
692
ist es in dieser zeile möglich das ich der zeile sage das der angemeldete admin seine checkbox auf disable ist.... (damit sich der user nicht selbst das recht entziehen kann)
PHP:
$html= '<td><input type="checkbox" name="user_admin" name="user_admin" value="' . $isAdmin . '"'.($isAdmin == 1 ? ' CHECKED' : '').'></td>';
 
Zuletzt bearbeitet:

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.241
Wie ich schon sagte vergiss das disable. Das ist Dreck!

Wenn Du das schon über HTML lösen willst, dann gib diese checkbox-zeile garnicht erst aus, sondern an dieser Stelle zb. ein <td>&nbsp;</td> .
dann mache also eine entsprechende if abfrage drumherum.

Dennoch musst Du das auf jeden Fall in php nochmal überprüfen und abfangen!

und mache endlich das doppelte name="user_admin" raus. ;)

du kannst auch statt <td>&nbsp;</td>
eine hidden box dahinter setzen. weiss ja jetzt nicht dein restliches script, wie du das alles verarbeitest.
also zb.
<td>&nbsp;<input type=hidden name="user_admin" value=1></td>
 
Zuletzt bearbeitet:

nischtak

Banned
Ersteller dieses Themas
Dabei seit
Nov. 2005
Beiträge
692
Zitat von Relict:
Wie ich schon sagte vergiss das disable. Das ist Dreck!

Wenn Du das schon über HTML lösen willst, dann gib diese checkbox-zeile garnicht erst aus, sondern an dieser Stelle zb. ein <td>&nbsp;</td> .
dann mache also eine entsprechende if abfrage drumherum.

Dennoch musst Du das auf jeden Fall in php nochmal überprüfen und abfangen!

und mache endlich das doppelte name="user_admin" raus. ;)

du kannst auch statt <td>&nbsp;</td>
eine hidden box dahinter setzen. weiss ja jetzt nicht dein restliches script, wie du das alles verarbeitest.
also zb.
<td>&nbsp;<input type=hidden name="user_admin" value=1></td>
das doppelte ist raus.... das hab ich nur von oben kopiert ich mach php nicht lange das ist neu für mich überhaupt programmieren ist neu für mich

der angemeldete user bekommt hat die $id
aber ich setz mich mal an und versuch es so zu machen
muss bis freitag fertig werden
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.241
Du kannst auch der besseren Übersicht wegen statt &nbsp; ein grosses X ausgeben, damit der user gleich sieht, aha ich bin admin und soll es auch bleiben. ;)
 

nischtak

Banned
Ersteller dieses Themas
Dabei seit
Nov. 2005
Beiträge
692
so mit dem X hab ich das schon gemacht

okay jetzt letzet frage für heute
PHP:
<td><input type="checkbox" name="user_admin" '.($isAdmin == 1 ? ' checked ' : '').($onId == 1 ? ' checked disabled="true"' : '').'"   ></td>
wie kann ich die beiden checked vernunftigt zu einer cheked verbunden
Relict dank dir jetzt schon mal...
ach ja des onId überpruft onlineusername mit der onlineId und wenn beide gleich sind schaltet er die checkbox auf disable so verhindere ich das der aktuelle user sein admin entuziehen kann
der user ohne admin recht kommen garnicht erst rein in die auswahl des adminrechts
 
Zuletzt bearbeitet:

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.241
Hehe du bist hartnäckig mit deinem "disabled". Na mir solls egal sein. ;)
Das mit dem checked wie du es hast geht nicht mehr gross zu optimieren und brächte auch keinerlei Vorteile.
Dafür müsstest Du das komplette Script von grundauf anders machen.

Aber hier zum Zeitvertreib noch eine andere Variante.
Haste optisch ein checked weniger. *rofl*

PHP:
<td><input type="checkbox" name="user_admin" '.($isAdmin == 1 || $onId == 1 ? ' checked ' : '').($onId == 1 ? ' disabled="true"' : '').'" ></td>
</SPAN></SPAN>
 

nischtak

Banned
Ersteller dieses Themas
Dabei seit
Nov. 2005
Beiträge
692
relict danke .... vielen dank
ich hab meinen chef das gesagt wegen dem disable aber der will des so haben kein plan was bei dem im kopf gehet
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.241
Ist das ein Lernkurs oder was? Dann geht es Deinem Lehrer wahrscheinlich nur ums Prinzip, des Lernens und Verstehens wegen, nicht um wirkliche Sicherheit oder Praxiseinsatz o.ä.

Merke:
Alles was über HTML kommt und nicht in php nochmal nachgeprüft wird, ist unsicher, kann man auch leicht umgehen/ hacken. ;)
Bei dem disabled kommt noch extra dazu, dass dieses Attribut nicht jeder Browser sauber oder überhaupt interpretiert, sprich es wird dann ignoriert. Also eher ein optischer Gag, der nicht immer funktioniert. *lol*
 

nischtak

Banned
Ersteller dieses Themas
Dabei seit
Nov. 2005
Beiträge
692
Zitat von Relict:
Ist das ein Lernkurs oder was? Dann geht es Deinem Lehrer wahrscheinlich nur ums Prinzip, des Lernens und Verstehens wegen, nicht um wirkliche Sicherheit oder Praxiseinsatz o.ä.

Merke:
Alles was über HTML kommt und nicht in php nochmal nachgeprüft wird, ist unsicher, kann man auch leicht umgehen/ hacken. ;)
Bei dem disabled kommt noch extra dazu, dass dieses Attribut nicht jeder Browser sauber oder überhaupt interpretiert, sprich es wird dann ignoriert. Also eher ein optischer Gag, der nicht immer funktioniert. *lol*

ne lehrer sondern chefe... aber er weiss was er macht ist der richtig php-experte...

so sieht es jetzt bei mir fertig aus

PHP:
<td><input type="checkbox" name="user_admin" ' . ($isAdmin == 1 ? ' checked ' : '') . ($onId == 1 ? ' disabled="true"' : '') . ' ></td>
vielen dank relict.... abr ich denk wir hören uns noch:D
 
Top