PHP unterseiten erstellen (subdomains)

Wenn du so drauf bestehst kannst du es ja tatsächlich so machen, dass du bei jeder Userregsistrierung einen Ordner mit ner Index Datei anlegst, in der steht, ja das ist ein User (du definierst einfach ein paar Variablen in der User-Index) und dann die eigentliche Index Datei einbindest.

...ist zwar tatsächlich nicht schön, um nicht zu sagen Zweckentfremdung, aber ich denke es würde funktionieren.

http://example.net/Neuer Ordner 1 bzw. http://example.net/Username/

auf dem Server würde das dann so aussehen:

/pfad/zu/deiner/seite/Username

P.S.: die Fehlerbehandlung ist denke ich nicht sehr schön/leicht.
 
Zuletzt bearbeitet:
Code:
<?php

include("db_conn.php");

echo $HTTP_SERVER_VARS["SERVER_NAME"];
$teile = explode(".", $HTTP_SERVER_VARS["SERVER_NAME"]);

$anzahl=count($teile);
$kuerzel=$teile[$anzahl-2-1];

echo "<BR>Es sind $anzahl Teile. Subdomain:<BR>\n".$kuerzel;

if ($kuerzel && $kuerzel!="www")
{
  include ("index.php");
} 

else
{
  include ("ma_index.php");
} 
 ?>

ich löse es jetzt so...

das script zerschnippelt quasi die domain.

dh. wenn die domain. http://www.xzy.de lautet

und vorne dran steht dann

lord.xzy.de

dann zeigt er diesen user an..

jetzt ist das problem wie mache ich diese sql abfrage?

das wenn er das kuerzel hat auch alle anderen daten abfrägt?

Code:
       <?

  
  $s="SELECT * FROM mitarbeiter WHERE kuerzel=$kuerzel";

  $q=mysql_query($s) or die($s."<BR><BR>".mysql_error());
  while($m=mysql_fetch_array($q))
  {
    $s_mitarbeiter="SELECT * FROM mitarbeiter WHERE kuerzel=$m[kuerzel]";
    $q_mitarbeiter=mysql_query($s_mitarbeiter) or die("$s_mitarbeiter<BR><BR>".mysql_error());
    $m_mitarbeiter=mysql_fetch_array($q_mitarbeiter);
   ?> 

<?=$m[email]?>

<?
}
?>

normal müsste er mir doch die e-mail ausgeben das das macht er nicht warum?

als fehler krieg ich das hier

Code:
SELECT * FROM mitarbeiter WHERE kuerzel=d2-1066

Unknown column 'd2' in 'where clause'

hoffe ihr könnt mir helfen das ich die abfrage richtig gestalte
 
ich denke mal so sollte es funktionieren:
PHP:
<?

$kuerzel = mysql_real_escape_string($kuerzel);
$s="SELECT * FROM `mitarbeiter` WHERE `kuerzel` = '$kuerzel'";

$q=mysql_query($s) or die($s."<BR><BR>".mysql_error());
while($m=mysql_fetch_array($q))
{
    $s_mitarbeiter = "SELECT * FROM `mitarbeiter` WHERE `kuerzel` = '".$m['kuerzel']."'";
    $q_mitarbeiter = mysql_query($s_mitarbeiter) or die("$s_mitarbeiter<BR><BR>".mysql_error());
    $m_mitarbeiter = mysql_fetch_array($q_mitarbeiter);
 ?>

 <?= $m['email'] ?>

 <?
}
?>

Achja
PHP:
echo $HTTP_SERVER_VARS["SERVER_NAME"];
$teile = explode(".", $HTTP_SERVER_VARS["SERVER_NAME"]);
ist veraltet, neu wäre:
PHP:
echo $_SERVER["SERVER_NAME"];
$teile = explode(".", $_SERVER["SERVER_NAME"]);
http://de.php.net/manual/de/language.variables.predefined.php hat gesagt.:
Variablen, die vom Webserver gesetzt werden oder anderweitig direkt mit der ausführenden Umgebung des aktuellen Skripts zusammenhängen. Entspricht dem alten $HTTP_SERVER_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.
 
Zuletzt bearbeitet:
sers das mit der abfrage hat gefuntzt er zeigt mir die daten jetzt an!


das problem ist.

das wenn das kuerzel vorhanden ist zeigt er die profil seite an.. nice
...


ist das kuerzel aber nicht vorhanden sollte er auf den index springen das macht er aber nicht wie könnte ich das lösen?

Code:
<?php

$teile = explode(".", $HTTP_SERVER_VARS["SERVER_NAME"]);

$anzahl=count($teile);

$kuerzel=$teile[$anzahl-2-1];
if ($kuerzel && $kuerzel!="www")

{

  include ("ma_index.php");

} 



else

{


  include ("index.php");


} 

 ?>


sinnvoll wäre es doch eine sql abfrage reinzustecken wenn kurzel da dann die profil (ma_index.php)

und wenn nicht dann den normalen index?

das ist meine abfrage

Code:
    <?

  $s="SELECT * FROM mitarbeiter WHERE kuerzel='$kuerzel'";

  $q=mysql_query($s) or die($s."<BR><BR>".mysql_error());

  $m=mysql_fetch_array($q);

   ?>
 
so ?
PHP:
<?php
$teile = explode(".", $_SERVER["SERVER_NAME"]);
$anzahl = count($teile);
$kuerzel = $teile[$anzahl-2-1];

$kuerzel = mysql_real_escape_string($kuerzel); // MySQL Sicherheit, würde ich auf jeden Fall einbauen!

if (!empty($kuerzel) && $kuerzel != "www")
{
    $s = "SELECT * FROM `mitarbeiter` WHERE `kuerzel` = '$kuerzel'";
    $q = mysql_query($s) or die($s."<BR><BR>".mysql_error());
    if (mysql_num_rows($q) == 1)
    {
        $m = mysql_fetch_array($q);
        include ("ma_index.php");
    } elseif (mysql_num_rows($q) > 1) {
     
        // mehrere User vorhanden
        include ("index.php");
    } else {
     
        include ("index.php");
    }
} else {
 
    include ("index.php");
}
?>
 
danke danke

PHP:
<?php
include ('db_connect.php');
$teile = explode(".", $HTTP_SERVER_VARS["SERVER_NAME"]);
$anzahl=count($teile);
$kuerzel=$teile[$anzahl-2-1];

$s="SELECT * FROM mitarbeiter WHERE kuerzel='$kuerzel'";
$q=mysql_query($s) or die($s."<BR><BR>".mysql_error());

if ($m=mysql_fetch_array($q))
{
  include ("ma_index.php");
} 

else
{
  include ("index.php");
} 
?>

habs ganz einfach gelöst geht super.. aber danke..

jetzt habe ich wiederum eine frage.

er sucht ja nach kuerzel in der datenbank. wenn er das kürzel findet geht es auf die profil seite,

sollte es nicht da sein auf die hauptseite geht.

nun brauch ich aber die USER ID

die ist ja gespeichert in "mitarbeiter" unter ID.

wie kann ich quasi das $kuerzel umwandeln zur ID?

dh.

er sucht das kürzel. wenn er das kürzel hat will ich auch die user id...

stehe auf dem schlauch..
 
Zuletzt bearbeitet:
Zurück