| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

07-06-2010, 11:36
|
|
Philipp767
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 21
|
|
Durch den Super tollen Einzeiler von Quetschi ist mein Beitrag verschwunden... Hier nochmals
Zitat:
Zitat von Philipp767
Zum Datenbankaufbau...
Ich habe eine Datenbank "MuBisA mit den Tabellen "user" und "connection".
Aufbau Tabelle User:
id, name, username, passwort
Aufbau connection:
id, user_id_viewer, user_id_patient
Ablauf
In der Tabelle user befinden sich z.B 2 Benuter mit der ID 1 und 2. Diese werden auch in der connection eingetragen (user_id_viewer=1, user_id_patient=2). Nun habe ich einen Login, das heisst wenn ich mich mit User 1 einlogge müssen alle User mit Namen angezeigt werden die mit Ihm in Verbindungen stehen. In diesem Beispiel User 2  Sollten mehrere User in
Verbindung sein mit User 1, so werden halt alle Namen ausgegeben.
Problem
Wenn ich jetzt auf den Namen klicke soll sich der User in einer neuen .php
Datei (user.php) öffnen, in der URL soll aber nicht die id ausgegeben werden (in diesem Beispiel id=2)
|
|

07-06-2010, 11:48
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Philipp767
Durch den Super tollen Einzeiler von Quetschi ist mein Beitrag verschwunden
|
Hier verschwindet nichts. Ansonsten gebe ich dir Recht: ich versteh auch nicht, was der Bayer wieder zu spammen hat.
Wenn es dir darum geht, Manipulationen zu verhindern, musst du in der user.php ohnehin nochmal über die connection joinen und dabei prüfen, ob die übergebene User-ID zum eingeloggten Benutzer gehört. Ob die dann in der URL sichtbar ist oder nicht, ist dann egal.
Wenn sie trotzdem nicht zu sehen sein soll, musst du sie per POST übergeben oder mit AJAX. Die o. g. Prüfung sparst du damit aber trotzdem nicht ein.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

07-06-2010, 11:53
|
|
Philipp767
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 21
|
|
ja und wie soll ich das jetzt machen? ich hab da echt 0 Plan.
|

07-06-2010, 11:55
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Philipp767
ja und wie soll ich das jetzt machen?
|
Was genau? Ich hab grad keine Tarotkarten zur Hand.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

07-06-2010, 11:56
|
|
Philipp767
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 21
|
|
Wie soll die Übergabe per POST laufen? (Code?)
Wie soll die Abfrage der connections ins user.php aussehe? (Code?)
|

07-06-2010, 12:00
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Philipp767
Wie soll die Übergabe per POST laufen?
|
Per Formular mit einem Button drin, ist aber wie gesagt nicht notwendig und nur Kosmetik.
Zitat:
Zitat von Philipp767
Code?
|
Wie kommst du drauf, dass es hier fertigen Code gäbe? Hier gibt's Hilfe zur Selbsthilfe.
Zitat:
Zitat von Philipp767
Wie soll die Abfrage der connections ins user.php aussehe?
|
Genau wie die in der connections.php, nur mit einer zusätzlichen Bedingung in der Where-Klausel.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (07-06-2010 um 12:02 Uhr)
|

07-06-2010, 12:02
|
|
Philipp767
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 21
|
|
Gibt es da keine andere Lösung dafür? Weil das mit POST ist net so wirklich das was ich will....
|

07-06-2010, 12:04
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Philipp767
Gibt es da keine andere Lösung dafür?
|
Hab ich dir genannt: Einfach prüfen, ob die mit dem eingeloggten User zusammen gehört.
Zitat:
Zitat von Philipp767
Weil das mit POST ist net so wirklich das was ich will....
|
Sag ich ja.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

07-06-2010, 12:11
|
|
Philipp767
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 21
|
|
Ok dann überprüfe ich das in der User.php
das heisst wenn die User.php so aussieht
PHP-Code:
<? session_start(); if(!session_is_registered('myuserid')){ header("location:login.php"); } $myuserid = $_SESSION['myuserid']; include ('db_con.php'); $connection = db_connect(); $search_id = $_GET[ 'id' ];
$sql = "SELECT name, birthday, id, Strasse, PLZ, Ort, Bemerkung FROM user WHERE id='$search_id'"; $erg = mysql_query($sql); if(!$erg) { echo "Fehler in der Abfrage<br>".mysql_error(); }
else
{ while($var = mysql_fetch_object($erg)) { echo "<div align='center'>"; echo "<div style='font-size:30px'>".$var->name."</div>"; echo "<div style='font-size:12px'>".$var->birthday."</div>"; echo "<div style='font-size:12px'>".$var->Bemerkung."</div>"; echo "</div>"; } }
$events = "SELECT id, timedate FROM events WHERE user_id='$search_id'"; $erg = mysql_query($events); if(!$erg) { echo "Fehler in der Abfrage<br>".mysql_error(); } else { while($var = mysql_fetch_object($erg)) { echo "<div align='center'><br>"; echo "<div style='font-size:20px'><strong>Events</strong></div>"; echo "<div style='font-size:12px'>".$var->timedate."</div>"; echo "</div>"; } }
?>
muss ich vor
PHP-Code:
$sql = "SELECT name, birthday, id, Strasse, PLZ, Ort, Bemerkung FROM user WHERE id='$search_id'";
die Abfrage machen ob die 2 User zusammen gehören?
das heisst ich könnte mit dem Code von der connections.php
PHP-Code:
$result = mysql_query("SELECT P.name, P.id, P.birthday FROM (user U INNER JOIN connection C on U.id = C.user_id_viewer) INNER JOIN user P on P.id = C.user_id_patient WHERE U.id = ".$myuserid."");
arbeiten oder wie?
|

