• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP auf MySQL "Zugriff verweigert"

Status
Für weitere Antworten geschlossen.

Fame

Neues Mitglied
Guten Abend,
ich sitze eigentlich schon den ganzen Tag an diesem Problem, nun hoffe ich mal ihr könnt mir helfen.

Infos: Habe via XAMPP nen Apache Webserver laufen, PHP4 läuft und MySql auch. Kann auf die Datenbank via SQL Developer zugreifen und phpMyAdmin ebenfalls.

Problem:
Ich will die Datenbank um ein paar Einträge erweitern, aber immer komm ich auf ne 404 Error Site mit dem Titel "Zugriff verweigert".

Hier der Code bzgl der DB Verbdinung, welche includet wird:
PHP:
<?php

$server = "127.0.0.1:3306";
$user = "root";
$pass = "******";

$db = mysql_pconnect($server, $user, $pass);

if ($db) {

echo "<b>OPEN</b> mysql-handle: " . $db;

}

else { echo "Error Database Connection"; }

mysql_select_db("finanzanalyse");

?>
Die Verbindung klappt und keine Fehler Meldung.

Nun das der Code bzgl. den Einträgen:
PHP:
<?php include('open.php');

//Neuer Kunde anlegen

if (isset($_POST['senden'])) {
    
    if ($_POST['knummer'] != "") {
    
        $knummer = $_POST['knummer'];
        $name = $_POST['name'];
        $vorname = $_POST['vorname'];
        $strasse = $_POST['strasse'];
        $plz = $_POST['plz'];
        $wohnort = $_POST['wohnort'];
        $email = $_POST['email'];
        $teleprivat = $_POST['telep'];
        $tele = $_POST['tele'];
        $mobil = $_POST['mobil'];
        $geschlecht = $_POST['geschlecht'];
        $familienstand = $_POST['familienstand'];
        $gebdatum = $_POST['gebdatum'];
        $kinderfreibeitraege = $_POST['kinderfreibeitraege'];
        
        $query = "insert into fa_personalien set KNUMMER = '$knummer', NAME = '$name', VORNAME = '$vorname', STRASSE = '$strasse',                                                                              PLZ = '$plz', WOHNORT = '$wohnort', EMAIL = '$email', 
                                                        TELEPRIVAT = '$teleprivat', TELE = '$tele', MOBIL = '$mobil', 
                                                        GESCHLECHT = '$geschlecht', FAMILIENSTAND = '$familienstand', 
                                                        GEBDATUM = '$gebdatum', KINDERFREIBEITRAEGE = '$kinderfreibeitraege'";
        echo $query;
        $result = mysql_query($query);
        
    }
    
    else { echo "KEINE KUNDENNUMMER EINGEGEBEN !!<br>"; }
    
    print mysql_error();
    
}                                                
        

/////////////////////////////Ende neuer Kunde

echo "<html>\n";
echo "<head>\n";
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />\n";
echo "<title>Personalien</title>\n";
echo "</head>\n";
echo "<body>\n";
echo "<form method='post' action='<?php echo $PHP_SELF; ?>'>\n";
echo "<table width='600px' height='350px'>\n";
echo "  <tr>\n";
echo "        <td>Kundennummer: <input name='knummer' type='text' size'8px' maxlength='5'></td>\n";
echo "      <td>Name: <input name='name' type='text' size='20px' maxlength='20'></td>\n";
echo "        <td>Vorname: <input name='vorname' type='text' size='20px' maxlength='20'></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "      <td>Straße: <input name='strasse' type='text' size='20px' maxlength='20'></td>\n";
echo "        <td></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "      <td>PLZ: <input name='plz' type='text' size='20px' maxlength='20'></td>\n";
echo "        <td>Wohnort: <input name='wohnort' type='text' size='20px' maxlength='20'></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "      <td>EMail: <input name='email' type='text' size='20px' maxlength='20'></td>\n";
echo "        <td>Tele privat:<input name='telep' type='text' size='20px' maxlength='20'></td>\n";
echo "        <td>Tele: <input name='tele' type='text' size='20px' maxlength='20'></td>\n";
echo "        <td>Mobil: <input name='mobil' type='text' size='20px' maxlength='20'></td>";
echo "  </tr>\n";
echo "  <tr>\n";
echo "      <td>Geschlecht:</td>\n";
echo "        <td>mänlich <input name='geschlecht' type='radio' value='m'></td>\n";
echo "        <td>weiblich <input name='geschlecht' type='radio' value='w'></td>\n";
echo "  </tr>\n";
echo "    <tr>\n";
echo "    <td>&nbsp;</td>\n";
echo "    </tr>\n";
echo "    <tr>\n";
echo "        <td>Familienstand:</td>\n";
echo "        <td>ledig <input name='familienstand' type='radio' value='ledig'></td>\n";
echo "        <td>verheiratet <input name='familienstand' type='radio' value='verheiratet'></td>\n";
echo "        <td>geschieden <input name='familienstand' type='radio' value='geschieden'></td>\n";
echo "    </tr>\n";
echo "    <tr>\n";
echo "        <td width='20px'>&nbsp;</td>\n";
echo "        <td>verwitwet <input name='familienstand' type='radio' value='verwitwet'></td>\n";
echo "    </tr>\n";
echo "    <tr>\n";
echo "        <td>Geburtsdatum: <input name='gebdatum' type='text' size='20px' maxlength='20'></td>\n";
echo "        <td>Kinderfreibeiträge: <input name='kinderfreibeitraege' type='text' size='20px' maxlength='20'></td>\n";
echo "    </tr>\n";
echo "    <tr>\n";
echo "        <td><input name='senden' type='submit' value='Anlegen' />
            &nbsp;
            <input name='weiter' type='submit' value='Weiter' /></td>\n";
