Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator masterG am 01.08.2011 um 13:21:52 Uhr
Formartierungshilfe beachten

gelöst PHP GET variable auf Inhalt prüfen

Mitglied: nobodyisperfect

nobodyisperfect (Level 1) - Jetzt verbinden

20.07.2011, aktualisiert 01.08.2011, 6330 Aufrufe, 6 Kommentare

Hallo an alle da DRAUSEN ^^

PHP Variable $_GET[''] macht mich verrückt!

Kurze Info zu meinen Server:

OS : Linux 11.3
Module: apache2 mit PHP Modulen / MySQL-Datenbank
Nutzung: Webserver


Mein Problem:

Ich lasse eine Variable übergeben an ein php Dokument wo die Übergabe abgefangen wird mit $_GET[" "]
sieht wie folgt aus:

Document "musik.php"
01.

02.
$abf = mysql_query("SELECT * FROM musik");
03.

04.
while ($a = mysql_fetch_row($abf)) {
05.
echo"	
06.
		<tr>
07.
		<td><li><a id='mures' href='musik_show.php?gen=$a[4]'>$a[4]</a></li></td>
08.
		<td><li><a id='mures' href='musik_show.php?int=$a[1]'>$a[1]</a></li></td>
09.
		</tr>
10.
		";
11.
};
Also Übergabe von Wert "gen" und "int" wird von Dokument "musik_show.php" abgefangen mit $_GET['gen'] und $_GET['int']
Dokument "musik_show.php" sieht wie folgt aus:
01.
$ggen = $_GET['gen'];
02.
$gint = $_GET['int'];
03.

04.

05.
$abfg = mysql_query("SELECT * FROM musik WHERE interpret LIKE $gint");
06.
$abfi = mysql_query("SELECT * FROM musik WHERE genre LIKE $ggen");
07.

08.
echo "<table><tr>";
09.
if (!isset($_GET["gen"])) {
10.
 while($a = mysql_fetch_row($abfi)) {
11.
	echo "<td>$a[1]</td>";
12.
	}
13.
	else {
14.
		while ($b = mysql_fetch_row($abfg)) {
15.
			echo "<td>$b[4]<td>";
16.
			}
17.
		}
18.
	}
19.

20.

21.
echo "</tr></table>";
Hier das Problem:

Irgendwo ist ein Fehler drin und weis nicht wo bzw wieso.
Möchte Prüfen lassen ob die $_GET['gen'] Variable leer ist aber funktioniert nicht.

Bräuchte wirklich eure Hilfe hab schon rauf und runter gebingt aber irgendwie find ich dazu weder ne lösung noch versteh ich des eigentliche Problem.

Vielen Dank für eure Hilfe.


nobodyisperfect
Mitglied: nxclass
20.07.2011 um 22:35 Uhr
Übergabe von Wert "gen" und "int"
abgefangen mit $_GET['gen'] und $_GET['int']
.. nein es ist $_GET['gen'] ODER $_GET['int']

Prüfen kannst du ob ein Schlüssel in einem Array ist z.B.mit
01.
if ( isset( $_GET['gen'] ) ) {
02.
// ...
03.
}
.. das ist also nicht das Problem. Ich sehe eher das Problem in den SQL Abfragen, wenn ein Parameter leer ist. Ebenso erscheint mir deine Variablennamen sind etwas durcheinander.


Nebenbei: überlege mal mit etwas Fantasie was in der musik_show.php mit der SQL Abfrage passiert wenn jemand die URL manipuliert.
Bitte warten ..
Mitglied: nobodyisperfect
20.07.2011 um 23:33 Uhr
Hi Danke für die schnelle Antwort!

Hab schon zuvor mit "isset" versucht mit "empty" geht aber einfach net werd net schlau draus.

Hier mal beide Dateien komplett:

musik.php
<?php

echo"
<!DOCTYPE HTML PUBLIC ' -W3CDTD HTML 4.01 Transitiona lEN' 'http:www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
<title>Musik</title>
<link rel=stylesheet type=text/css href=global.css>
<link rel=stylesheet type=text/css href=nav.css>
<script type=text/javascript src=nav.js></script>
</head>
<body>
";


include 'head.html';
include 'nav.html';
include 'musik.html';


echo "
<table id='musik'>
<tr>
<td>Genre</td>
<td>Interpret</td>
</tr>
";

include 'logindb.php';

mysql_select_db("elysionpw");

$abf = mysql_query("SELECT * FROM musik");

while ($a = mysql_fetch_row($abf)) {
echo"
<tr>
<td><li><a id='mures' href='musik_show.php?gen=$a[4]&int=$a[1]'>$a[4]</a></li></td>
<td><li><a id='mures' href='musik_show.php?int=$a[1]&gen=$a[4]'>$a[1]</a></li></td>
</tr>
";
};

echo"

</table>
";


echo"
</body>
</html>
";

?>
musik_show.php
<?php
$ggen = $_GET['gen'];
$gint = $_GET['int'];

echo"
<!DOCTYPE HTML PUBLIC ' -W3CDTD HTML 4.01 Transitiona lEN' 'http:www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
<title>Musik</title>
<link rel=stylesheet type=text/css href=global.css>
<link rel=stylesheet type=text/css href=nav.css>
<script type=text/javascript src=nav.js></script>
</head>
<body>
";


include 'head.html';
include 'nav.html';


echo "
<table id='musik'>
<tr>
<td>$ggen $gint</td>
</tr>
</table>
<br>
<br>
";

include 'logindb.php';

mysql_select_db("elysionpw");