07-06-2010, 12:25
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Philipp767
das heisst ich könnte mit dem Code von der connections.php […] arbeiten oder wie?
|
Genau, nur dass du die Where-Klausel erweitern musst, damit du $_GET['id'] auch gleich mit prüfst. Denk an SQL-Injections und benutz mysql_real_escape_string.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

07-06-2010, 12:38
|
|
Philipp767
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 21
|
|
Hab das jetzt so versucht
PHP-Code:
<? session_start(); if(!session_is_registered('myuserid')){ header("location:login.php"); } $myuserid = $_SESSION['myuserid']; $search_id = $_GET[ 'id' ]; include ('db_con.php'); $connection = db_connect();
$result = mysql_query("SELECT P.name, P.id, P.birthday , P.Bemerkung FROM (user U INNER JOIN connection C on U.id = C.user_id_viewer) INNER JOIN user P on P.id = ".$search_id." WHERE U.id = ".$myuserid."");
if(!mysql_num_rows($result)){
echo "Keine Verbindungen.";
} else {
while($row = mysql_fetch_object($result)) { echo "<div align='center'>"; echo "<div style='font-size:30px'>".$row->name."</div>"; echo "<div style='font-size:12px'>".$row->birthday."</div>"; echo "<div style='font-size:12px'>".$row->Bemerkung."</div>"; echo "</div>"; } } ?>
Was daran falsch? :S
|

07-06-2010, 12:59
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Philipp767
Was daran falsch? :S
|
Mindestens die zweite on-Klausel, die hättest du gar nicht zu verändern brauchen, ich sprach ja nur von der Where-Klausel.
Ob sonst noch etwas falsch ist, kann ich schwer testen. Da musst du schon mit konkreten Fehlerbeschreibungen kommen und vor allem die Forenregeln hinsichtlich der Hinweise zur Fehlersuche und -behebung beachten.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

07-06-2010, 13:19
|
|
Philipp767
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 21
|
|
Habs hinbekommen und funktioniert
PHP-Code:
<? session_start(); if(!session_is_registered('myuserid')){ header("location:login.php"); } $myuserid = $_SESSION['myuserid']; $search_id = $_GET[ 'id' ]; include ('db_con.php'); $connection = db_connect();
$result = mysql_query("SELECT P.name, P.id, P.birthday FROM (user U INNER JOIN connection C on U.id = C.user_id_viewer) INNER JOIN user P on P.id = C.user_id_patient WHERE U.id = ".$myuserid." AND P.id= ".$search_id."");
if(!mysql_num_rows($result)){
echo "Sie haben keine Berechtigung diesen Patienten aufzurufen.<br>"; echo "<td><strong><font size='1' face='Arial, Helvetica, sans-serif'> <a href='overview.php'>zurück</font></strong></td>";
} else {
while($row = mysql_fetch_object($result)) { echo "<div align='center'>"; echo "<div style='font-size:30px'>".$row->name."</div>"; echo "<div style='font-size:12px'>".$row->birthday."</div>"; echo "<div style='font-size:12px'>".$row->Bemerkung."</div>"; echo "</div>"; $events = "SELECT id, timedate FROM events WHERE user_id='$search_id'"; $erg = mysql_query($events); if(!$erg) { echo "Fehler in der Abfrage<br>".mysql_error(); } else { echo "<div align='center'><br>"; echo "<div style='font-size:20px'><strong>Events</strong></div>"; echo "</div>"; while($var = mysql_fetch_object($erg)) { echo "<div align='center'>"; echo "<div style='font-size:12px'>".$var->timedate."</div>"; echo "</div>"; } } } }
?>
Vielen Dank!
|

07-06-2010, 13:32
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Philipp767
Habs hinbekommen und funktioniert 
|
… bis einer vorbeikommt und deine ganze DB schrottet, weil du keine Lust hattest, auf meine Hinweise bzgl. SQL-Injection zu hören!
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|