# mySQL Zugriff verweigert



## Akcsyndrom (17. Januar 2010)

Hallo 

ich binn daran ein Gästebuch zu programmieren.
nun hab ich alles wo weit okey... nun ist das problem das wenn ich es via iframe einbaue in meine seite das der sagt ''Zugriff verweigert"
könnt Ihr mir da sagen wo das problem liegt?

Danke
http://irep.square7.ch/iRep-iPhone1/bewertungen.php
Hier der Script

```
<?php

                          

echo "<body bgcolor='#F3F1E7'><h1>Bewertung</h1><hr noshade>";



$connect = mysql_connect("localhost","irep","Hier steht mein p.w drinnen") or die (mysql_error());

mysql_select_db("gastebuch")or die (mysql_error());



$query = mysql_query("SELECT * FROM gastebuch ORDER BY id DESC") or die (mysql_error());



$querygetrownum = mysql_num_rows($query);

if ($querygetrownum==0)

    echo"Es sind noch keine Eintr&auml;ge vorhanden";

while ($row = mysql_fetch_assoc($query))

{

    $id = $row['id'];

    $name = $row['name'];

    $email = $row['email'];

    $nachricht = $row['nachricht'];

    $datum = $row['datum'];

    $zeit = $row['zeit'];

    

    echo"

    <table bgcolor='#D4CCAA' cellpadding='5' border=0 style='border: 2px solid red; width: 85%'>

    <tr>

        <td>

        <b>Von $name<br>

        eMail:<a href='mailto:$email'>$email</a><br>

        am $datum um $zeit</b><p>

        </td>

    </tr>

    <tr>

        <td>

        ".nl2br(strip_tags($nachricht))."

        </td>

    </tr>

</table><p>

";

    

}



echo "<hr noshade>";



if ($_POST['submit'])

{                         

    $name = $_POST['name'];

    $email = $_POST['email'];

    $nachricht = $_POST['nachricht'];

    $datum = date("Y-m-d");

    $zeit = date("H:i:s");

    if ($name&&$email&&$nachricht)

    {

        $querypost = mysql_query("INSERT INTO gastebuch VALUES('','$name','$email','$nachricht','$datum','$zeit')");

        echo "Bitte warten...<meta http-equiv='refresh' content='2'>";

    

    }

    else

        echo ("Bitte alle Felder ausf&uuml;llen");

}





echo"

<form action='gastebuch.php' method='POST'>

Name:<br><input type='text' style='font-family:aril' name='name' maxlength='25'><br>

eMail:<br><input type='text'  name='email' maxlength='35'><br>

Nachricht:<br><textarea cols='20' rows='2' name='nachricht' minlength='250' maxlength='250'></textarea><p>

<input type='submit' name='submit' value='ver&ouml;ffentlichen' />



</form>";











?>
```


----------



## ZodiacXP (17. Januar 2010)

Das ist PHP und eine simple Suche bei Google zeigt dir das die Benutzerdaten falsch seien müssen. Ich vermute es muss "iRep" heißen.
Bitte den Gockel nutzen.


----------



## Akcsyndrom (17. Januar 2010)

ZodiacXP hat gesagt.:


> Das ist PHP und eine simple Suche bei Google zeigt dir das die Benutzerdaten falsch seien müssen. Ich vermute es muss "iRep" heißen.
> Bitte den Gockel nutzen.



nein die benutzerdaten sind richtig das ist jah das problem


----------



## Quasimodos Klon (17. Januar 2010)

Mit dem IFrame hat das nichts zu tun, der Fehler tritt auch beim direktaufruf über http://irep.square7.ch/iRep-iPhone1/gastebuch.php auf. 
Ich vermute den Fehler in der Zeile
mysql_select_db("gastebuch")or die (mysql_error()); 

Du bist bei bplaced gehostet und dort ist der Name der ersten Datenbank gleich dem Usernamen, also "irep". Wenn Du eine weitere Datenbank "gastebuch" angelegt hast, dann ist der Name "irep_gastebuch".

LG Quasi


----------



## MArc (17. Januar 2010)

HeyHo,

