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 ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 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 Entwicklung und Softwaredesign

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.11.2003, 13:57:37
stefan.k stefan.k ist offline
Anfänger
 
Registriert seit: Nov 2003
Beiträge: 3
dynamisch erstellte Checkboxes auswerten

Folgendes Problem:

Ich habe ein Formular mit checkboxes, das dynamisch generiert wird.
Das Namensfeld jeder einzelnen Checkbox ist somit auch dynamisch, z.B. name="a$i"

Wenn das Formular ausgewertet wird, sollen Aktionen, abhängig davon ob das Checkboxfeld gesetzt war, ablaufen.
Wie z.B. email an alle Benutzer, deren Checkbox-Feld ausgefüllt war.

Wie kann ich genau auf die gesetzten Variablen zugreifen und diese weiterverarbeiten?
Mit Zitat antworten
  #2  
Alt 05.11.2003, 14:53:41
stefan.k stefan.k ist offline
Anfänger
 
Registriert seit: Nov 2003
Beiträge: 3
Problem gelöst

einfach nen Zähler erzeugen:
$test="a$i";
dann überprüfen:
if(isset($$test))
und weiterbearbeiten.

Für Anregungen wie man das sonst noch lösen könnte wäre ich trotzdem dankbar!

Ciao.
Mit Zitat antworten
  #3  
Alt 15.11.2003, 11:30:13
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Du könntest die Checkboxen folgendermaßen generieren:

echo "<input type="checkobox" name="auswahl[]" value="$i">";


Alle Checkboxen haben also den Namen auswahl. Durch den Zusatz [] wird ein Array erstellt, dessen Elemente im value der Checkboxen stehen. Wenn das Formular abgeschickt worden ist, durchläufst du $auswahl in einer Schleife und führst die entsprechenden Skripte aus:

foreach($auswahl as $elem){

$result=mysql_query("DELETE FROM tabelle WHERE ID='$elem'")

}
Mit Zitat antworten
  #4  
Alt 16.11.2003, 19:23:30
René_M René_M ist offline
Junior Member
 
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
hi xabbuh,

ist es so eventuell besser? Hier wird nur ein Query abgesetzt anstatt für jedes $elem einen.

PHP-Code:
<?php

foreach($auswahl as $elem) {

    
$query .= ' `id`='' . $elem . '' OR';
}

$sql    'DELETE FROM `user` WHERE' substr($query0strlen($query)-3);
$result mysql_query($sql);

?>
PS: Das $query .= ' `id`='' . $elem . '' OR'; sollte eigendlich so aussehen $query .= ' `id`='' . $elem . '' OR';
__________________
Gruß
René

lange Weile dann --> Webchess 2003

Geändert von René_M (16.11.2003 um 19:30:38 Uhr)
Mit Zitat antworten
  #5  
Alt 16.11.2003, 21:48:12
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Ok, stimmt auch wieder. Dann geht es aber so noch kürzer:

$query=implode("' OR ID='", $auswahl);

$result=mysql_query("DELETE FROM user WHERE ID='" . $query . "'");
Mit Zitat antworten
  #6  
Alt 17.11.2003, 20:05:34
René_M René_M ist offline
Junior Member
 
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
PHP-Code:
$result mysql_query("DELETE FROM user WHERE ID IN (" implode(','$auswahl) . ")"); 
__________________
Gruß
René

lange Weile dann --> Webchess 2003

Geändert von René_M (17.11.2003 um 20:07:54 Uhr)
Mit Zitat antworten
  #7  
Alt 18.11.2003, 23:41:45
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
ACHTUNG!! FEHLERALARM!

STOP
RIESEN FEHLER UND GEWALTIGES SICHERHEITSLOCH!

Mit eurem script lösche ich alle Datenbank einträge in 6 zeilen:

[start] -> Hoch -> Hoch [enter]
cmd [enter]
telnet <deine seite> [enter]
GET <DEIN SCRIPT> HTTP/1.1[enter]
[enter]
auswahl[]=*[enter]


Ich bin nicht sicher, ob Post variablen genau so übergeben werden, jedenfalls könnt ihr euch vorstellen, wie leicht es ist, hier ALLE datensätze zu löschen?
Und selbst wenn es nicht alle sind - ich könnte hier einen Datensatz angeben, den ich nicht löschen darf - und er würde gelöscht werden!

Dies funktioniert nur wie folgt:_

beispielsweise ihr habt eine tabelle, die wie folgt aussieht:

Code:
|Table news
+-----------
|NEWS_ID [PK] 
|writer_id 
|content
nun ist es zuerst mal wichtig, festzustellen, welche IDs überhaupt bearbeitet werden dürfen, und nur diese zu registrieren. Das funktioniert am besten, wenn ihr den NAMEN der Checkbox beeinflusst:

also: <input type="checkbox" name="chk_$id" value="set">

im script fragt ihr zuerst ab, welche beiräge der autor geschrieben hat (dazu müsst ihr wissen, wer der author ist - dieser muss sich irgendwie registriert haben - beispielsweise über eine laufende session)

Code:
$res=mysql_query("select NEWS_ID from news where writer_id='$currentwriter'");
dannach überprüft ihr, welche news von allen seinen erstellten angekreuzt sind:

Code:
$deletes=array();
while(list($resid)=mysql_fetch_row($res))
{
if(!empty($_POST["chk_".$resid]))
{
$deletes[]=$resid;
}
}
nun habt ihr in dem array $deleteres alle IDs der news einträge, die der angegebene Autor verfasst hat und löschen will (sprich, wo in der checkbox irgend ein wert mitgegeben wurde - sie also aktiviert war!)
Alles andere führt zu fehleranfälligkeit.
Mit Zitat antworten
  #8  
Alt 19.11.2003, 19:55:37
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Erklär mir das mal bitte nochmal langsam :-)
Mit Zitat antworten
Antwort


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 21:56:10 Uhr.


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


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