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
GELÖST

Probleme mit meinem sql code!

Frage Entwicklung Datenbanken

Mitglied: 65999

65999 (Level 1)

11.12.2008, aktualisiert 09.11.2016, 4294 Aufrufe, 9 Kommentare

Hi.

Ich habe mich seit Anfang dieser Woche an die Materie php und mysql gewagt:

01.
  
02.
<?PHP 
03.
session_start(); 
04.
$name = $_SESSION['username']; 
05.
$EvendID = $_SESSION['EventID']; 
06.
echo $Event
07.
echo $name
08.
 
09.
    if( isset($_POST['Teilnahme']) && !empty($_POST['Teilnahme']) ) { 
10.
        echo $_POST['Teilnahme']; 
11.
    } else
12.
        echo 'Es wurde keine Option ausgewählt!'; 
13.
14.
 include("db.php"); 
15.
 
16.
 $sql = 'SELECT MitgliederID FROM `Mitglieder` WHERE BenutzernameMitglieder='$name'; 
17.
 $sql = mysql_query($sql); 
18.
 
19.
 while($sql = mysql_fetch_object($sql)) 
20.
21.
    echo $sql->MitgliederID; 
22.
23.
?>
Und zwar stehe ich davor, dass mir die sql Abfrage in Zeile 16 kein Ergebnis liefert!

Wo ist der Fehler?
Mitglied: dog
11.12.2008 um 12:10 Uhr
Du hast hier einen Syntax Fehler drinne:

01.
$sql = 'SELECT MitgliederID FROM `Mitglieder` WHERE BenutzernameMitglieder='$name';  
02.
       ^                                                                   ^ 
03.
       1                                                                   2
Bei 1 beginnt dein PHP-String, bei 2 endet er, alles danach ist syntaktisch falsch.
Du müsstest schreiben:

$sql = "SELECT MitgliederID FROM `Mitglieder` WHERE BenutzernameMitglieder='$name'";

Vorsicht! Auch wenn das so funktioniert, ist es ein enormes Sicherheitsrisiko und hat so nichts in der Praxis verloren.

Deine While-Schleife funktioniert übrigens so auch nicht: Nach dem ersten durchgang wird $sql überschrieben und sie kann kein zweites mal ausgeführt werden.

Grüße

Max
Bitte warten ..
Mitglied: 65999
11.12.2008, aktualisiert 09.11.2016
Das mit der while Schleife ist logisch, der Benutzername gibt es ja auch nur 1x und soll danach aufhören!
Bitte warten ..
Mitglied: dog
11.12.2008 um 12:31 Uhr
Das mit der while Schleife ist logisch, der Benutzername gibt es ja auch nur 1x und soll danach aufhören!

Nein ist es nicht.
Effektiv produzierst du einen PHP-Fehler und dadurch bricht die While-Schleife ab.
Wenn du wirklich nur eine Zeile holen willst brauchst du eben auch nur

01.
$row = mysql_fetch_object($query);
schreiben.

Bitte füge an dein Script, während du es entwickelst ganz oben
01.
error_reporting(E_ALL); 
02.
ini_set('display_errors','On');
an, damit du die Fehlermeldungen von PHP auch siehst.

Was meinst du mit Vorsicht! Was meinst du mit Sicherheitsrisiko, wie wäre es richtig gewesen?

Dazu empfehle ich mal als Ausgangspunkt http://de.wikipedia.org/wiki/SQL-Injection
Bitte warten ..
Mitglied: 68702
11.12.2008 um 12:34 Uhr
Gelöscht, weil Anleitung zum Hacken...
Bitte warten ..
Mitglied: 65999
11.12.2008, aktualisiert 09.11.2016
Danke ...
Bitte warten ..
Mitglied: 65999
11.12.2008, aktualisiert 09.11.2016
noch eine Frage:

Und zwar ist mir aufgefallen, dass wenn ich mich anmelde und anschließend als Test Ja sage, dass er beim Ersten aufruf nie die Saison übernimmt. Erst wenn ich erneut im Browser die Site öffne, dann meinen Benuzternamen eintrage, dann ja auswähle, dann funktioniert es.

