array(1) { [0]=> array(2) { [0]=> string(7) "TWITTER" [1]=> string( "SELFHTML" } } https://hastebin.com/difupeluma.xml -> Warning: strpos(): needle is not a string or an integer in C:\xampp\htdocs\index.php on line 87 Warum? Was muss ich ändern?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Problem mit Arrays
Einklappen
Neue Werbung 2019
Einklappen
X
-
Zitat von PlutoHD Beitrag anzeigenWarum? Was muss ich ändern?"Software is like Sex, it's best if it's free." - Linus Torvalds
-
Schau mal nach was explode macht (http://ch1.php.net/manual/en/function.explode.php):
PHP-Code:$suchbegriffuppersplit[] = explode(" ", $suchbegriffupper);
Kommentar
-
PHP-Code:$suchbegriffuppersplit[] = explode(" ", $suchbegriffupper);
Zu dem solltest du den Code nicht auf fremden Seiten bereitstellen, sondern hier zu deinem Beitrag hinzufügen, ich habe den Code mal unten aufgeführt, für die anderen Teilnehmer.
Die hier tut auch schon weh
HTML-Code:<div id="inhalt"> <div class="zentrieren"> <div class="ueberschrift"> Suchmaschine<br><br> </div>
Es gibt auch die Elemente main, article, und header. Abst'nde statt mit BR lieber mit margin-bottom in CSS erstellen.
Ansonsten hast du noch ein wenig zu Lernen, zum Beispiel, dass man keine Datenbankyugriffe macht wenn man sich schon bei der Ausgabe von HTML befindet.
Dein Code
PHP-Code:<?php
include "include/header.php";
include "include/footer.php";
?>
<html>
<head>
<link rel="stylesheet" href="css/style.css">
<title>Suchmaschine</title>
<meta name="description" content="Eine einfache Suchmaschine">
<meta name="keywords" content="PlutoHD, Suchmaschine, Suche">
<meta name="author" content="PlutoHD">
<meta name="editor" content="Atom">
<meta charset="utf-8">
</head>
<body>
<?php
echo $header;
?>
<div id="inhalt">
<div class="zentrieren">
<div class="ueberschrift">
Suchmaschine<br><br>
</div>
<?php
if(isset($_POST['SuchanfrageButton'])) {
$suchbegriff = "%".$_POST["SuchanfrageText"]."%";
$suchbegriffupper = strtoupper($suchbegriff);
$suchbegriffuppersplit[] = explode(" ", $suchbegriffupper);
if($suchbegriff == "") {
echo 'Fehler! Bitte lasse kein Feld leer. <a href="index.php">zurück zur Startseite</a>';
} else {
$pdo = new PDO('mysql:host=HOST;dbname=DBNAME', 'ACCOUNTNAME', 'PASSWORT');
$statement = $pdo->prepare("SELECT * FROM Data"); //WHERE UPPER(TITLE) LIKE '%".$suchbegriffupper."%' OR LINK LIKE '%".$suchbegriffupper."%'");
$statement->execute();
while ($row = $statement->fetch()) {
$ergebnis[] = array('link' => $row["LINK"], 'title' => $row["TITLE"]);
}
if(!isset($ergebnis)) {
echo 'Keine Suchergebnisse <br><a href="index.php">zurück zur Startseite</a>';
} else {
?>
<!-- <table>
<thead>
<tr>
<th>Titel</th>
<th>Link</th>
</tr>
</thead>
<tbody>
<?php
//foreach ($ergebnis as $inhalt) {
?>
<tr>
<td>
<?php //echo $inhalt["title"]; ?>
</td>
<td>
<a href="<?php //echo $inhalt["link"]; ?>"><?php //echo $inhalt["link"]; ?></a>
</td>
</tr>
<?php
//}
?>
</tbody>
</table> -->
<hr>
<?php
foreach ($ergebnis as $inhalt) {
foreach ($suchbegriffuppersplit as $suchbegriffuppersplitinhalt) {
if (strpos($inhalt["title"], $suchbegriffuppersplitinhalt) !== false || strpos($inhalt["link"], $suchbegriffuppersplitinhalt) !== false) {
?>
<div class="linkTitel"><a class="blue" href="<?php echo $inhalt["link"]; ?>"><?php if (strlen($inhalt["title"]) >= 120) { $title = substr($inhalt["title"], 0, 120)."..."; } else { $title = $inhalt["title"]; } echo $title; ?></a></div>
<div class="linkBeschreibung"><?php echo $inhalt["link"]; ?></div><hr>
<?php
break;
}
}
}
?>
<br><a href="index.php">zurück zur Startseite</a>
<?php
}
}
} else {
?>
<form name="SuchanfrageForum" action="" method="post">
<input type="text" name="SuchanfrageText" placeholder="Deine Suchanfrage">
<button type="submit" name="SuchanfrageButton">Suchen</button>
</form>
<?php
}
?>
</div>
</div>
<?php
echo $footer;
?>
</body>
</html>
Kommentar
-
PHP sagt dir doch eh schon was falsch ist. Mach halt mal ein var_dump() auf $suchbegriffuppersplitinhalt und schau was es enthält.The string "()()" is not palindrom but the String "())(" is.
Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
PHP.de Wissenssammlung | Kein Support per PN
Kommentar
-
Zitat von protestix Beitrag anzeigenPHP-Code:$suchbegriffuppersplit[] = explode(" ", $suchbegriffupper);
Zu dem solltest du den Code nicht auf fremden Seiten bereitstellen, sondern hier zu deinem Beitrag hinzufügen, ich habe den Code mal unten aufgeführt, für die anderen Teilnehmer.
Die hier tut auch schon weh
HTML-Code:<div id="inhalt"> <div class="zentrieren"> <div class="ueberschrift"> Suchmaschine<br><br> </div>
Es gibt auch die Elemente main, article, und header. Abst'nde statt mit BR lieber mit margin-bottom in CSS erstellen.
Ansonsten hast du noch ein wenig zu Lernen, zum Beispiel, dass man keine Datenbankyugriffe macht wenn man sich schon bei der Ausgabe von HTML befindet.
Dein Code
PHP-Code:<?php
include "include/header.php";
include "include/footer.php";
?>
<html>
<head>
<link rel="stylesheet" href="css/style.css">
<title>Suchmaschine</title>
<meta name="description" content="Eine einfache Suchmaschine">
<meta name="keywords" content="PlutoHD, Suchmaschine, Suche">
<meta name="author" content="PlutoHD">
<meta name="editor" content="Atom">
<meta charset="utf-8">
</head>
<body>
<?php
echo $header;
?>
<div id="inhalt">
<div class="zentrieren">
<div class="ueberschrift">
Suchmaschine<br><br>
</div>
<?php
if(isset($_POST['SuchanfrageButton'])) {
$suchbegriff = "%".$_POST["SuchanfrageText"]."%";
$suchbegriffupper = strtoupper($suchbegriff);
$suchbegriffuppersplit[] = explode(" ", $suchbegriffupper);
if($suchbegriff == "") {
echo 'Fehler! Bitte lasse kein Feld leer. <a href="index.php">zurück zur Startseite</a>';
} else {
$pdo = new PDO('mysql:host=HOST;dbname=DBNAME', 'ACCOUNTNAME', 'PASSWORT');
$statement = $pdo->prepare("SELECT * FROM Data"); //WHERE UPPER(TITLE) LIKE '%".$suchbegriffupper."%' OR LINK LIKE '%".$suchbegriffupper."%'");
$statement->execute();
while ($row = $statement->fetch()) {
$ergebnis[] = array('link' => $row["LINK"], 'title' => $row["TITLE"]);
}
if(!isset($ergebnis)) {
echo 'Keine Suchergebnisse <br><a href="index.php">zurück zur Startseite</a>';
} else {
?>
<!-- <table>
<thead>
<tr>
<th>Titel</th>
<th>Link</th>
</tr>
</thead>
<tbody>
<?php
//foreach ($ergebnis as $inhalt) {
?>
<tr>
<td>
<?php //echo $inhalt["title"]; ?>
</td>
<td>
<a href="<?php //echo $inhalt["link"]; ?>"><?php //echo $inhalt["link"]; ?></a>
</td>
</tr>
<?php
//}
?>
</tbody>
</table> -->
<hr>
<?php
foreach ($ergebnis as $inhalt) {
foreach ($suchbegriffuppersplit as $suchbegriffuppersplitinhalt) {
if (strpos($inhalt["title"], $suchbegriffuppersplitinhalt) !== false || strpos($inhalt["link"], $suchbegriffuppersplitinhalt) !== false) {
?>
<div class="linkTitel"><a class="blue" href="<?php echo $inhalt["link"]; ?>"><?php if (strlen($inhalt["title"]) >= 120) { $title = substr($inhalt["title"], 0, 120)."..."; } else { $title = $inhalt["title"]; } echo $title; ?></a></div>
<div class="linkBeschreibung"><?php echo $inhalt["link"]; ?></div><hr>
<?php
break;
}
}
}
?>
<br><a href="index.php">zurück zur Startseite</a>
<?php
}
}
} else {
?>
<form name="SuchanfrageForum" action="" method="post">
<input type="text" name="SuchanfrageText" placeholder="Deine Suchanfrage">
<button type="submit" name="SuchanfrageButton">Suchen</button>
</form>
<?php
}
?>
</div>
</div>
<?php
echo $footer;
?>
</body>
</html>
Kommentar
-
PHP-Code:$suchbegriffuppersplit[] = explode(" ", $suchbegriffupper);
PHP-Code:array[0][0] = "TWITTER"
array[0][1] = "SELFHTML"
PHP-Code:array[0] = "TWITTER"
array[1] = "SELFHTML
Kommentar
-
Zitat von jonas3344 Beitrag anzeigenPHP-Code:$suchbegriffuppersplit[] = explode(" ", $suchbegriffupper);
PHP-Code:array[0][0] = "TWITTER"
array[0][1] = "SELFHTML"
PHP-Code:array[0] = "TWITTER"
array[1] = "SELFHTML
Kommentar
-
Zitat von protestix Beitrag anzeigenPHP-Code:$suchbegriffuppersplit = explode(" ", $suchbegriffupper);
var_dump($suchbegriffuppersplit);
Suchbegriff 1 steht in?
Kommentar
Kommentar