Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
PHP leere Werte in Datenbank nicht speichern
- Ersteller Benutzer7
- Erstellt am
das:
PHP:
<?
function referer2keyword($default=null, $referer = null)
{
if (is_null($referer))
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
// Dies sind die am häufigsten verwendeten Variablen von Suchmaschinen
$array = array('q','query','search','p');
$count = count($array);
for($i=0; $i<$count; $i++) {
$var = parse_url($referer);
parse_str($var['query'], $output);
if($output[$array[$i]] != null)
return $output[$array[$i]];
}
return $default; //Optionale Ausgabe eines Standard-Keywords
}
//normaler Einsatz
echo referer2keyword();
?>
<?
$str = referer2keyword();
$suchstr = strtolower("");
$str = str_replace(" ", " ", $str);
$str = str_replace(" ", " ", $str);
$str = str_replace(" ", "-", $str);
echo trim(preg_replace("/[-]{2,}/","-",preg_replace("/($suchstr|\.)/","",str_replace(" ","-",strtolower($str)))), "-");
?>
<?php
if (!empty(referer2keyword()) && !empty(trim(preg_replace("/[-]{2,}/","-",preg_replace("/($suchstr|.)/","",str_replace(" ","-",strtolower($str)))), "-"))) {
$eintrag = "INSERT INTO tabelle
(name, slug)
VALUES
('".referer2keyword()."', '".trim(preg_replace("/[-]{2,}/","-",preg_replace("/($suchstr|\.)/","",str_replace(" ","-",strtolower($str)))), "-")."')";
$eintragen = mysql_query($eintrag);
} else {
// Ausgabe leerer String
}
?>
Vesuche es mal so..
Geht natürlich auch anders, du kannst referer2keyword() sofort bzw. direkt prüfen. Dann einfach das mapping weg lassen und if anpassen. Der einzige Unterschied ist, du musst nicht für die weitere Bearbeitung ständig referer2keyword() schreiben sondern die kurze $var bzw. $deinstring.
PHP:
function referer2keyword(){
// code
}
$deinstring = referer2keyword();
if(empty($deinstring) && $deinstring!=="0") {
//Hier Code was gemacht werden soll wenn $deinstring leer ist.
}else{
//Hier Code der in die DB schreibt. Also erst deine ganzen Filter usw. und
//dann schreiben.
}
Geht natürlich auch anders, du kannst referer2keyword() sofort bzw. direkt prüfen. Dann einfach das mapping weg lassen und if anpassen. Der einzige Unterschied ist, du musst nicht für die weitere Bearbeitung ständig referer2keyword() schreiben sondern die kurze $var bzw. $deinstring.
Zuletzt bearbeitet:
Belee schrieb:Vesuche es mal so..
PHP:if(empty($deinstring) && $deinstring!=="0") { //Hier Code was gemacht werden soll wenn $deinstring leer ist. }else{ }
Wenn $deinstring leer ist, dann soll in DB nichts geschrieben werden.
Was denkst du, was soll nach }else{ am besten stehen?
PHP:
$deinstring = referer2keyword();
if(empty($deinstring) && $deinstring!=="0") {
// Hier ist $deinstring leer! du kannst jetzt z.B. einfach die Hauptseite laden.
//die(); bedeutet dass das Script genau hier endet, es wird nicht mehr
//fortgesetzt, es wird gekillt also wird auch nirgendwo etwas geschrieben.
die(header("location: http://www.deine_domain.de"));
//Wenn es eine Fehlermeldung von wegen, header kann nicht gesendet werden gibt,
//nimm das.
die ("<meta http-equiv=\"refresh\" content=\"0; URL=http://www.deine_domain.de\">");
}else{
//Hier kommt dann halt der Code der in die DB schreibt, wenn $deinstring nicht
//leer ist, exakt hier wird gesprungen wenn er Inhalt hat.
//was hier am besten stehen soll kann ich dir nicht sagen, das musst du
//ja selbst wissen.
//Du musst erst zur DB verbinden, und dann halt alles weitere, ich weiß halt nicht was
//bzw. wie die Ausgabe jetzt abgelegt werden soll bzw. was du da überhaupt vor hast.
//Der Code nach der Funktion ist sage ich jetzt mal, Unsinn hoch drei x 6 ;)
}
Am besten erzählst du uns mal ganz genau was du da vorhast, also was gemacht werden soll und wie, und was genau das Problem ist. Denn wenn ich mir den Code nach der Funktion anschaue, sehe ich dass den nicht die Person geschrieben hat die auch die Funktion geschrieben hat.
Ich habe über Weiterleitung nichts gesagt. Ich wollte nur, dass falls das leer ist, dann nichts in DB schreiben.
Jetzt jedes Mal wenn ich meine Seite aufrufe, wird sie auf diese Seite weitergeleitet: _http://de.de/sonstiges
Ich habe das natürlich aus der Code rausgenomen:
und das eingefügt:
Wie kriege ich jetzt die Weiterleitung weg?
Jetzt jedes Mal wenn ich meine Seite aufrufe, wird sie auf diese Seite weitergeleitet: _http://de.de/sonstiges
Ich habe das natürlich aus der Code rausgenomen:
PHP:
die(header("location: http://www.deine_domain.de"));
die ("<meta http-equiv=\"refresh\" content=\"0; URL=http://www.deine_domain.de\">");
und das eingefügt:
PHP:
if(empty($deinstring) && $deinstring!=="0") {
die ("kein-wert");
}else{
}
Wie kriege ich jetzt die Weiterleitung weg?
Na dann mache auch nix..dann brauchst du das else eigentlich auch garnicht...
Dazwischen packst du den Code rein damit in die DB geschrieben wird. Ist $deinstring aber leer passiert nix, der Block wird nicht ausgeführt und somit auch nicht in die DB geschrieben.
PHP:
if(!empty($deinstring) or $deinstring == "0") {
//in die db schreiben
}
Dazwischen packst du den Code rein damit in die DB geschrieben wird. Ist $deinstring aber leer passiert nix, der Block wird nicht ausgeführt und somit auch nicht in die DB geschrieben.
Zuletzt bearbeitet:
Es wird zu einer fremder Seite umgeleitet.
Ich wollte das Mal testet:
die(header("location: http://www.deine_domain.de"));
die ("<meta http-equiv=\"refresh\" content=\"0; URL=http://www.deine_domain.de\">");
Danach habe ich das komplett gelöscht. Ja sogar ganze Unterseite wo der Code drin war vom Server gelöscht. Auch header seite gelöscht. Beim Hoster im AdminPanel habe da keine Weiterleitung gefunden.
Ich verstehe überhaupt nicht, wo ist dieser Weiteileitung Code gespeichert wurde. Warum ist sie aktiv?
Ich wollte das Mal testet:
die(header("location: http://www.deine_domain.de"));
die ("<meta http-equiv=\"refresh\" content=\"0; URL=http://www.deine_domain.de\">");
Danach habe ich das komplett gelöscht. Ja sogar ganze Unterseite wo der Code drin war vom Server gelöscht. Auch header seite gelöscht. Beim Hoster im AdminPanel habe da keine Weiterleitung gefunden.
Ich verstehe überhaupt nicht, wo ist dieser Weiteileitung Code gespeichert wurde. Warum ist sie aktiv?
Ähnliche Themen
- Antworten
- 7
- Aufrufe
- 791
- Antworten
- 4
- Aufrufe
- 1.177
- Antworten
- 4
- Aufrufe
- 949
- Antworten
- 2
- Aufrufe
- 1.335