Newbie Script funzt nicht, Zugriff auf Server verweigert

Alles, was PHP betrifft, kann hier besprochen werden.

Newbie Script funzt nicht, Zugriff auf Server verweigert

Postby X-TC » 01. October 2004 09:56

Hallo zusammen,

vorweg muss ich gleich sagen dass ich absoluter Newbie bin was Server, Datenbanken und PHP angeht. Ich arbeite mich so langsam ein und schreibe momentan Scripts "ab" um sie dann auf dem Apache zu testen.

Folgendes Problem: ich hab ein email-überprüfungs-script aus einem PHP Buch abgetippt und versuche das nun mit XAMPP laufen zu lassen.

Man soll dabei eine Email in ein Formularfeld eingeben und das Script prüft die Angabe auf Richtigkeit (Zeichenfolge, @ usw).
Sobald ich auf "Anfrage senden" klicke lande ich bei einer "Forbidden" Fehlermeldung:

Forbidden
You don't have permission to access /test/< on this server.
--------------------------------------------------------------------------------
Apache/2.0.51 (Win32) mod_ssl/2.0.51 OpenSSL/0.9.7c PHP/5.0.2 Server at localhost Port 80


Das Script sieht folgendermaßen aus:

Code: Select all
<html>
<head>
<title>Email Test</title>
</head>
<body>
<form action = "<?php echo $PHP_SELF; ?> " method="Post">
<p> bitte die zu testende Email Adresse eingeben</p>
<input type="Text" name="email" value="<?php echo $_POST[email]; ?>">
<br>
<input type=submit>
<br><br>
</form>
<?php
$muster = "^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@(a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}$";
if(ereg($muster, $_POST[email]))
{
echo "die Email Adresse ist gültig";
}
else{ echo "die Email Adresse ist nicht gültig";}
?>
</body></html>


Ich weiss nun nicht ob es am Script liegt (kann aber fast nicht sein, hab es wieder und wieder überprüft) oder ob ich irgendwo bei den Servereinstellungen was vergessen habe.

Bin über jede Hilfe dankbar!

PS: Verzeiht wenn das im falschen Forum gelandet sein sollte, denke aber PHP ist wohl am ehesten zutreffend.

PPS: Ach ja, im Formularfeld ist seltsamerweise folgende Zeile eingetragen (da sollte eigentlich nichts drin sein weil da die zu prüfende mail-addy reinkommt):

Code: Select all
<?php echo $_POST[email]; ?>
Image
X-TC
 
Posts: 6
Joined: 01. October 2004 09:30

Postby Wiedmann » 01. October 2004 13:05

So wäre es wohl korrekt:
Code: Select all
<?php
if (!empty($_POST['email'])) {
   $email = $_POST['email'];
} else {
   $email = '';
}
?>
<html>
<head>
<title>Email Test</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>bitte die zu testende Email Adresse eingeben:
<br />
<input type="text" name="email" value="<?php echo $email; ?>" />
<br />
<input type="submit" />
</p>
</form>
<hr />
<?php
$muster = '|^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@(a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}$|';
if(preg_match($muster, $email)) {
   echo '<p>Die Email Adresse ist gültig.</p>';
} else {
   echo '<p>Die Email Adresse ist nicht gültig.</p>';
}
?>
</body>
</html>


Wobei der eigentliche /Fehler/ in dieser Zeile bei dir lag:
<form action = "<?php echo $PHP_SELF; ?> " method="Post">

Das hätte so sein müssen:
<form action = "<?php echo $_SERVER['PHP_SELF']; ?> " method="Post">


Das ganze dann als PHP-Datei abgespeichert und aufgerufen mit "http://localhost/..." und es sollte tun.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby X-TC » 01. October 2004 13:47

Klasse! Nun funktionierts :)

Danke Wiedman!
Image
X-TC
 
Posts: 6
Joined: 01. October 2004 09:30


Return to PHP

Who is online

Users browsing this forum: No registered users and 57 guests