Willkommen in der Webstatt Zum Webstatt Blog und Stories
hochitom am 26.04.08 13:30

hallo.

ich möchte gerne einen kategorietitel in einen permalink umwandeln. dazu habe ich schon einiges gemacht. jedoch, funktioniert die konvertierung noch nicht.

Auf was muss ich noch aufpassen?

<?php
$konvert = $_POST[branche];
function SEO_link($konvert)
{
$data = strtolower($konvert);
$searchsigns = array(' ', '?', '!', ':', 'ö', 'ä', 'ü', '&', '+', '-');
$replaces = array('-', '', '', '', 'oe', 'ae', 'ue', '', '', '');
$data = str_replace($searchsigns, $replaces, $data);
return $data;
$permalink = $data;
}
?>
<html><head>
<?php echo $permalink; ?>
<title>Neue Branche hinzuf&uuml;gen</title>
<link href="../styles.css" type="text/css" rel="stylesheet">
</head><body>
<?php
include('../connect.php');
//L&#65533;schen des Datensatzes
if($_GET[sent]==1 AND $_GET[id])
{
$sql = "DELETE ";
$sql.=" FROM branchen";
$sql.=" WHERE id=";
$sql.=$_GET[id];
@mysql_query($sql, $link);
}
if($_POST[sent])
{
{
$sql="INSERT INTO branchen (branche) values ('".$_POST[branche]."')";
if(!mysql_query($sql, $link))
{$fehler.="<br>Der Eintrag ist aufgrund eines Datenbank Fehlers gescheitert! Bitte versuchen Sie es sp&auml;ter noch einmal, oder Verst&auml;ndigen Sie den Admin!<br>";}
}
if($fehler){ echo "<h2><font color=\"red\">".$fehler."</font></h2>";}
else
{
echo "<h2><font color=\"blue\">Der Eintrag war erfolgreich</font></h2><p><a href=\"neue_firma.php\">Zur&uuml;ck</a></p>";
unset($_POST[branche]);
}
}//Ende $_POST[sent]
?>
<form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="sent" value="1">
<table width="440" border="0" cellspacing="2" cellpadding="2">
<tr>
<td colspan="2"><h2>Neue Branche hinzuf&uuml;gen!</h2></td>
</tr>
<tr>
<td valign="top"><p>branche:</p></td>
<td valign="top"><label>
<input name="branche" type="text" size="40" value="<? echo $_POST[branche] ; ?>" />
</label></td>
</tr>
<td colspan="2" valign="top"><div align="center">
<label>
<input type="submit" name="Submit" value=" Eintragen " />
</label>
<label>
<input type="reset" name="Submit2" value="Reset" />
</label>
</div></td>
</tr>
</table>
<br />
</form>
<p>
<?php
//Ausgeben der Liste
$sql = "SELECT * FROM branchen ORDER BY branche ASC";
$result=@mysql_query($sql, $link);
if(mysql_num_rows($result)>0)
{
for($i=0;$i<mysql_num_rows($result);$i++)
{
echo mysql_result($result,$i, 'branche');
echo ' - <a href="'.$PHP_SELF.'?sent=1&id=';
echo mysql_result($result,$i, 'id');
echo '">L&ouml;schen</a><br>';
}
}
else
{
echo "<p>Noch keine Kommentare vorhanden!</p>";
}
?>
</p>
<p><a href="neue_firma.php">Zur&uuml;ck</a></p>
</body></html>

netcup.de Warum gibt es hier Werbung?
Snake am 26.04.08 16:35

Hallo,

Leider hab ich nicht ganz verstanden, was du willst, aber hier ein paar allgemeine Tipps:

$konvert = $_POST[branche];
vermutlich willst du auf den index "branche" zugriefen. So ist das aber nicht richtig, php ist nur kullant genug, es dennoch durchgehen zu lassen. Richt wäre:
$konvert = $_POST['branche'];
----
return $data;
$permalink = $data;

die Zeile hinter "return" wird niemals ausgeführt

----
<?php echo $permalink; ?>
Die Variable $permalink gibts nicht, weil:
- Sie innerhalb einer Funktion definiert werden soll. Funktionen haben einen eigenen Namensraum, was heißt, dass Variablen die dort drin erstellt werden auch wirklich nur von dort lesbar sind!
- Die Zuweisung der Variable steht sowieso hinterm return...

Vermutlich sollte sie irgendwo definiert werden, sonst hätte man hier ne nette cross-site-scripting möglichkeit

----
if($_GET[sent]==1 AND $_GET[id])
Das selbe wie im 1. Tipp. Dieser Fehler wiederholt sich öfters...

----
if(!mysql_query($sql, $link))
{$fehler.="<br>Der Eintrag ist aufgrund eines Datenbank Fehlers gescheitert! Bitte versuchen Sie es sp&auml;ter noch einmal, oder Verst&auml;ndigen Sie den Admin!<br>";}
}
if($fehler){ echo "<h2><font color=\"red\">".$fehler."</font></h2>";}

ACHTUNG! Du erlaubst damit cross-site-scripting!
Verwende NIEMALS nicht intialisierte Variablen!
Besser (nicht unbedingt schön, aber sicherer!) wäre:
$fehler='';
if(!mysql_query($sql, $link))
{$fehler.="<br>Der Eintrag ist aufgrund eines Datenbank Fehlers gescheitert! Bitte versuchen Sie es sp&auml;ter noch einmal, oder Verst&auml;ndigen Sie den Admin!<br>";}
}
if($fehler){ echo "<h2><font color=\"red\">".$fehler."</font></h2>";}

hochitom am 26.04.08 18:00

ok, ich habe diese sachen jetzt ausgebessert.

muss ich diese funktion jetzt aufrufen, oder wird diese automatisch ausgeführt?

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt