Webdesign in Siegen

Community Script

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

Re: Community Script

Beitragvon =Max= am 28.12.2007, 17:06

Javascript, sowie PHP Code gehen naja was heißt gehen xD. Wenn ich das aufrufe index.php?page=4 wird die Klassenübersicht angezeigt, klicke ich auf eine Klasse wo gan sicher jemand angemeldet ist kommt "Keiner aus dieser Klasse angemeldet"

Manoman bin ich verzweifelt :D
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

Re: Community Script

Beitragvon Ingo am 28.12.2007, 17:21

Hi. Ich nochmal:
Ist die "2" ganz am Ende von $sql = "SELECT * FROM users WHERE UserKlasse=$klasse2"; Absicht?
Wenn nicht, liegt's ja vllt. daran ? :?
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 560
Registriert: 01.04.2007
Wohnort: Neuss/NRW

Re: Community Script

Beitragvon =Max= am 28.12.2007, 17:23

Sie war absicht, habe den code mittlerweile so geändert:

Code: Alles auswählen
<script type="text/javascript">
  function zeigeKlasse(klasse) {
    var ziel = "./index.php?page=4&UserKlasse=" + klasse;
    window.location.href = ziel;
  }
</script>
<?php
error_reporting(E_ALL);
include_once('sessionhelpers.inc.php');

if(empty($_GET['UserKlasse'])) {
echo <<<END
<b>Klassen der Oskar-Sembach-Realschule</b><br>
Bitte wähle eine Klasse aus!<br><br>
<input type="submit" onclick="javascript:zeigeKlasse('5a')" class="submitreg" value="5a"> <input type="submit"

onclick="javascript:zeigeKlasse('5b')" class="submitreg" value="5b"> <input type="submit"

onclick="javascript:zeigeKlasse('5c')" class="submitreg" value="5c"> <input type="submit"

onclick="javascript:zeigeKlasse('5d')" class="submitreg" value="5d"><br><input type="submit"

onclick="javascript:zeigeKlasse('6a')" class="submitreg" value="6a"> <input type="submit"

onclick="javascript:zeigeKlasse('6b')" class="submitreg" value="6b"> <input type="submit"

onclick="javascript:zeigeKlasse('6c')" class="submitreg" value="6c"> <input type="submit"

onclick="javascript:zeigeKlasse('6d')" class="submitreg" value="6d"><br><input type="submit"

onclick="javascript:zeigeKlasse('7a')" class="submitreg" value="7a"> <input type="submit"

onclick="javascript:zeigeKlasse('7b')" class="submitreg" value="7b"> <input type="submit"

onclick="javascript:zeigeKlasse('7c')" class="submitreg" value="7c"> <input type="submit"

onclick="javascript:zeigeKlasse('7d')" class="submitreg" value="7d"> <input type="submit"

onclick="javascript:zeigeKlasse('7e')" class="submitreg" value="7e"><br><input type="submit"

onclick="javascript:zeigeKlasse('8a')" class="submitreg" value="8a"> <input type="submit"

onclick="javascript:zeigeKlasse('8b')" class="submitreg" value="8b"> <input type="submit"

onclick="javascript:zeigeKlasse('8c')" class="submitreg" value="8c"> <input type="submit"

onclick="javascript:zeigeKlasse('8d')" class="submitreg" value="8d"><br><input type="submit"

onclick="javascript:zeigeKlasse('9a')" class="submitreg" value="9a"> <input type="submit"

onclick="javascript:zeigeKlasse('9b')" class="submitreg" value="9b"> <input type="submit"

onclick="javascript:zeigeKlasse('9c')" class="submitreg" value="9c"> <input type="submit"

onclick="javascript:zeigeKlasse('9d')" class="submitreg" value="9d"> <input type="submit"

onclick="javascript:zeigeKlasse('9e')" class="submitreg" value="9e"><br><input type="submit"

onclick="javascript:zeigeKlasse('10a')" class="submitreg" value="10a"> <input type="submit"

onclick="javascript:zeigeKlasse('10b')" class="submitreg" value="10b"> <input type="submit"

onclick="javascript:zeigeKlasse('10c')" class="submitreg" value="10c"> <input type="submit"

onclick="javascript:zeigeKlasse('10d')" class="submitreg" value="10d"><br><input type="submit"

onclick="javascript:zeigeKlasse('Nicht mehr Schüler')" class="submitreg" value="Nicht mehr Schüler">
END;
} else {
      $sql = "SELECT * FROM users WHERE UserKlasse='.$_GET[UserKlasse].'";

      $result = mysql_query($sql);
     
if (!$result) {
    echo "Anfrage ($sql) konnte nicht ausgeführt werden : " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "Keiner aus dieser Klasse angemeldet";
    exit;
}
echo '<table width="100%" align="center" cellpadding="0" cellspacing="0">';
// Solange eine Zeile mit Daten existiert, wird dies in dem assoziativen Array
// $row abgelegt.
// Anmerkung: Wenn Sie nur eine Zeile erwarten, brauchen Sie keine Schleife.
// Anmerkung: Wenn Sie extract($row) innerhalb der folgenden Schleife
//            verwenden, können Sie damit die Variablen
//            $userid, $fullname und $userstatus erzeugen.
while ($row = mysql_fetch_assoc($result)) {
echo '<tr><td align="left" bgcolor="#CCFFFF" style="border-bottom: 1px solid #000000;">';
echo $row["UserName"];
echo '</td><tr align="right" bgcolor="CCCCFF" style="border-bottom: 1px solid #000000;"><center><a

href="index.php?page=&user=';
echo $row["Username"];
echo '>Userseite</a></center></td></tr>';
}
echo '</table>';
mysql_free_result($result);
}
?>


