php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.09.2007, 19:13  
Neuer Benutzer
 
Registriert seit: 03.09.2007
Beiträge: 8
Pflaume91
Pflaume91 eine Nachricht über AIM schicken
Standard problem mit einer datenbank

Hallo zusammen,
ich habe bei www.funpic.de einen Webspace und habe vor ein paar wochen aus einem Buch, das ich gelesen habe einen code für ein Gästebuch. So nun habe ich das Problem, dass das Gästebuch nicht richtig tut. Das heißt in meiner umgeschriebenen form schon aber ich hätte gern, das die Einträge in einer Datenbank gespeichert werden.. leider weiß ich nicht wie das funktioniert! ich habe den kompletten Code hier mit dem es eigentlich in der datenbank gespeichert werden müsste.

Hier der code für die eingabe:
Code:
<html>
<head>
<link rel="stylesheet" type="text/css" href="chat.css">

<script type="text/javascript">

/* Beitrag senden, falls Name und Beitrag vorhanden */
function send()
{
   if(document.f.nick.value != "" &&
      document.f.beitrag.value != "")
      document.f.submit();
}

/* Chat-Anzeige aktualisieren */
function reload()
{
   parent.ausgabe.location.href = "chat_aus.php";
}

</script>

</head>
<body>

<?php

/* Anhängen des neuen Textes, falls vorhanden */
if(isset($_POST["beitrag"]))
{
   mysql_connect("","root");
   mysql_select_db("chat");
   mysql_query("insert daten (nick, beitrag) values ('"
    . $_POST["nick"] . "', '" . $_POST["beitrag"] . "')");

   /* Chat-Anzeige aktualisieren */
   echo "<script type='text/javascript'>";
   echo "reload();</script>";
}
?>

<form name="f" action="chat_ein.php" method="post">
<table>
   <tr>
      <td>Ihr Name:</td>
      <td><input name="nick"
         <?php
           if(isset($_POST["nick"]))
             echo "value='" . $_POST["nick"] . "'";
         ?>
         size="20"></td>
      <td align="center">
         Chat laden
      </td>
      <td align="right">
         Senden
      </td>
   </tr>

   <tr>
      <td valign="top">Ihr Beitrag:</td>
      <td colspan="3">
         <textarea cols="50" rows="2" name="beitrag"></textarea>
      </td>
   </tr>
</table>
</form>

</body>
</html>
und der code für die ausgabe:

Code:
<html>

<head>
<link rel="stylesheet" type="text/css" href="chat.css">
</head>

<body>
<h3>Chat</h3>

<?php

/* Datei mit chat-Daten auslesen */
mysql_connect("","root");
mysql_select_db("chat");
$res = mysql_query("select * from daten order by zeit desc");

if(mysql_num_rows($res)>0)
{
   echo "<table>";
   echo "<tr><td>Zeit</td>";
   echo "<td>Name</td>";
   echo "<td>Beitrag</td></tr>";

   while($dsatz = mysql_fetch_assoc($res))
   {
      $z = $dsatz["zeit"];
      $zs = substr($z,8,2) . "." . substr($z,5,2)
         . "." . substr($z,0,4) . " " . substr($z,11);
      echo "<tr>";
      echo "<td>$zs</td>";
      echo "<td>" . $dsatz["nick"] . "</td>";
      echo "<td>" . $dsatz["beitrag"] . "</td>";
      echo "</tr>";
   }

   echo "</table>";
}

?>
</body>
</html>
und jetzt nochmal meine frage warum kommt wenn ich das bei funpic hochlade die ganze zeit diese fehlermeldung??

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/export/www/vhosts/funnetwork/hosting/thomasneu/tests/tests2/chat_aus.php on line 13

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/export/www/vhosts/funnetwork/hosting/thomasneu/tests/tests2/chat_aus.php on line 14

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /usr/export/www/vhosts/funnetwork/hosting/thomasneu/tests/tests2/chat_aus.php on line 14

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/export/www/vhosts/funnetwork/hosting/thomasneu/tests/tests2/chat_aus.php on line 15

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /usr/export/www/vhosts/funnetwork/hosting/thomasneu/tests/tests2/chat_aus.php on line 15

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/thomasneu/tests/tests2/chat_aus.php on line 17


und es werden keine einträge gespeichert oder ausgegeben ..

und danke schon mal im voraus
__________________
.......
Pflaume91 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.09.2007, 19:36  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo und herzlich willkommen im Forum!

Wie dir die Fehlermeldung eigentlich sagt, kann keine MySQL Verbindung hergestellt werden.
Ich glaube bei Funnpic ist es so, dass der Username mit dem du dich angemeldet hast auch dem deines Datenbank-Users entspricht.

PHP-Code:
<?php
[..]
mysql_connect("","root");
   
mysql_select_db("chat");
   
mysql_query("insert daten (nick, beitrag) values ('"
    
$_POST["nick"] . "', '" $_POST["beitrag"] . "')");
[..]
Du stellst die Verbindung aber als "root" her. Außerdem gibst du gar keinen Server oder Passwort an?
Die Zeile müsste wahrscheinlich so richtig sein:
mysql_connect('localhost','thomasneu', 'deinpasswort');
Darüber hinaus muss die Datenbank "chat" natürlich auch existieren. Ich glaube das du auch hier einen Fehler im Script hast. Bei Shared Hosting angeboten kann man die Namen der Datenbanken meist nicht selbst bestimmen.
Wahrscheinlich heißt die Zeile "mysql_select_db("thomasneu");" ...
Wenn du nicht genau weißt wie eine Funktion funktioniert, kann man _jede_ Funktion im PHP-Manual einsehen.
Guck dir einfach mal http://de2.php.net/manual/de/functio...-select-db.php an.
Dort ist der korrekte Verbindungsaufbau beschrieben.

