Hallo,
eigentlich habe ich 2 Fragen zu PHP, aber das hätte nicht alles ich die Überschrift gepasst.
Frage 1
Ich erlerne gerade PHP und MySQL. Dafür habe ich in einer Datenbank eine Tabelle über Internet Radiostationen angelegt, mit Sendername, Land, Kontinent, StreamURL, Genre usw. Über ein Auswahlmenü lässt sich die Tabelle nach Sendernamen, Land oder Kontinent sortieren. Das klappt soweit auch. Damit aber nicht mehr als 20 Radiostationen auf einer Seite erscheinen, habe ich unter Zuhilfenahme eines Buches die Seiten paginiert (Steige da aber noch nicht so richtig durch). Wenn ich nun die Radiostationen nach Land oder Kontinent sortiere, dann klappt das zwar auf der ersten Seite aber auf der zweiten Seite ist wieder alles nach den Sendernamen sortiert.
Was muss ich machen, damit die Sortier – Auswahl auch an die folgenden Seiten übergeben wird?
Hier ist der PHP Code
<?php
$sortieren = $_POST['sortieren'];
if($sortieren == "Sendername") {
$ergebnis = $mysqli -> query("SELECT * FROM sender ORDER BY sendername LIMIT $start, $anzahl_pro_seite");
} elseif($sortieren == "Kontinent") {
$ergebnis = $mysqli -> query("SELECT * FROM sender ORDER BY kontinent LIMIT $start, $anzahl_pro_seite");
} elseif($sortieren == "Land") {
$ergebnis = $mysqli -> query("SELECT * FROM sender ORDER BY land LIMIT $start, $anzahl_pro_seite");
}
?>
Frage 2
Wie muss die Fall – Entscheidung formuliert werden?
Natürlich soll man Radiosender über ein Eingabeformular finden können. Auch das funktioniert. Allerdings möchte ich, wenn es keinen Sender mit dem entsprechenden Namen gibt, das ein Text wie z. B. "Leider kein Sender mit diesem Namen zu finden" erscheint. Dafür habe ich in der Fall – Entscheidung folgende 2 Dinge ausprobiert:
if($zeile == !array()) {
echo "Leider gab es keinen Sender mit dem Namen";
}
Das klappt nicht.
if($zeile == false) {
echo "Leider gab es keinen Sender mit dem Namen";
}
Das klappt auch nicht.
if($zeile == null) {
echo "Leider gab es keinen Sender mit dem Namen";
}
War auch 'ne Nullnummer :)
Hier ist der komplette Code dazu:
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label>Sendername eingeben:</label><br />
<input type="text" name="suchbegriff"/><br /><br />
<input type="submit" name="gesendet"/>
</form>
<?php
if(isset($_POST['gesendet'])) {
$suchbegriff = htmlspecialchars($_POST['suchbegriff']);
echo $suchbegriff . "<br />";
$db = mysqli_connect("localhost", "root");
mysqli_set_charset($db, "utf8");
mysqli_select_db($db, "radio2");
$sql = "SELECT * FROM sender WHERE sendername LIKE '%$suchbegriff%' ";
$erg = mysqli_query($db, $sql);
while($zeile = mysqli_fetch_assoc($erg)) {
echo $zeile['sendername'] . " ". $zeile['kontinent'] ." ". $zeile['land'] . " ". $zeile['ort'] . " ". $zeile['genre'] . " ". $zeile['streamurl'] . "<br /><br />" ;
}
if($zeile == !array()) {
echo "Leider gab es keinen Sender mit dem Namen";
}
}
?>
</body>
Danke für's lesen.
danke erstmal, aber Ich verstehe nicht ganz wie dieser simple code mich als root user einloggt. der code wurde auf einem linux system verwendet und nutzt dabei die SUID von der systemctl um halt diese shell als root zu generieren.
ausgeführt wurde der code auf dem system mit "systemctl enable /tmp/root.service" und "systemctl start root", von einem user ohne root privileges
könntest du vielleicht nochmal diese beiden befehle erklären und erklären warum mir genau "systemctl" diese rechte ermöglicht und nicht jede andere SUID datei auch?