Zu sehen hier: http://icqnummerndesign.ic.funpic.de/os ... php?page=4 (Auf 9d klicken, da gibts sicher einen User)
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

Re: Community Script

Beitragvon Manuel am 28.12.2007, 17:41

Mal eine andere Frage: Wieso machst du das eigentlich so nervig mit JavaScript? Ich würde komplett darauf verzichten, immerhin geht es doch lediglich darum, die Links anklicken zu können und dafür brauchst du definitiv kein JavaScript. Zudem fehlt dann das optische Feedback (Mauszeiger wird zur Hand), so dass man gar nicht weiss, ob man darauf klicken kann oder nicht. Das würde den Quellcode wesentlich einfacher gestalten und du könntest dich mehr auf die PHP-Fehler konzentrieren.
Unterstützt uns bitte als Dankeschön mit einer täglichen Stimme beim GIGA Homepage Award. Vielen Dank!
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 8740
Registriert: 10.12.2004
Wohnort: Asbach

Re: Community Script

Beitragvon Ingo am 28.12.2007, 17:42

Und wenn du
Code: Alles auswählen
$sql = "SELECT * FROM users WHERE UserKlasse='.$_GET[UserKlasse].'";

// $sql lautet mit Punkten: SELECT * FROM users WHERE UserKlasse='.9d.'

ohne die Punkte schreibst ?
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 560
Registriert: 01.04.2007
Wohnort: Neuss/NRW

Re: Community Script

Beitragvon =Max= am 28.12.2007, 17:47

Habe das problem jetzt gelöst siehe: http://icqnummerndesign.ic.funpic.de/os ... rKlasse=9d

Und zwar lautet die Zeile nun so:

Code: Alles auswählen
      $sql = "SELECT * FROM users WHERE UserKlasse = '$_GET[UserKlasse]'";


Nur leider sieht das ganze jetzt wirklich etwas komsich aus ;)

Ok habe das auch gelöst ;)

Danke an alle die ein bisschen zur Lösung beigetragen haben...
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

Re: Community Script

Beitragvon Ingo am 28.12.2007, 18:10