echo "    </tr>\n";
echo "</table>\n";
echo "</form>\n";
echo "</body>\n";
echo "</html>\n";

?>

PS: Bei phpMyAdmin habe ich auch nach geschaut, root hat alle rechte!

mfg
Fame
 
wenn dus nicht vorher definiert hast gibts das nicht :
PHP:
  $PHP_SELF
der befehl heisst
PHP:
 $_SERVER['PHP_SELF']
 
Erstmal danke für die schnelle Antwort!
Habe ich direkt mal den Laptop wieder angeworfen.

Aber was kommt in die Variable rein?

***EDIT***
Liegt das daran das ich immer die Fehler Meldung bekomme bzgl. Zugriff verweigert ?
 
in die Variable kommt nix rein, ersetz sie einfach durch $_SERVER['PHP_SELF']

könnte sei, da 404 ein error ist wenn er die datei nicht findet.
403 wäre zugriff verweigert
 
Alles klar habe ich gemacht, nun bekam ich diese Meldung:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\*******\personalien.php on line 48

und das die Zeile in der ich das gerade geändert habe:

PHP:
echo "<form method='post' action='<?php echo $_SERVER['PHP_SELF']; ?>'>\n";
 
du kannst die <?php ?> Klammern und das echo weglassen bis ja schon im php und in einem echo auch.

also einfach:
" . $_SERVER['PHP_SELF'] . "

die " um den string zu beenden, dass er weiss jetzt kommt eine variable und der . um beide strings aneinanderzuhängen.

EDIT : den ; kannst du auch weglassen ;)
 
Hej super! Hat geklappt vielen dank füe die schnelle Hilfe! ;Jump

Das $_SERVER['PHP_SELF'] was bewirkt das?
Ich dachte das würde das php script neu laden, aber anscheinend hat es was mit dem Server zu tun.
 
Hej super! Hat geklappt vielen dank füe die schnelle Hilfe! ;Jump

Das $_SERVER['PHP_SELF'] was bewirkt das?
Ich dachte das würde das php script neu laden, aber anscheinend hat es was mit dem Server zu tun.
Es sagt PHP, dass die Formulardaten nicht mit einer externen Datei (action="datei.php") verarbeitet wird, sondern mit sich selbst. So ist es mir jedenfalls bekannt.
 
Ahh vestehe, ich lerne das ja gerade, koregiert mich wenn ich mich irre...
aber wenn ich dann nen weiter (Submit) Button mache, den dann nen noch nen onClick Javascript anhänge, der von der form die action von $_SERVER['PHP_SELF'] auf ne andere php Datei weiter leite, so die Daten dann sammeln kann und am Ende dann komplett ausgeben könnte ?
 
also $_SERVER['PHP_SELF'] ist einfach eine Variable die den Namen des gerade abarbeitenden Scripts beeinhaltet.
Bedeutet soviel wie, das Script solls die Daten an sich selber verschicken.
kannst ja im erzeugten HTML Code nachsehen, das steht dann einfach nur der Dateiname drinnen ( z.b. action = "kunde.php" )

wenn die Datei aber in einem unterverzeichnis liegt musst du glaub ich die Ordner davor wegfiltern.

was du mit deinem WeiterButton meinst, weiss ich nicht ganz.
vl. nochmal genauer erklären oder vl. hab ich gurken auf den augen :D
 
Ok das hats noch deutlicher gemacht ;)

Weiter Button in so fern, das man dann auf die nächste Seite kommt und weiter Daten eingeben kann. Wenn man z.B. nict Nur einen neuen Kunden anlegen will.
 
kannst ja 2 buttons machen.
einen "Kunde anlegen und fertig"
und den anderen "Kunde anlegen + noch einen anlegen"

halt so in der art. und das script ruft sich dann halt selbst wieder auf.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben