-4

Sry, it was just confused that a dot requires the string to be defined. Bad that a answer dropped so far that I couldn´t delete it...

The $content string will be written into an html file. When I run this I get this error, whats wrong with it ?

Notice: Undefined variable: content in C:\wamp\www\serverstatus\example.php on line 66

foreach ($ips as $id => $ip) {
    $content .= '
    <div class="server">
        <div class="head">
            <h2>'.$id.'</h2>
        </div>
        <div class="content">
            <ul>
                <li class="status"></li>
                <li class="ping"></li>
                <li class="player"></li>
                <li class="version"></li>
                <li class="motd"></li>
            </ul>
        </div>
    </div>
';
user2693017
  • 1,750
  • 6
  • 24
  • 50

4 Answers4

4

Just set the variable to an empty string before you use it. You can't use .= on a variable that does not exist yet:

$content = '';   // set it to empty string
hopper
  • 13,060
  • 7
  • 49
  • 53
user2092317
  • 3,226
  • 5
  • 24
  • 35
  • just got it myself, sry for the question. I will accept it in 12 min. when it is allowed. I was confused because this didn´t happend before I set the "." between §content and "=" – user2693017 Oct 22 '13 at 16:29
1

Make the code fit into one line and define $content at start

 $content='';

foreach ($ips as $id => $ip) {
$content .= '  <div class="server">      <div class="head">           <h2>'.$id.'</h2>
    </div>
    <div class="content">
        <ul>
            <li class="status"></li>
            <li class="ping"></li>
            <li class="player"></li>
            <li class="version"></li>
            <li class="motd"></li>
        </ul>
    </div>
</div>
';
Rahul
  • 1,181
  • 1
  • 11
  • 20
1

You are appending a variable that does not already exist. Add the following before the foreach:

$content = "";

Futhermore, you have not closed the foreach, don't forget the curly brace at the end:

$content = "";

foreach($ips as $id => $ip) {
    $content .= '<div class="server">';
    $content .= '<div class="head">';
    $content .= '<h2>'.$id.'</h2>';
    $content .= '</div>';
    $content .= '<div class="content">';
    $content .= '<ul>';
    $content .= '<li class="status"></li>';
    $content .= '<li class="ping"></li>';
    $content .= '<li class="player"></li>';
    $content .= '<li class="version"></li>';
    $content .= '<li class="motd"></li>';
    $content .= '</ul>';
    $content .= '</div>';
    $content .= '</div>';
}
Ben Carey
  • 16,540
  • 19
  • 87
  • 169
0

The problem is as the error said, you are using an undefined variable - content:

So all you need to do is to define it, this code will work:

$content = ''; //Add this code
foreach ($ips as $id => $ip) {
$content .= '
<div class="server">
    <div class="head">
        <h2>'.$id.'</h2>
    </div>
    <div class="content">
        <ul>
            <li class="status"></li>
            <li class="ping"></li>
            <li class="player"></li>
            <li class="version"></li>
            <li class="motd"></li>
        </ul>
    </div>
</div>
';
Misha Zaslavsky
  • 8,414
  • 11
  • 70
  • 116