Schön, dass es erst einmal läuft ;o) - Noch'n Nachtrag: Die Sache mit dem JavaScript ist in der Tat
hier nicht nötig und die Liste im php-Text nicht soooo wartungsfreundlich; alternative Idee:
Code: Alles auswählen
$stufen = array();
array_push($stufen,array('5a','5b','5c','5d','5e'));
array_push($stufen,array('6a','6b','6c','6d','6e'));
array_push($stufen,array('7a','7b','7c','7d','7e'));
array_push($stufen,array('8a','8b','8c','8d','8e'));
array_push($stufen,array('9a','9b','9c','9d','9e'));
array_push($stufen,array('10a','10b','10c','10d','10e'));

foreach($stufen as $klassen)
{
  foreach($klassen as $k)
    echo '<a href="./index.php?page=4&UserKlasse='.$k.'" class="submitreg">'.$k."</a>\n";
 
  echo "<br>\n";
}

echo '<a href="./index.php?page=4&UserKlasse=Nicht mehr Schüler" class="submitreg">Nicht mehr Schüler'."</a>\n";

Grüße, Ingo
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 560
Registriert: 01.04.2007
Wohnort: Neuss/NRW

Re: Community Script

Beitragvon =Max= am 29.12.2007, 17:12

Wiedermal habe ich keine Lust, ein neues Thema zu eröffnen, da dann alles beisammen ist ;). So nun habe ich soweit das wichtigste fertig. Nun möchte ich in meinem Script noch was hinzufügen. Und zwar sollte sich jeder User, so wie in einem Forum auch ein Avatar hochladen können. Leider habe ich keine Ahnung wie ich das anstellen soll... Ich denke mal ein Bildupload auf der Profil bearbeiten Seite wäre sinnvoll... Naja irgendwie muss zumindest der Link zum Bild in der Mysql-Tabelle des User gespeichert werden oder ? Um ein paar Tipps wäre ich wieder sehr hilfreich

->Ein ganzer Code nützt mir ja wneig wenn ich ihn nicht verstehe :P

Lg und frohes Neues (naja bald),

Max
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

Re: Community Script

Beitragvon =Max= am 29.12.2007, 20:41

Hat den niemand einen Rat für mich... XD Hier sind doch so viele Checker ;)
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

Re: Community Script

Beitragvon Basti am 29.12.2007, 21:54

Ja, das hast du schon richtig erkannt. Am einfachsten ist es, einfach den Dateinamen der Grafik zu speichern und alle Avatare dann in ein bestimmtes Verzeichnis hochzuladen.

Bei Benutzeravataren würde ich es dann sogar so machen, dass du die Avatare mit Benutzer-IDs speicherst (nach dem hochladen), sodass keine Grafik überschrieben werden kann (z.B. "user_85.gif").

Ansonsten solltest du dir für den Upload mal den PHP Befehl move_uploaded_file() ansehen.
Den Dateiupload selbst kannst du mit einem Formular mit einem Input-Feld des Typs "file" und einer speziellen Angabe beim Formtag vornehmen.

Code: Alles auswählen
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="upload" />
</form>


Eigentlich solltest du so mit ein wenig Eigenrecherche schon viel schaffen. Ansonsten findest du auch noch viele Beispiele im Internet, da das Thema ja nicht selten ist ;)
Benutzeravatar
Basti
Moderator
 
Beiträge: 1880
Registriert: 15.06.2006
Wohnort: Rheinbreitbach

Re: Community Script

Beitragvon =Max= am 29.12.2007, 22:12

Joa, mir gings auch nur um das speichern in mysql ;) Ich hab blos immer ein blödes Problem mein Communtiy Script baut auf einem tutorial :roll: auf. Leider ist das ein blödes tutorial was zwar mit sessions arbeitet, man aber nicht den Namen z.b. durch $session[UserName] ausgeben kann... Das Tutorial das ich benuttz habe ist ach man jetzt finde ich es nicht mehr... Blöd.. Vlt sollte ich mein Login umstellen auf das Tutorial von Der-Webdesigner irgendwie erscheint mir das sinnvoller XD
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

Re: Community Script

Beitragvon =Max= am 30.12.2007, 22:27