das kann daran liegen, dass du dich vertippst bei den
Zugangsdaten oder daran, dass bei deinem MySQL-User
der Host eingeschränkt würde auf xy (und du von einem anderen darauf zugreifst).
Das siehst du wunderbar in phpmyadmin - unter "Rechte".

Grüße,
MArc


----------



## Akcsyndrom (17. Januar 2010)

Quasimodos Klon hat gesagt.:


> Mit dem IFrame hat das nichts zu tun, der Fehler tritt auch beim direktaufruf über http://irep.square7.ch/iRep-iPhone1/gastebuch.php auf.
> Ich vermute den Fehler in der Zeile
> mysql_select_db("gastebuch")or die (mysql_error());
> 
> ...



http://irep.square7.ch/iRep-iPhone1/bewertungen.php

wenn ich irep_gastebuch eingebe! geht auch nix !

da steht jah name der datenbank irep ^^ 

http://irep.square7.ch/iRep-iPhone1/pic.php


----------



## Quasimodos Klon (17. Januar 2010)

Was steht denn im bplaced-Admininterface unter MySQL-Datenbanken genau eingetragen in den Feldern Datenbank & Benutzername? Groß-/Kleinschreibung beachten.

EDIT:
Ok, hat sich dann wohl während des Tippens erledigt.
PS: Für günstige Brillen wird ja ausreichend Werbung im Fernsehen gemacht.


----------



## Akcsyndrom (18. Januar 2010)

MArc hat gesagt.:


> HeyHo,
> 
> das kann daran liegen, dass du dich vertippst bei den
> Zugangsdaten oder daran, dass bei deinem MySQL-User
> ...



Hmm.... in meinem myphpadmin sehe ich nirgends rechte ´´


----------



## MArc (18. Januar 2010)

Oh, ja, wie Quasi geschrieben hat, bist du auf einem Freehoster - Dort sieht man i.d.R. die Rechteverwaltung nicht, da die
Benutzerkonten vollautomtisiert verwaltet werden.

Ich kenne nun diesen Freehoster nicht, aber bist du sicher, dass die MySql-Datenbank lokal - auf localhost läuft ?
Falls diese Logindaten auch in anderen Skripten nicht funktionieren, solltest du derren Support mal kontaktieren,
falls aber die Daten in anderen Skripten laufen, solltest du mal schauen, auf welchen Server die sich verbinden.

MArc


----------



## Akcsyndrom (18. Januar 2010)

MArc hat gesagt.:


> Oh, ja, wie Quasi geschrieben hat, bist du auf einem Freehoster - Dort sieht man i.d.R. die Rechteverwaltung nicht, da die
> Benutzerkonten vollautomtisiert verwaltet werden.
> 
> Ich kenne nun diesen Freehoster nicht, aber bist du sicher, dass die MySql-Datenbank lokal - auf localhost läuft ?
> ...


http://irep.square7.ch/iRep-iPhone1/pic.php
daa steht local ^^ xD ... jah der kack freehoster ist ab morgen adee^^ ich warte nurnoch auf die aufschaltung meines hooster's


auf xampp hats ohne probleme funktioniert^^


----------



## Quasimodos Klon (18. Januar 2010)

Hab mir die Seite nochmal angesehen. Ok, bei bplaced hast Du wohl nur das JavaScript gehostet. Auf Deiner Seite immer noch die selbe Fehlermeldung mit "gastebuch" als DB-Name. Wie lautet denn der Datenbankname bei spuare7.ch und was steht da zu irgend welchen Prefixes?


----------



## Akcsyndrom (18. Januar 2010)

Quasimodos Klon hat gesagt.:


> Hab mir die Seite nochmal angesehen. Ok, bei bplaced hast Du wohl nur das JavaScript gehostet. Auf Deiner Seite immer noch die selbe Fehlermeldung mit "gastebuch" als DB-Name. Wie lautet denn der Datenbankname bei spuare7.ch und was steht da zu irgend welchen Prefixes?



der Datenbankname lautet irep^^ guckst du da

http://irep.square7.ch/iRep-iPhone1/pic.php


----------



## Quasimodos Klon (18. Januar 2010)