$abfg = mysql_query("SELECT * FROM musik WHERE interpret LIKE $gint");
$abfi = mysql_query("SELECT * FROM musik WHERE genre LIKE $ggen");

echo "<table><tr>";


if ( isset( $_GET['gen'] ) ) {
while($a = mysql_fetch_row($abfi)) {
echo "<td>$a[1]</td>";
}
else {
while ($b = mysql_fetch_row($abfg)) {
echo "<td>$b[4]<td>";
}
}
}


echo "</tr></table>";

echo"
</body>
</html>
";

?>
Werd zum Hirsch......




>Nebenbei: überlege mal mit etwas Fantasie was in der musik_show.php mit der SQL Abfrage passiert wenn jemand die URL >manipuliert.

ist nur für private zwecke aber an und für sich hast schon recht
Bitte warten ..
Mitglied: dog
21.07.2011 um 04:07 Uhr
Hör auf Blind zu programmieren und schalt die Fehleranzeige ein:

01.
<?php 
02.
  error_reporting(E_ALL|E_STRICT); 
03.
  ini_set('display_errors','On'); 
04.
?>
Dann siehst du auch, was du da alles falsch machst.
Bitte warten ..
Mitglied: SlainteMhath
21.07.2011 um 09:01 Uhr
Moin,

auch wenn's jetzt nichts mit der eigentlichen Frage zu tun hat, aber solchem Code
01.
$ggen = $_GET['gen'];
02.
[...]
03.
$abfi = mysql_query("SELECT * FROM musik WHERE genre LIKE $ggen");
Kräuseln sich mir die Fußnägel.

Frage: was passiert, wenn $_GET['gen'] den Wert "1; DROP TABLE MUSIC; --" hat?

Bitte, bitte benutze diese Funktion: http://php.net/manual/de/function.mysql-real-escape-string.php

Nähers dazu: http://de.wikipedia.org/wiki/SQL-Injection

lg,
Slainte
Bitte warten ..
Mitglied: blackwinged
21.07.2011 um 10:26 Uhr
Hi,

1. Nimm dir die Kommentare zur Sicherheit bitte zu Herzen! Besser ist immer:

01.
 
02.
$ggen = mysql_real_escape_string($_GET['gen']);
03.
$gint = mysql_real_escape_string($_GET['int']);
Das muss dir in Fleisch und Blut übergehen ;)


2. Hinter dem LIKE in deiner Query wird ein String erwartet, aber (aus Sicht von MySQL) ein Spaltenname übergeben.
So dürfte es funktionieren:

01.
 
02.
$abfg = mysql_query("SELECT * FROM musik WHERE interpret LIKE '%$gint%'");
03.
$abfi = mysql_query("SELECT * FROM musik WHERE genre LIKE '%$ggen%'");
Gruß,
blackwinged
Bitte warten ..
Mitglied: nobodyisperfect
21.07.2011 um 13:44 Uhr
Vielen Dank für eure Hilfe ^^

Also erfolgreich gelöst !

Besten Dank an administrator.de
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Get-Content Inhalt filtern
gelöst Frage von derhoeppiBatch & Shell1 Kommentar

Guten Morgen, ich habe eine Textdatei nach dem Beispielhaften Muster Nun möchte ich diese Datei einlesen, aber bestimmte Zeilen ...

PHP

Den Inhalt einer "get"-Anweisung finden, wie

Frage von sbsnewbiePHP2 Kommentare

Moin Leude, könnt Ihr mir mal kurz auf die Sprünge helfen? Wie kann ich den Inhalt einer "get"-Anweisung finden? ...

Windows Tools

Powershell (Get-ADUser) : Inhalt in einer HTML Tabellenspalte kürzen oder Splitten

gelöst Frage von clubmateWindows Tools7 Kommentare

Hallo, ich lasse mir mit Get-ADuser die Attribute SamAccountName, Description, Office und MemberOf in einem HTML-Dokument in Form einer ...

Batch & Shell

Powershell Get-SchedulesTask

gelöst Frage von derhoeppiBatch & Shell2 Kommentare

Hi, für einen Deploymentvorgang habe ich derzeit eine Batchdatei in der viele Scheduled Tasks disabled werden. In der Batchdatei ...

Neue Wissensbeiträge
Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Tipp von ChriBo vor 7 StundenFirewall

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 1 TagInternet

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 1 TagGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 1 TagGoogle Android2 Kommentare

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Heiß diskutierte Inhalte
Linux Userverwaltung
LogIn Versuche beschränken auf EINEN Versuch
gelöst Frage von GarroshLinux Userverwaltung21 Kommentare

Folgendes Problem Ich habe einen dezidierten Server beim Hoster gemietet, installiert ist Ubuntu 18.04.2 LTS‬ und als Webinterface Plesk. ...

DSL, VDSL
Neuer Glasfaser Anschluss - IPv4-Adressraum
Frage von norre2000DSL, VDSL12 Kommentare

Hallo Zusammen, ich werde meinen Glasfaser Anschluss wechseln und bin beim Ausfüllen des Antrags auf Fragen gestoßen bei denen ...

Internet
Aktuell HP-Support-Seite kaputt?
gelöst Frage von LochkartenstanzerInternet12 Kommentare

Hallo Kollegen, Weiß einer von euch, seit wann die HP-Support-Seite kaputt ist? ) Wollte heute morgen Druckertreiber runterladen und ...

Ubuntu
Exchange Alternative auf Ubuntu
Frage von TELLOUbuntu11 Kommentare

Hi NG, wir müssen für unsere Kleine Firma (5 User) das Email / Kalendersystem neu einrichten. Ich könnte jetzt ...