Irgendwie muss ich zugeben, habe ich kein Plan wie ich das mit dem Bildupload machen soll, da ich damit wirklich noch nie gearbeitet habe. Könnte mir jemand einen kleinen Schubser geben :oops: :cry: :engel: :? :(

LG;
max...
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

Re: Community Script

Beitragvon Basti am 30.12.2007, 23:54

Naja, einen Ansatz habe ich dir ja schon gegeben. Klar stößt man bei so etwas immer wieder auf neue Sachen, die man vorher noch nicht so gemacht hat, aber das ist ja bei jedem so.

Wenn du mal ein wenig über's Internet recherchierst findest du wirklich eine Menge an fertigen Scripten, die du dir ansehen kannst und von denen du etwas dazulernen kannst bzw. das ein oder andere "abgucken".

Ich will dich zwar jetzt nicht entmutigen, aber ein bisschen könntest du ja doch selbst machen ;)
So lernt man auch noch immer am besten.

Für den Anfang ist hier mal ein Link, wobei das Script auch nicht unbedingt perfekt ist, da es mit $_REQUEST arbeitet, aber das kannst du dann ja einfach durch $_POST ersetzen.

http://www.webmaster-resource.de/tricks ... hladen.php

Ich hoffe das hilft dir schon einmal weiter. Ein wenig Eigenarbeit wird es trotzdem noch sein.
Benutzeravatar
Basti
Moderator
 
Beiträge: 1880
Registriert: 15.06.2006
Wohnort: Rheinbreitbach

Re: Community Script

Beitragvon =Max= am 31.12.2007, 16:14

Ok, danke, habe nun das Script "zu Herzen genommen" und das daraus gemacht:

Code: Alles auswählen
<?php
if(angemeldet() == true) {

if($_POST['Send'])
{
    if($_FILES['Datei']['tmp_name'])
    {
        echo"Ihre Datei (&quot;",
            $_FILES['Datei']['name'],
            "&quot;) ist ",
            $_FILES['Datei']['size'],
            " Bytes groß.";

        move_uploaded_file($_FILES['Datei']['tmp_name'], "upload/".$_FILES['Datei']['name']);
    $sql = "UPDATE tbl_benutzer SET UserAvatar= '$_FILES[Datei][tmp_name]' WHERE benutzername = '$_SESSION[benutzername]'";
      $result = mysql_query($sql);
     
if (!$result) {
    echo "Anfrage ($sql) konnte nicht ausgeführt werden : " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "Fehler! Du bist wahrscheinlich nicht mehr angemeldet, logge dich zunächst wieder ein.";
    exit;
}

if ($result) {
echo "Dein Avatar wurde geupdatet";
}

    }
    else
    {
        echo"Bitte geben Sie eine Datei an!";
    }
}
else
{
?>


<form action="index.php?panel=12" enctype="multipart/form-data" method="post">
<input name="Datei" type="file"><br>
<input name="Send" type="submit" value="Upload">
</form>


<?php
}
} else {
echo 'Du musst angemeldet sein, um diese Seite betreten zu dürfen!';
}
?>


Das Bild wird hochgeladen, aber in der Datenbank speichert sich nur ungefähr das: Array[tmp_name]

Ich weiß wieder nicht, weil ich davon sowieso wenig (also jetzt mehr als vorher) Ahnung habe.
Help me please!

Lg und einen guten Rutsch, Max
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

Re: Community Script

Beitragvon =Max= am 31.12.2007, 16:22

Ok das habe ich wieder gelöst (Man ich poste immer zu schnell... XD) Naja ok, nun habe ich noch ein Problem: Wenn es zu dem Bescheuerten zufall kommen sollte, dass ein user ein Avatar hochläd, was genauso heißt wie das eines andere wird dies ja überschrieben. Wie kann ich das verhindern? Das mit der ID war schon ein guter Vorschlag, blos welche Funktion wäre das? Denn mehr als readdir und opendir kenn ich nicht ;)
=Max=
Mitglied
 
Beiträge: 399
Registriert: 14.01.2007

VorherigeNächste

Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast