Ich habe gehört, mann soll SQL-Abfragen NIEMALS über Text einsetzen machen -> SQL Injection und sonstige Fehler möglich!
Welche Alternativen gibt es?
Ich habe gehört, mann soll SQL-Abfragen NIEMALS über Text einsetzen machen -> SQL Injection und sonstige Fehler möglich!
Welche Alternativen gibt es?
Was kann ich machen, damit keine leere Werte in Datenbank gespeichert werden?
<?php
if (!empty(".text().") && !empty(".trim(preg_replace("/[-]{2,}/","-",preg_replace("/($suchstr|\.)/","",str_replace(" ","-",strtolower($str)))), "-").")) {
$eintrag = "INSERT INTO Tabellenname
(spalte1, spalte2)
VALUES
('".text()."', '".trim(preg_replace("/[-]{2,}/","-",preg_replace("/($suchstr|\.)/","",str_replace(" ","-",strtolower($str)))), "-")."')";
$eintragen = mysql_query($eintrag);
} else {
// Ausgabe leerer String
}
?>
Alles anzeigen
Fehlermeldung:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting T_STRING or T_VARIABLE or '$'
Warum kommt Fehler?
<?php
$verbindung = mysql_connect ("localhost",
"XXXXX", "XXXXX")
or die ("keine Verbindung möglich.
Benutzername oder Passwort sind falsch");
mysql_select_db("XXXXX")
or die ("Die Datenbank existiert nicht.");
$abfrage = "SELECT name FROM stt";
$ergebnis = mysql_query($abfrage);
setlocale(LC_ALL, 'de_DE.UTF8');
function toAscii($str) {
$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
$clean = preg_replace("/[^a-zA-Z0-9\/_| -]/", '', $clean);
$clean = strtolower(trim($clean, '-'));
$clean = preg_replace("/[\/_| -]+/", '-', $clean);
return $clean;
}
$eintrag = "INSERT INTO stt
(links)
VALUES
('Wort1')";
$eintragen = mysql_query($eintrag);
if($eintragen == true)
{
echo "Eintrag war erfolgreich";
}
else
{
echo "Fehler beim Speichern";
}
$aendern = "UPDATE stt Set links = 'mit diesem Wert überschreiben'";
$update = mysql_query($aendern);
?>
Alles anzeigen
Wie kann ich preg_replacerichtig in den Code einbinden?
Meine Tabelle "stt" hat 3 Spalten.
1 Spalte: id
2 Spalte: name
3 Spalte: links
In der Spalte "name" liegen Worte. Es werden später neue Worte hinzugefügt. Spalte "links" ist leer.
Ich will die Worte aus der Spalte "name" ins Links umschreiben und in die Spalte "links" einfügen.
Den Script soll im Hintergrund voll automatisch arbeiten.
Ich habe an folgenden Ablauf gedacht:
1. DB Verbindung aufbauen
2. SELECT aufbauen
3. preg_replace nutzen (_http://http://cubiq.org/the-perfect-php-clean-url-generator)
4. INSERT aufbauen
5. UPDATE
Ist der Ablauf richtig?
Super, danke dir.
Dein Code funktioniert. Aber den Code gibt ersten Zeichen und nicht die Worte des Titles aus. Es ist möglich statt Zeichen Worte zu zählen?
[quote='goldeneye','https://www.forum-hilfe.de/forum/thread/?…9780#post389780']
echo "<h2>Links</h2>";
foreach($result->SearchResponse->Web->Results as $value) {
printf('<a href="%s">%s</a><br />',$value->Url,substr($value->Title, 0, 10);
}
Das funktioniert nicht, es gibt jetzt nur eine leere Seite.
Hast du eine Idee?
Es ist möglich Title auf einige Worte abkurzen?
Vollständige Code ist hier: _http://http://blog.calevans.com/2010/06/01/bin…rapper-for-php/
Lösung schon gefunden. Danke.
Ich habe im Internet diesen Code gefunden: _http://http://blog.calevans.com/2010/06/01/bin…rapper-for-php/
<html> <head> <title> Cal's Bing Search QuickTest</title> <body><?PHPfunction __autoload($className){ $fileName = strtr($className,'_',DIRECTORY_SEPARATOR).".php"; include $fileName; return;} $apiKey = ''; $o = new Msft_Bing_Search($apiKey);$o->setQuery('zend framework') ->setWebCount(10) ->setSite('calevans.com') ->setSource('Web') ->setSource('Image') ->setAdult('Off'); $raw = $o->search();echo "<h2>Raw</h2>";echo "<textarea cols='100' >".$o->getUrl()."</textarea><br />";if ($o->getFormat()=='json') { $result = json_decode($raw);} else { $result = htmlspecialchars($raw);} echo "<h2>Images</h2>";foreach($result->SearchResponse->Image->Results as $value) { printf('<a href="%s"><img src="%s" /></a>',$value->Url,$value->MediaUrl);}echo "<br />";echo "<h2>Links</h2>";foreach($result->SearchResponse->Web->Results as $value) { printf('<a href="%s">%s</a><br />',$value->Url,$value->Title);} ?> </body></html>
APIKey eingegeben, aber den Code gibt trotzdem keine Ergebnise. Es zeigt auch keine Fehlermeldung.
Was soll ich noch machen?