Akcsyndrom hat gesagt.:


> der Datenbankname lautet irep^^ guckst du da
> 
> http://irep.square7.ch/iRep-iPhone1/pic.php



Wieso kommt dann immer noch die Fehlermeldung?


> Access denied for user 'irep'@'localhost' to database '*gastebuch*'



Verwende:
mysql_select_db("*irep*")or die (mysql_error());


----------



## Akcsyndrom (18. Januar 2010)

Quasimodos Klon hat gesagt.:


> Wieso kommt dann immer noch die Fehlermeldung?
> 
> 
> Verwende:
> mysql_select_db("*irep*")or die (mysql_error());


MAN man man !!

DANKE DIR!!

Das wars 

xD omfg... ! ich muss nun ins bett ich sehe nurnoch db's xD

*Close*

ne nix close 

http://irep.square7.ch/iRep-iPhone1/bewertungen.php 

nochn problem:

Wie kann ich das iFrame so machn dass es nicht so klein ist rsp. dasses gross ist und man nicht dauernd scrollen muss'?

hab schon breite und länge auf 800% gestellt wird aber immernoch so kelin angezeigt -.-


----------



## MArc (18. Januar 2010)

Wieso machst du statt dem "<iframe src=bla" nicht einfach <?php inlcude( 'guestbook.php') =>
Dann brauchste keine extra Scrollbalken.


----------



## Akcsyndrom (18. Januar 2010)

Da hast du auch wida recht!

Danke dir!

ABER wenn ich auf absenden drücke dann öffnet der mir sozusagen ne neue seite'' http://www.irep-iphone.ch.vu  Bewertungen ^^


----------



## Quasimodos Klon (18. Januar 2010)

Offtopic:
Noch eine Anmerkung zur Sicherheit...
Dein Script ist noch SQL-Injection-gefährdet. Verwende mysql_real_escape_string() für *alle* Eingangswerte, die Du vom User empfängst.
Am Beispiel von $_POST['name']:


```
$name = $_POST['name'];
// ...

if (get_magic_quotes_gpc())  // GET/POST/COOKIES wurden vom System mit einem Slash escaped?
{
  $name = stripslashes($name);  // Slashes entfernen
  // ...
}

$name = mysql_real_escape_string($name);  // Escape-Zeichen für MySQL-Syntax hinzufügen
// ...

$querypost = mysql_query("INSERT INTO gastebuch VALUES('','$name','$email','$nachricht','$datum','$zeit')");
```
Das läßt sich noch eleganter formulieren, aber das Beispiel soll nur verdeutlichen, was zu tun ist.


----------



## Akcsyndrom (18. Januar 2010)

Akcsyndrom hat gesagt.:


> Da hast du auch wida recht!
> 
> Danke dir!
> 
> ABER wenn ich auf absenden drücke dann öffnet der mir sozusagen ne neue seite'' http://www.irep-iphone.ch.vu  Bewertungen ^^




Hat sicha uch erledigt^^


----------



## Quasimodos Klon (18. Januar 2010)

Akcsyndrom hat gesagt.:


> Da hast du auch wida recht!
> 
> Danke dir!
> 
> ABER wenn ich auf absenden drücke dann öffnet der mir sozusagen ne neue seite'' http://www.irep-iphone.ch.vu  Bewertungen ^^



Das Formular-Ziel kannst Du in <form action="ziel"> festlegen. Du kannst auch die selbe Seite wieder aufrufen, in PHP eine Fallunterscheidung einbauen, ob gerade ein neuer Eintrag gemacht wurde, und die Seite dann entsprechend darstellen. Deiner Kreativität sind da kaum Grenzen gesetzt.

Für die IFrame-Variante gibt es die Attribute <iframe width="breite" height="höhe">
http://de.selfhtml.org/html/frames/eingebettete.htm

und ebenso <textarea cols="spalten" rows="zeilen">
http://de.selfhtml.org/html/formulare/eingabe.htm#bereiche

EDIT:
Und noch besser: Du designst alle Eingabeelemente mittels CSS, ebenfalls alles bei SelfHTML nachzuschlagen.


----------