Woran könnte das liegen? Bei Bedarf poste ich mal den Quelltext.

Danke für eure Hilfe
Gruß
Bitte warten ..
Mitglied: dog
11.12.2008 um 15:55 Uhr
Bei Bedarf poste ich mal den Quelltext!

Raten ist immer blöd...
Bitte warten ..
Mitglied: 65999
12.12.2008, aktualisiert 09.11.2016
So, hier jetz mal mein Quelltext!


01.
<html> 
02.
<head> 
03.
<meta http-equiv="refresh" content="3; URL=inlineframe.php"> 
04.
</head> 
05.
<body> 
06.
<?PHP 
07.
session_start(); 
08.
$name = $_SESSION['username']; 
09.
$EventNr = $_SESSION['Event']; 
10.
 
11.
    if( isset($_POST['TeilnahmeID']) && !empty($_POST['TeilnahmeID']) ) { 
12.
        //echo $_POST['Teilnahme']; 
13.
        $Teilnahme = $_POST['TeilnahmeID']; 
14.
    } else { 
15.
       echo 'Es wurde keine Teilnahmeoption ausgew&auml;hlt!'; 
16.
17.
 
18.
include("db.php"); 
19.
 
20.
$result = mysql_query("SELECT MitgliederID FROM `Mitglieder` WHERE BenutzernameMitglieder='$name'"); 
21.
if (!$result) { 
22.
    echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error(); 
23.
    exit; 
24.
25.
$MitgliederID = mysql_fetch_row($result); 
26.
$insert = "INSERT INTO Eventzuordnung(Events_EventsID, Mitglieder_MitgliederID, Status) VALUES('$Event','$MitgliederID[0]','$Teilnahme')"; 
27.
mysql_query($insert); mysql_close(); 
28.
 
29.
 ?> 
30.
 
31.
</body> 
32.
</html>

danke für eure hilfe!
gruß
Bitte warten ..
Mitglied: dog
LÖSUNG 13.12.2008 um 05:39 Uhr
Hallo,

dein Problem liegt hier:

01.
session_start(); 
02.
$name = $_POST['name']; 
03.
 
04.
if(!isset($name)) 
05.
06.
   $name = "Gast"; 
07.
08.
$_SESSION['username'] = $name;
Gehen wir das mal Stück für Stück durch:

1. session_start() - soweit OK (Generell empfiehlt sich diese Funktion als allererstes auf einer Seite aufzurufen, sonst könntest du auf manchen Servern Probleme kriegen)

2. $name = $_POST['name']; - Wenn das POST-Feld name gesetzt ist wird es $name zugewiesen, ist es nicht gesetzt wird PHP $name den Wert false zuweisen.

3. isset($name) prüft ob eine Variable vorhanden ist. Dies muss hier immer der Fall sein, weil du in Schritt 2 auch immer eine Zuweisung hast.

Ich hoffe das hilft dir weiter

Grüße

Max
Bitte warten ..
Ähnliche Inhalte
Windows Server
Sql server 2014 probleme
Frage von meister00Windows Server

hallo ich habe folgendes problem. windows server 2012r2 hyper1 windows server 2012r2 hyper2 failovercluster und die vhd sind auf ...

Datenbanken
Probleme mit SQL Server 2012 Verbindungsserver
gelöst Frage von orausdoDatenbanken

Hallo liebe Admin Gemeinde, ich hab mal wieder eine seltsame Fehlermeldung bei Ausführung einer Abfrage auf einen Linked Server. ...

Datenbanken
Probleme mit IIS PHP SQL auf SBS2011
Frage von ITS2015Datenbanken8 Kommentare

Hallo, Erst einmal zum Server: Dell PowerEdge 610 2 x QC Xeon 32GB RAM RAID10 ( 6x 600GB SAS ...

Windows Server
Probleme mit dem SQL Management Studio - Editor
gelöst Frage von SachellenWindows Server6 Kommentare

Hallo Liebe Mitglieder, ich habe ein ganz komisches Problem. Vielleicht hatte das ja jemand auch schon mal von euch ...

Neue Wissensbeiträge
Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 34 MinutenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...