Aber da hören die Fehler leider nicht auf! Du hast eine große Sicherheitslücke in deinem Script. Du trägst direkt die Werte aus einem Formular in deine Datenbank ein - ohne jede Sicherheitsüberprüfung.

Ich empfehle dir dich erst einmal genauer mit PHP auseinanderzusetzen.
Gute Bücher für Anfänger gibt es schon für 10€!

Viel Spaß dabei,
phpdummi
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline  
Alt 03.09.2007, 21:36  
Neuer Benutzer
 
Registriert seit: 03.09.2007
Beiträge: 8
Pflaume91
Pflaume91 eine Nachricht über AIM schicken
Standard

hallo phpdummi,
was meinst du mit Sicherheitslücke? Meinst du damit, dass man etwas an dem Script drehen könnte? Oder das Jemand meine daten herausfindet? oder etwas ganz anderes??

Und zu der sache mit den Büchern ja ich weiß die sind nicht teuer aber auch manchmal so Geschrieben, dass man sie als Anfänger nicht versteht!
Das ist meine Meinung zu den Büchern... kann jeder ne andere haben!

Da fällt mir noch ein, dass ich ja dann nicht auf die Datenbank zugreifen kann.. um zum beispiel beiträge zu löschen. Oder doch?
Gibt es auch eine möglichkeit die beiträge zu einer datenbank die ich selbst erstellt habe zu schicken?
Weil ich habe genau auch aus diesem buch eine CD auf der das Programm XAMPP wenn dir das was sagt. damit kann man datenbanken erstellen, das ist wiederum im Buch beschrieben nur habe ich das nicht wirklich verstanden!
__________________
.......
Pflaume91 ist offline  
Alt 04.09.2007, 09:21  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Also wenn du nichtmal weisst wie du dich mit der Datenbank verbindest, dann hast du sie bestimmt auch nicht angelegt oder? Bei Funpic könntest du das mit dem vorhandenen phpMyAdmin machen.

Zu der Sicherheitslücke die phpdummy angesprochen hat kannst du mal zum Stichwort SQL Injection googeln.
cycap ist offline  
Alt 04.09.2007, 09:57  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Auch ein herzliches Willkommen von mir

Hier ein paar Infos zu SQL-Injektion (sehr wichtig!) und ein kleines Tutorial, welches dein Verständnis zu PHP und MySQL erheblich aufbessert.

SQL-Injektion bei Wikipedia
Einigermaßen gutes Anfänger Tutorial in Sachen PHP

Nebenbei, XAMPP erstellt keine Datenbanken XAMPP ist ein lokaler Apache-Server, welcher dir die Möglichkeit gibt, PHP-Dateien richtig intepretieren zu lassen, also vom Server parsen, damit alles richtig angezeigt werden kann. Zudem ist dort auch ein MySQL-Server mit dabei. Zum Verwalten gibt es dort das umläufige phpMyAdmin.

Mehr Infos:
Apache Friends

Hoffe das hilft weiter.

Dein Code sieht weng mehr nach Chat aus, als nach nem Gästebuch. Aber so genau schaute ich mir das net an

Grüße
Da Psy
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline  
Alt 04.09.2007, 11:05  
Neuer Benutzer
 
Registriert seit: 03.09.2007
Beiträge: 8
Pflaume91
Pflaume91 eine Nachricht über AIM schicken
Standard

hmmm.. ja im Buch is das auch als chat ausgeschrieben aber ich werde es als gästebuch nutzen und umschreiben.... un danke fr eure antworten
__________________
.......
Pflaume91 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
problem mit gleiche datenbank inhalte auslesen miwo PHP Tipps 2008 3 17.09.2007 14:35
While schleife mit Datenbank in ein Dropdown Feld (Umlaut Problem) kintaro PHP Tipps 2008 6 28.08.2007 19:11
Problem bein sortieren aus einer Datenbank FireFIghter PHP Tipps 2006 8 21.02.2006 20:58
Problem mit MySQL Datenbank mar8125 PHP Tipps 2006 5 06.02.2006 22:18
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
Datenbank Problem? Datenbanken 2 04.08.2005 14:53
PHP Datenbank Problem PHP Tipps 2005-2 14 24.06.2005 13:09
[Erledigt] Such Problem mit MySql Datenbank PHP-Fortgeschrittene 9 25.10.2004 20:05
Problem bei Datenbankeintragung mit Zeit Skazi PHP Tipps 2004 4 20.09.2004 17:22
Problem mit Datenbank und Datum (Daten rausholen) PHP Tipps 2004 3 26.08.2004 13:38
Problem bei Einträgen in die Datenbank PHP Tipps 2004 11 04.07.2004 17:52
Problem beim Füllen von Formularfeldern aus Datenbank PHP Tipps 2004 3 25.06.2004 13:44
Wider ein Datenbank problem!! b++ PHP Tipps 2004 3 21.06.2004 13:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datenbank chat, function send() { if (document.f.nick.value!=\\&& document.f.beitrag.value!=\\) document.f.submit(); }, funpic warning: mysql_connect(), can\'t connect to local mysql server through socket \'/tmp/mysql.sock\' psycho

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.