Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
$id ist da und dann doch nicht [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
$id ist da und dann doch nicht


 
meskalin
06-06-2010, 21:11 
 
der code erklärt sich von selbst id wird per get übergeben und funzt auch aber dann is sie leer und dann doch wieder da :confused::confused:


<?
$id=$_GET['id'];
//....
?>
<form id="beispielform" method="get" action="edit.php">
<input type="hidden" name="id" id="id" value="<?php echo $id ?>">
<label for="name">Firma</label> <input type="text" id="firma" name="firma" value="<?php echo $row['firma'] ?>" /><br />
<label for="name">Plz</label> <input type="text" id="plz" name="plz" value="<?php echo $row['plz'] ?>"/><br />
<label for="name">Strasse</label> <input type="text" id="strasse" name="strasse" value="<?php echo $row['strasse'] ?>"/><br />
<label for="name">Nr</label> <input type="text" id="nr" name="nr" value="<?php echo $row['nr'] ?>"/><br />
<label for="name">Bannerfile</label> <input type="text" id="bannerfile" name="bannerfile" value="<?php echo $row['bannerfile'] ?>"/><br />
<label for="name">Oeffnungszeiten</label> <input type="text" id="oeffnungszeiten" name="oeffnungszeiten" value="<?php echo $row['oeffnungszeiten'] ?>"/><br />
<label for="name">eMail</label> <input type="text" id="email" name="email" value="<?php echo $row['email'] ?>"/><br />
<label for="name">Telefon</label> <input type="text" id="telefon" name="telefon" value="<?php echo $row['telefon'] ?>"/><br />
<label for="name">Werbetext</label> <input type="text" id="werbetext" name="werbetext" value="<?php echo $row['werbetext'] ?>"/><br />

<select id="Kategorie" name="Kategorie">
<?
$sql="SELECT id, bezeichnung FROM categorie";
echo "id".$id;
if ($result = mysqli_query($db,$sql)) {
$row2 = mysqli_fetch_assoc($result);
}
/*

*/
echo "id".$id;
?>
<option value="<?php echo $row['cid']?>"><?php echo $row['bezeichnung']?></option>
<option value="<?php echo $row2['id']?>"><?php echo $row2['bezeichnung']?></option>
</select>
<?php echo $id ?><?php echo $id ?><?php echo $id ?><?php echo $id ?><?php echo $id ?><?php echo $id ?><?php echo $id ?><?php echo $id ?>
// da funzt es noch
<br />
<input type="submit" id="submit" />
</form>
<p> </p>
<a href="edit.php?id="<?php echo $id ?>"&freischalten=true">Freischalten</a> // da wos wichtig ist natürlich nicht
<a href="edit.php?id="<? echo $id ?>"&laufzeit=true">Laufzeit verl&auml;ngern</a>
<a href="edit.php?id="<? echo $id ?>"&deaktivieren=true">Deaktivieren</a>
<a href="edit.php?id="<? echo $id ?>"&delete=true">L&ouml;schen</a>
<a href=""> </a>
<?php echo $id ?><?php echo $id ?><?php echo $id ?><?php echo $id ?>
// da wo ich es nicht mehr brauch funzt es selbstverständlich wieder

 
AmicaNoctis
06-06-2010, 21:22 
 
Hallo,

PHP: Beschreibung der php.ini-Direktiven des Sprachkerns - Manual (http://de3.php.net/manual/de/ini.core.php#ini.short-open-tag)

und das Trennzeichen für Parameter (&) musst du im HTML-Code escapen: &amp;

Gruß,

Amica

 
h3ll
06-06-2010, 21:23 
 
Dein HTML-Code ist kaputt. Angenommen $id hat den Wert 1337, dann gibst du folgenden HTML-Code aus:
<a href="edit.php?id="1337"&freischalten=true">Freischalten</a>
Aber das hättest du auch selber gesehen, würdest du den HTML-Code im Browser anschauen.

Außerdem ist, wie bereits erwähnt, das &-Zeichen alleine nicht erlaubt, auch wenn es die Browser im Normalfall akzeptieren.

 
unset
06-06-2010, 21:23 
 
Und du bist dir sicher, dass der Inhalt nicht im quelltext auftaucht? Die Links sind nämlich falsch ausgezeichnet …

 
meskalin
06-06-2010, 21:30 
 
<a href="edit.php?id=<? echo $id ?>&amp;freischalten=true">Freischalten</a>
<a href="edit.php?id=<? echo $id ?>&amp;laufzeit=true">Laufzeit verl&auml;ngern</a>
<a href="edit.php?id=<? echo $id ?>&amp;deaktivieren=true">Deaktivieren</a>
<a href="edit.php?id=<? echo $id ?>&amp;delete=true">L&ouml;schen</a>

jetzt funzt es, thx

 
h3ll
06-06-2010, 21:40 
 
Dein Code ist übrigens anfällig für XSS-Attacken (http://de.wikipedia.org/wiki/Cross-Site_Scripting). Wenn du $id auf Integer castest, umgehst du das Problem.

 
meskalin
06-06-2010, 22:36 
 
thx, hab ein

if (!is_numeric($id)) {
die ("id keine nr");
}

drin, hab nicht den ganzen code hier geposted.


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:56 Uhr.